class ROM::Schema::Definition
Builder object used by schema DSL to establish Axiom
relations
@private
Attributes
relations[R]
repositories[R]
Public Class Methods
new(repositories, &block)
click to toggle source
@api private
# File lib/rom/schema/definition.rb, line 15 def initialize(repositories, &block) @repositories = repositories @relations = {} instance_eval(&block) if block end
Public Instance Methods
[](name)
click to toggle source
Return relation identified by name
@return [Axiom::Relation, Axiom::Relation::Base]
@api private
# File lib/rom/schema/definition.rb, line 64 def [](name) relations[name] end
base_relation(name, &block)
click to toggle source
Build a base relation
@example
Schema.build do base_relation :users do # ... end end
@return [Definition]
@api private
# File lib/rom/schema/definition.rb, line 34 def base_relation(name, &block) builder = Relation::Base.new(&block) repository = repositories.fetch(builder.repository) repository[name] = builder.call(name) relations[name] = repository[name] end
relation(name, &block)
click to toggle source
Build a relation
@example
Schema.build do relation :users do # ... end end
@return [Definition]
@api private
# File lib/rom/schema/definition.rb, line 55 def relation(name, &block) relations[name] = instance_eval(&block) end
Private Instance Methods
method_missing(name)
click to toggle source
Method missing hook
@return [Axiom::Relation, Axiom::Relation::Base]
@api private
Calls superclass method
# File lib/rom/schema/definition.rb, line 75 def method_missing(name) self[name] || super end