ruby.rb 3.17 KB
Newer Older
1 2 3 4 5 6 7
if something_wrong?             # ruby-move-to-block-skips-heredoc
  ActiveSupport::Deprecation.warn(<<-eowarn)
  boo hoo
  end
  eowarn
end

8
# Percent literals.
9
b = %Q{This is a "string"}
10
c = %w!foo
11
 bar
12 13 14 15 16 17 18 19
 baz!
d = %(hello (nested) world)

# Don't propertize percent literals inside strings.
"(%s, %s)" % [123, 456]

# Or inside comments.
x = # "tot %q/to"; =
20
  y = 2 / 3
21 22 23 24 25 26

# Regexp after whitelisted method.
"abc".sub /b/, 'd'

# Don't mis-match "sub" at the end of words.
a = asub / aslb + bsub / bslb;
27

28 29
# Highlight the regexp after "if".
x = toto / foo if /do bar/ =~ "dobar"
30

31 32 33 34 35 36 37 38 39
bar(class: XXX) do              # ruby-indent-keyword-label
  foo
end
bar

foo = [1,                       # ruby-deep-indent
       2]

foo = {                         # ruby-deep-indent-disabled
40
  a: b
41 42
}

43
foo = { a: b,
44 45 46
        a1: b1
      }

47 48 49 50 51
foo({
     a: b,
     c: d
   })

52 53 54 55 56 57 58 59
foo = [                         # ruby-deep-indent-disabled
  1
]

foo(                            # ruby-deep-indent-disabled
  a
)

60 61 62 63 64
# Multiline regexp.
/bars
 tees # toots
 nfoos/

65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
def test1(arg)
  puts "hello"
end

def test2 (arg)
  a = "apple"

  if a == 2
    puts "hello"
  else
    puts "there"
  end

  if a == 2 then
    puts "hello"
  elsif a == 3
    puts "hello3"
  elsif a == 3 then
    puts "hello3"
  else
    puts "there"
  end

  case a
  when "a"
    6
91 92
  # Support for this syntax was removed in Ruby 1.9, so we
  # probably don't need to handle it either.
93 94 95 96 97 98 99 100
  # when "b" :
  #   7
  # when "c" : 2
  when "d"  then 4
  else 5
  end
end

101 102 103 104
# Some Cucumber code:
Given /toto/ do
  print "hello"
end
105 106 107 108 109

# Bug#15208
if something == :==
  do_something
end
110

111 112 113 114 115 116 117 118
# Example from http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html
d = 4 + 5 +      # no '\' needed
    6 + 7

# Example from http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html
e = 8 + 9   \
    + 10         # '\' needed

119 120 121 122 123 124
begin
  foo
ensure
  bar
end

125
# Bug#15369
126
MSG = 'Separate every 3 digits in the integer portion of a number' \
127
      'with underscores(_).'
128

129 130 131 132 133 134
class C
  def foo
    self.end
    D.new.class
  end
end
135 136

a = foo(j, k) -
137
    bar_tee
138 139 140 141 142 143

while a < b do # "do" is optional
  foo
end

desc "foo foo" \
144
     "bar bar"
145 146 147 148

foo.
  bar

149
# https://github.com/rails/rails/blob/17f5d8e062909f1fcae25351834d8e89967b645e/activesupport/lib/active_support/time_with_zone.rb#L206
150 151
foo
  .bar
152 153 154 155 156 157 158 159

z = {
  foo: {
    a: "aaa",
    b: "bbb"
  }
}

160 161 162
foo if
  bar

163 164 165 166
if foo?
  bar
end

167 168 169 170 171 172 173 174 175 176
method arg1,                   # bug#15594
       method2 arg2,
               arg3

method? arg1,
        arg2

method! arg1,
        arg2

177 178 179 180 181 182 183 184 185 186 187 188 189
method !arg1,
       arg2

method [],
       arg2

method :foo,
       :bar

method (a + b),
       c, :d => :e,
       f: g

190 191 192 193 194 195 196 197 198 199 200 201
it "is a method call with block" do |asd|
  foo
end

it("is too!") {
  bar
}

and_this_one(has) { |block, parameters|
  tee
}

Dmitry Gutov's avatar
Dmitry Gutov committed
202
if foo &&
203 204 205
   bar
end

206 207 208
foo +
  bar

209 210 211 212
foo_bar_tee(1, 2, 3)
  .qux
  .bar

213 214 215 216 217 218 219 220 221 222
foo do
  bar
    .tee
end

def bar
  foo
    .baz
end

223 224 225 226 227
# http://stackoverflow.com/questions/17786563/emacs-ruby-mode-if-expressions-indentation
tee = if foo
        bar
      end

228 229
# Examples below still fail with `ruby-use-smie' on:

230 231 232
foo = [1, 2, 3].map do |i|
  i + 1
end
233

234
bar.foo do # "." is parent to "do"; it shouldn't be.
235 236
  bar
end
237 238 239 240

foo :bar do
  qux
end