Module: Ladder::Resource::ClassMethods

Defined in:
lib/ladder/resource.rb

Instance Method Summary collapse

Instance Method Details

#property(name, opts = {}) ⇒ Object

Overload ActiveTriples #property

See Also:

  • ActiveTriples::Properties


92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/ladder/resource.rb', line 92

def property(name, opts={})
  if class_name = opts[:class_name]
    mongoid_opts = {autosave: true, index: true}.merge(opts.except(:predicate, :multivalue))
    opts.except! *mongoid_opts.keys

    has_and_belongs_to_many(name, mongoid_opts) unless relations.keys.include? name.to_s
  else
    field(name, localize: true) unless fields[name.to_s]
  end

  super
end