class Fasterer::MethodDefinition

Attributes

arguments[R]
block_argument_name[R]
body[R]
element[R]
method_name[R]
name[R]

Public Class Methods

new(element) click to toggle source
# File lib/fasterer/method_definition.rb, line 11
def initialize(element)
  @element = element # Ripper element
  set_method_name
  set_body
  set_arguments
  set_block_argument_name
end

Public Instance Methods

has_block?() click to toggle source
# File lib/fasterer/method_definition.rb, line 19
def has_block?
  !!@block_argument_name
end
setter?() click to toggle source
# File lib/fasterer/method_definition.rb, line 23
def setter?
  name.to_s.end_with?('=')
end

Private Instance Methods

arguments_element() click to toggle source
# File lib/fasterer/method_definition.rb, line 29
def arguments_element
  element[2].drop(1) || []
end
last_argument_element() click to toggle source
# File lib/fasterer/method_definition.rb, line 53
def last_argument_element
  arguments_element.last
end
set_arguments() click to toggle source
# File lib/fasterer/method_definition.rb, line 37
def set_arguments
  @arguments = arguments_element.map do |argument_element|
    MethodDefinitionArgument.new(argument_element)
  end
end
set_block_argument_name() click to toggle source
# File lib/fasterer/method_definition.rb, line 47
def set_block_argument_name
  if last_argument_element.to_s.start_with?('&')
    @block_argument_name = last_argument_element.to_s[1..-1].to_sym
  end
end
set_body() click to toggle source
# File lib/fasterer/method_definition.rb, line 43
def set_body
  @body = @element[3..-1]
end
set_method_name() click to toggle source
# File lib/fasterer/method_definition.rb, line 33
def set_method_name
  @method_name = @element[1]
end