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 =
"1.0.0".freeze

Instance Method Summary collapse

Constructor Details

#initialize(input) ⇒ ReverseParameters

Returns a new instance of ReverseParameters.

Parameters:

  • input (Proc, Array)


6
7
8
9
10
11
12
13
14
# File 'lib/reverse_parameters.rb', line 6

def initialize(input)
  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

#arguments(blocks_as_values: false) ⇒ ReverseParameters::Arguments

Method arguments are the real values passed to (and received by) the function. 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"

Parameters:

  • blocks_as_values: (true, false) (defaults to: false)

    express block as variable vs a proc passed to the end of a method.

Returns:



32
33
34
# File 'lib/reverse_parameters.rb', line 32

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

#parametersReverseParameters::Parameters

Method parameters are the names listed in the function definition.



18
19
20
# File 'lib/reverse_parameters.rb', line 18

def parameters
  Parameters.new(params)
end