Class: ROM::Memory::Schema

Inherits:
Schema
  • Object
show all
Defined in:
lib/rom/memory/schema.rb

Overview

Specialized schema for memory adapter

API:

  • public

Constant Summary

Constants inherited from Schema

Schema::DEFAULT_INFERRER, Schema::EMPTY_ASSOCIATION_SET, Schema::HASH_SCHEMA

Constants included from ROM::Memoizable

ROM::Memoizable::MEMOIZED_HASH

Instance Attribute Summary

Attributes inherited from Schema

#associations, #attributes, #canonical, #inferrer, #name, #primary_key_name, #primary_key_names

Attributes included from ROM::Memoizable

#__memoized__

Instance Method Summary collapse

Methods inherited from Schema

#[], #append, attributes, build_attribute_info, #canonical?, define, #each, #empty?, #exclude, #finalize!, #finalize_attributes!, #foreign_key, #initialize, #key?, #merge, #prefix, #primary_key, #project, #rename, #set!, #to_ary, #to_ast, #to_h, #to_input_hash, #to_output_hash, #uniq, #wrap

Methods included from Notifications::Listener

#subscribe

Methods included from Initializer

extended

Methods included from ROM::Memoizable

included

Constructor Details

This class inherits a constructor from ROM::Schema

Instance Method Details

#call(relation) ⇒ Object

See Also:

API:

  • public



14
15
16
# File 'lib/rom/memory/schema.rb', line 14

def call(relation)
  relation.new(relation.dataset.project(*map(&:name)), schema: self)
end

#finalize_associations!(relations:) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Internal hook used during setup process

See Also:

API:

  • private



23
24
25
26
27
28
29
# File 'lib/rom/memory/schema.rb', line 23

def finalize_associations!(relations:)
  super do
    associations.map do |definition|
      Memory::Associations.const_get(definition.type).new(definition, relations)
    end
  end
end