Class: AdsCommon::ParametersValidator
- Inherits:
-
Object
- Object
- AdsCommon::ParametersValidator
- Defined in:
- lib/ads_common/parameters_validator.rb
Constant Summary collapse
- IGNORED_HASH_KEYS =
Savon special keys.
[:order!, :attributes!]
Instance Attribute Summary collapse
-
#extra_namespaces ⇒ Object
readonly
We collect required namespaces into this hash during validation.
Instance Method Summary collapse
-
#initialize(registry) ⇒ ParametersValidator
constructor
Instance initializer.
-
#validate_args(action_name, args) ⇒ Object
Validates input parameters to: - add parameter names; - resolve xsi:type where required; - convert some native types to XML.
Constructor Details
#initialize(registry) ⇒ ParametersValidator
Instance initializer.
Args:
- registry: a registry that defines service
37 38 39 40 |
# File 'lib/ads_common/parameters_validator.rb', line 37 def initialize(registry) @registry = registry @extra_namespaces = {} end |
Instance Attribute Details
#extra_namespaces ⇒ Object (readonly)
We collect required namespaces into this hash during validation.
30 31 32 |
# File 'lib/ads_common/parameters_validator.rb', line 30 def extra_namespaces @extra_namespaces end |
Instance Method Details
#validate_args(action_name, args) ⇒ Object
Validates input parameters to:
-
add parameter names;
-
resolve xsi:type where required;
-
convert some native types to XML.
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/ads_common/parameters_validator.rb', line 46 def validate_args(action_name, args) in_params = @registry.get_method_signature(action_name)[:input] # TODO: compare number of parameters. args_hash = in_params.each_with_index.inject({}) do |result, (in_param, index)| result.merge({in_param[:name] => deep_copy(args[index])}) end validate_arguments(args_hash, in_params) return args_hash end |