Module: Gate::Rails::ClassMethods

Defined in:
lib/gate/rails.rb

Instance Method Summary collapse

Instance Method Details

#def_schema(&block) ⇒ Object



24
25
26
# File 'lib/gate/rails.rb', line 24

def def_schema(&block)
  @_schema = Dry::Validation.Params(&block)
end

#fetch_params_schema(schema_name) ⇒ Object



18
19
20
21
22
# File 'lib/gate/rails.rb', line 18

def fetch_params_schema(schema_name)
  params_schemas.fetch(schema_name) do
    raise SchemaNotDefined, "Missing `#{schema_name}` schema"
  end
end

#method_added(method_name) ⇒ Object



28
29
30
31
32
33
# File 'lib/gate/rails.rb', line 28

def method_added(method_name)
  return unless instance_variable_defined?(:@_schema)

  params_schemas[method_name] = @_schema
  remove_instance_variable(:@_schema)
end

#params_schemasObject



14
15
16
# File 'lib/gate/rails.rb', line 14

def params_schemas
  @params_schemas ||= {}
end