Module: Corvette::Act::Required

Defined in:
lib/corvette/act.rb

Defined Under Namespace

Classes: RequiredError

Instance Method Summary collapse

Instance Method Details

#process_requiredObject



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/corvette/act.rb', line 87

def process_required
  if self.class.const_defined?(:RequiredContract)
    @required = Hashie::Mash.new(@options[:required]||{})
    required_contract = required_contract_class.new(@required)
    unless required_contract.validate
      exception = RequiredError.new
      exception.errors = required_contract.errors.messages
      raise exception
    end
    singleton_class.class_eval do
      attr_reader :required
    end
  end
rescue StandardError => exception
  # rescue_with_handler(exception) || raise
  log_error(exception)
  act_error(exception)
end

#required_contract_classObject



106
107
108
# File 'lib/corvette/act.rb', line 106

def required_contract_class
  self.class.const_get :RequiredContract
end