Module: Gate::Rails::ClassMethods

Defined in:
lib/gate/rails.rb

Instance Method Summary collapse

Instance Method Details

#def_schema(&block) ⇒ Object



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

def def_schema(&block)
  @_schema = Dry::Validation.Params(Gate::Rails::instance_variable_get(:@base_schema), &block)
end

#fetch_params_schema(schema_name) ⇒ Object



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

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



33
34
35
36
37
38
# File 'lib/gate/rails.rb', line 33

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

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

#params_schemasObject



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

def params_schemas
  @params_schemas ||= {}
end