class ParamsReady::Parameter::ValueParameterBuilder
Public Class Methods
[](coder_name)
click to toggle source
# File lib/params_ready/parameter/value_parameter.rb, line 88 def self.[](coder_name) builder = Class.new(self) capitalized = coder_name.to_s.split('_').map(&:capitalize).join qualified = "#{self.name}::#{capitalized}Builder".freeze builder.define_singleton_method :name do qualified end builder.define_singleton_method :instance do |name, altn: nil, **opts| superclass.instance(name, coder_name, altn: altn, **opts) end builder end
instance(name, coder_or_name = nil, altn: nil, **opts)
click to toggle source
# File lib/params_ready/parameter/value_parameter.rb, line 73 def self.instance(name, coder_or_name = nil, altn: nil, **opts) coder = if coder_or_name.is_a? Symbol coder_class = self.coder(coder_or_name) coder_class.instance(**opts) else raise ParamsReadyError, 'Expected option hash to be empty' unless opts.empty? if coder_or_name.nil? Value::GenericCoder.new(name) else coder_or_name end end new ValueParameterDefinition.new(name, coder, altn: altn) end