Class: Parser::AST::Node

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby2js/converter.rb

Instance Method Summary collapse

Instance Method Details

#is_method?Boolean

Returns:

  • (Boolean)


268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
# File 'lib/ruby2js/converter.rb', line 268

def is_method?
  return false if type == :attr
  return true if type == :call
  return true unless loc

  if loc.respond_to? :selector
    return true if children.length > 2
    selector = loc.selector
  elsif type == :defs
    return true if children[1] =~ /[!?]$/
    return true if children[2].children.length > 0
    selector = loc.name
  elsif type == :def
    return true if children[0] =~ /[!?]$/
    return true if children[1].children.length > 0
    selector = loc.name
  end

  return true unless selector and selector.source_buffer
  selector.source_buffer.source[selector.end_pos] == '('
end