class ReverseParameters::Base

Attributes

params[R]

Public Class Methods

new(input) click to toggle source

@param [Proc, Array] input

# File lib/reverse_parameters.rb, line 14
def initialize(input)
  if input.respond_to?(:to_proc)
    @params = input.to_proc.parameters
  elsif input.respond_to?(:to_ary)
    @params = input.to_ary
  elsif input.is_a? UnboundMethod
    @params = input.parameters
  else
    raise ArgumentError.new("Input must be an Array of parameters or a Proc object.")
  end
end

Public Instance Methods

arguments(blocks_as_values: false) click to toggle source

Method arguments are the real values passed to (and received by) the function. @return [ReverseParameters::Arguments] @param [true, false] blocks_as_values: express block as variable vs a proc passed to the end of a method. def my_method(&block) end ReverseParameters.new(method(:my_method)).arguments(blocks_as_values: true).to_s

#=> "block"

# ReverseParameters.new(method(:my_method)).arguments.to_s

#=> "&block"
# File lib/reverse_parameters.rb, line 42
def arguments(blocks_as_values: false)
  Arguments.new(params, blocks_as_values: blocks_as_values)
end
parameters() click to toggle source

Method parameters are the names listed in the function definition. @return [ReverseParameters::Parameters]

# File lib/reverse_parameters.rb, line 28
def parameters
  Parameters.new(params)
end