def initialize(name, opts ={})
raise ArgumentError, "Name parameter required" if name.blank?
@name = name
@type = opts[:type] || :string
@splat_param = opts[:splat_param] || false
@formatter = opts[:formatter] || Proc.new {|param| param}
if @formatter.is_a?(String)
formatter = @formatter
@formatter = Proc.new {|param| eval formatter}
end
unless @formatter.respond_to?(:call)
raise ArgumentError, "Invalid formatter for #{name}, should be a Proc or String."
end
@validator = opts[:validator] || Proc.new {|param| !param.blank?}
unless @validator.respond_to?(:call)
raise ArgumentError, "Invalid validator for #{name}, should be a Proc."
end
end