Store task parameter values in a Hash
This commit is contained in:
parent
44f61da571
commit
7e5c6e6b12
@ -216,7 +216,7 @@ module Rscons
|
|||||||
tasks_and_params.each do |task_name, task_params|
|
tasks_and_params.each do |task_name, task_params|
|
||||||
task_params.each do |param_name, param_value|
|
task_params.each do |param_name, param_value|
|
||||||
if param = Task[task_name].params[param_name]
|
if param = Task[task_name].params[param_name]
|
||||||
param.value = param_value
|
Task[task_name].set_param_value(param_name, param_value)
|
||||||
else
|
else
|
||||||
raise RsconsError.new("Unknown parameter #{param_name.inspect} for task #{task_name}")
|
raise RsconsError.new("Unknown parameter #{param_name.inspect} for task #{task_name}")
|
||||||
end
|
end
|
||||||
|
@ -107,6 +107,10 @@ module Rscons
|
|||||||
# Task params.
|
# Task params.
|
||||||
attr_reader :params
|
attr_reader :params
|
||||||
|
|
||||||
|
# @return [Hash<String => String>]
|
||||||
|
# Task parameter values.
|
||||||
|
attr_reader :param_values
|
||||||
|
|
||||||
# Construct a task.
|
# Construct a task.
|
||||||
#
|
#
|
||||||
# @param name [String]
|
# @param name [String]
|
||||||
@ -122,6 +126,7 @@ module Rscons
|
|||||||
@description = nil
|
@description = nil
|
||||||
@name = name
|
@name = name
|
||||||
@params = {}
|
@params = {}
|
||||||
|
@param_values = {}
|
||||||
@actions = []
|
@actions = []
|
||||||
Task.register(self)
|
Task.register(self)
|
||||||
modify(options, &block)
|
modify(options, &block)
|
||||||
@ -199,6 +204,7 @@ module Rscons
|
|||||||
if options.include?(:params)
|
if options.include?(:params)
|
||||||
Array(options[:params]).each do |param|
|
Array(options[:params]).each do |param|
|
||||||
@params[param.name] = param
|
@params[param.name] = param
|
||||||
|
set_param_value(param.name, param.value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if block
|
if block
|
||||||
@ -213,16 +219,19 @@ module Rscons
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Get parameter values as a Hash.
|
# Set parameter value.
|
||||||
#
|
#
|
||||||
# @return [Hash]
|
# @param param_name [String]
|
||||||
# Parameter values.
|
# Parameter name.
|
||||||
def param_values
|
# @param param_value [String, Boolean]
|
||||||
param_values = {}
|
# Parameter value.
|
||||||
@params.each do |name, param|
|
#
|
||||||
param_values[name] = param.value
|
# @return [void]
|
||||||
|
def set_param_value(param_name, param_value)
|
||||||
|
if param = @params[param_name]
|
||||||
|
param.value = param_value
|
||||||
end
|
end
|
||||||
param_values
|
@param_values[param_name] = param_value
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user