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