class Bogus::MethodStringifier

Public Instance Methods

argument_values(arguments) click to toggle source
# File lib/bogus/fakes/method_stringifier.rb, line 16
def argument_values(arguments)
  stringify_arguments(arguments)
end
arguments_as_string(arguments) click to toggle source
# File lib/bogus/fakes/method_stringifier.rb, line 12
def arguments_as_string(arguments)
  stringify_arguments(arguments, DefaultValue)
end
stringify(method, body) click to toggle source
# File lib/bogus/fakes/method_stringifier.rb, line 4
def stringify(method, body)
  <<-RUBY
  def #{method.name}(#{arguments_as_string(method.parameters)})
    #{body}
  end
  RUBY
end

Private Instance Methods

argument_to_string(name, type, default) click to toggle source
# File lib/bogus/fakes/method_stringifier.rb, line 28
def argument_to_string(name, type, default)
  case type
  when :block then "&#{name}"
  when :key then default ? "#{name}: #{default}" : "#{name}: #{name}"
  when :keyreq then default ? "#{name}:" : "#{name}: #{name}"
  when :opt then default ? "#{name} = #{default}" : name
  when :req then name
  when :rest then "*#{name}"
  when :keyrest then "**#{name}"
  else raise "unknown argument type: #{type}"
  end
end
fill_in_missing_names(arguments) click to toggle source
# File lib/bogus/fakes/method_stringifier.rb, line 41
def fill_in_missing_names(arguments)
  noname_count = 0
  arguments.map do |type, name|
    unless name
      name = "_noname_#{noname_count}"
      noname_count += 1
    end
    [type, name]
  end
end
stringify_arguments(arguments, default = nil) click to toggle source
# File lib/bogus/fakes/method_stringifier.rb, line 22
def stringify_arguments(arguments, default = nil)
  fill_in_missing_names(arguments).map do |type, name|
    argument_to_string(name, type, default)
  end.join(', ')
end