class RakeFactory::TaskSet::TaskArguments

Attributes

arguments[R]
task_set[R]

Public Class Methods

new(arguments, task_set) click to toggle source
# File lib/rake_factory/task_set.rb, line 46
def initialize(arguments, task_set)
  @arguments = arguments || []
  @task_set = task_set
end

Public Instance Methods

parameter_hash() click to toggle source
# File lib/rake_factory/task_set.rb, line 55
def parameter_hash
  arguments.first.is_a?(Hash) ?
      arguments.first :
      {}
end
parameter_overrides() click to toggle source
# File lib/rake_factory/task_set.rb, line 51
def parameter_overrides
  task_set&.parameter_values || {}
end
resolve() click to toggle source
# File lib/rake_factory/task_set.rb, line 61
def resolve
  if arguments.empty?
    return [parameter_overrides]
  end

  if arguments.first.is_a?(Hash)
    return [
        parameter_overrides
            .merge(process_parameter_hash(arguments.first)),
        *arguments.drop(1)
    ]
  end

  arguments
end

Private Instance Methods

process_parameter_hash(parameter_hash) click to toggle source
# File lib/rake_factory/task_set.rb, line 79
def process_parameter_hash(parameter_hash)
  parameter_hash.reduce({}) do |acc, (name, value)|
    acc.merge(name => Values.resolve(value).prepend_argument(task_set))
  end
end