module Pathway::Plugins::DryValidation::V1_0::ClassMethods
Attributes
auto_wire_options[RW]
contract_class[R]
contract_options[R]
Public Instance Methods
build_contract(opts = {})
click to toggle source
# File lib/pathway/plugins/dry_validation/v1_0.rb, line 32 def build_contract(opts = {}) @builded_contract || contract_class.new(opts) end
contract(base = nil, &block)
click to toggle source
# File lib/pathway/plugins/dry_validation/v1_0.rb, line 11 def contract(base = nil, &block) if block_given? base ||= _base_contract self.contract_class = Class.new(base, &block) elsif base self.contract_class = base else raise ArgumentError, 'Either a contract class or a block must be provided' end end
contract_class=(klass)
click to toggle source
# File lib/pathway/plugins/dry_validation/v1_0.rb, line 26 def contract_class= klass @contract_class = klass @contract_options = (klass.dry_initializer.options - Dry::Validation::Contract.dry_initializer.options).map(&:target) @builded_contract = @contract_options.empty? && klass.schema ? klass.new : nil end
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/pathway/plugins/dry_validation/v1_0.rb, line 36 def inherited(subclass) super subclass.contract_class = contract_class subclass.auto_wire_options = auto_wire_options end
params(*args, &block)
click to toggle source
# File lib/pathway/plugins/dry_validation/v1_0.rb, line 22 def params(*args, &block) contract { params(*args, &block) } end
Private Instance Methods
_base_contract()
click to toggle source
# File lib/pathway/plugins/dry_validation/v1_0.rb, line 44 def _base_contract superclass.respond_to?(:contract_class) ? superclass.contract_class : Dry::Validation::Contract end