Module: Mongoid::Oslc::ClassMethods
- Defined in:
- lib/mongoid/oslc.rb
Instance Method Summary collapse
- #describe(describe) ⇒ Object
- #domain(name) ⇒ Object
- #oslc_embeds_many(name, options = {}) ⇒ Object
- #oslc_field(name, options = {}) ⇒ Object
- #oslc_fields ⇒ Object
- #oslc_where(query) ⇒ Object
- #register_oslc_field(name, options) ⇒ Object
Instance Method Details
#describe(describe) ⇒ Object
38 39 40 |
# File 'lib/mongoid/oslc.rb', line 38 def describe(describe) Mongoid::Oslc.resources[self.name].merge!(describe: describe) end |
#domain(name) ⇒ Object
34 35 36 |
# File 'lib/mongoid/oslc.rb', line 34 def domain(name) Mongoid::Oslc.resources[self.name].merge!(domain: name) end |
#oslc_embeds_many(name, options = {}) ⇒ Object
48 49 50 51 52 53 |
# File 'lib/mongoid/oslc.rb', line 48 def (name, = {}) = () (name, ) = relations[name.to_s].class_name.constantize register_oslc_field(name, .merge(type: Array, embedded: )) end |
#oslc_field(name, options = {}) ⇒ Object
42 43 44 45 46 |
# File 'lib/mongoid/oslc.rb', line 42 def oslc_field(name, = {}) = () field(name, ) register_oslc_field(name, ) end |
#oslc_fields ⇒ Object
55 56 57 58 59 |
# File 'lib/mongoid/oslc.rb', line 55 def oslc_fields (ancestors - included_modules).inject({}) do |hash, ancestor_class| hash.merge(Mongoid::Oslc.resources[ancestor_class.name][:fields]) end end |
#oslc_where(query) ⇒ Object
61 62 63 64 |
# File 'lib/mongoid/oslc.rb', line 61 def oslc_where(query) mongoid_query = Strategy.to_query(query) where(mongoid_query) end |
#register_oslc_field(name, options) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/mongoid/oslc.rb', line 66 def register_oslc_field(name, ) Mongoid::Oslc.resources[self.name][:fields][[:mapping]] = { name: name, value_type: ::Oslc::VALUE_TYPES[[:value_type] || fields[name.to_s].type.to_s], read_only: ([:read_only] || false), occurs: occurs(), allowed_values: ([:allowed_values] || []), embedded: ([:embedded] || false), range: ([:range] || []) } end |