Module: Gate::Rails

Defined in:
lib/gate/rails.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

ContractNotDefined =
Class.new(StandardError)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#claimed_paramsObject (readonly)

Returns the value of attribute claimed_params.



5
6
7
# File 'lib/gate/rails.rb', line 5

def claimed_params
  @claimed_params
end

Class Method Details

.included(base) ⇒ Object



9
10
11
# File 'lib/gate/rails.rb', line 9

def self.included(base)
  base.send(:extend, ClassMethods)
end

Instance Method Details

#_contract_nameObject



65
66
67
# File 'lib/gate/rails.rb', line 65

def _contract_name
  action_name.to_sym
end

#contract_registered?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/gate/rails.rb', line 61

def contract_registered?
  self.class._contracts.key?(_contract_name)
end

#handle_invalid_params(_errors) ⇒ Object



57
58
59
# File 'lib/gate/rails.rb', line 57

def handle_invalid_params(_errors)
  head :bad_request
end

#verify_contractObject



47
48
49
50
51
52
53
54
55
# File 'lib/gate/rails.rb', line 47

def verify_contract
  result = self.class.contract_for(_contract_name).call(request.params)

  if result.success?
    @claimed_params = result.to_h
  else
    send(self.class.handler_for(_contract_name), result.errors.to_h)
  end
end