Class: ReverseParameters

Inherits:
Object
  • Object
show all
Defined in:
lib/reverse_parameters.rb,
lib/reverse_parameters/version.rb

Defined Under Namespace

Classes: Arguments, BaseCollection, Parameters

Constant Summary collapse

VERSION =
"0.4.0"

Instance Method Summary collapse

Constructor Details

#initialize(input, blocks_as_values: false) ⇒ ReverseParameters

def my_method(&block) end

ReverseParameters.new(method(:my_method), blocks_as_values: true).arguments.to_s

#=> "block"

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

#=> "&block"

Parameters:

  • input (Proc, Array)


16
17
18
19
20
21
22
23
24
25
# File 'lib/reverse_parameters.rb', line 16

def initialize(input, blocks_as_values: false)
  @blocks_as_values = blocks_as_values
  if input.respond_to?(:to_proc)
    @params = input.to_proc.parameters
  elsif input.respond_to?(:to_ary)
    @params = input.to_ary
  else
    raise ArgumentError.new("Input must be an Array of parameters or a Proc object.")
  end
end

Instance Method Details

#argumentsReverseParameters::Arguments

Method arguments are the real values passed to (and received by) the function.



35
36
37
# File 'lib/reverse_parameters.rb', line 35

def arguments
  Arguments.new(params, blocks_as_values: blocks_as_values)
end

#parametersReverseParameters::Parameters

Method parameters are the names listed in the function definition.



29
30
31
# File 'lib/reverse_parameters.rb', line 29

def parameters
  Parameters.new(params)
end