class Fictium::ParameterEvaluator
Attributes
params[R]
Public Class Methods
new()
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 5 def initialize @params = ActiveSupport::HashWithIndifferentAccess.new end
Public Instance Methods
[](name)
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 22 def [](name) @params[name] end
[]=(name, value)
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 26 def []=(name, value) @params[name] = value end
evaluate_params(&block)
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 9 def evaluate_params(&block) if block.arity == 1 block.call(self) else instance_eval(&block) end @params end
method_missing(name, *_, **kwargs)
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 18 def method_missing(name, *_, **kwargs) # rubocop:disable Style/MethodMissingSuper self[name] = validate_keys(**kwargs) if respond_to_missing?(name) end
Private Instance Methods
format_schema(args)
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 46 def format_schema(args) return unless args[:schema].present? schema_evaluator.format(ref: args[:schema][:ref]) if args[:schema][:ref].present? schema_evaluator.format(args[:schema]) end
respond_to_missing?(_method_name, _include_private = false)
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 32 def respond_to_missing?(_method_name, _include_private = false) true end
schema_evaluator()
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 53 def schema_evaluator @schema_evaluator ||= Fictium::SchemaEvaluator.new end
validate_keys(required: false, deprecated: false, allow_empty: false, **kwargs)
click to toggle source
# File lib/fictium/evaluators/parameter_evaluator.rb, line 36 def validate_keys(required: false, deprecated: false, allow_empty: false, **kwargs) { description: kwargs[:description], required: required, deprecated: deprecated, allow_empty: allow_empty, schema: format_schema(kwargs) } end