Module: Bhf::Mongoid::Document::ClassMethods
- Defined in:
- lib/bhf/mongoid/document.rb
Instance Method Summary collapse
- #bhf_attribute_method?(column_name) ⇒ Boolean
- #bhf_default_search(search_params) ⇒ Object
- #bhf_embedded? ⇒ Boolean
- #bhf_find_embed(parent_id, ref_id) ⇒ Object
- #bhf_new_embed(parent_id, params = nil) ⇒ Object
- #bhf_primary_key ⇒ Object
- #columns_hash ⇒ Object
- #except(key) ⇒ Object
- #get_embedded_parent(parent_id, &block) ⇒ Object
- #order(a) ⇒ Object
- #reflections ⇒ Object
Instance Method Details
#bhf_attribute_method?(column_name) ⇒ Boolean
77 78 79 |
# File 'lib/bhf/mongoid/document.rb', line 77 def bhf_attribute_method?(column_name) attribute_method?(column_name) end |
#bhf_default_search(search_params) ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/bhf/mongoid/document.rb', line 98 def bhf_default_search(search_params) return if (search_term = search_params[:text]).blank? # TODO: add mongoid search return where(name: /^antp/i) #return where("this.nick == 'antpaw'") end |
#bhf_embedded? ⇒ Boolean
151 152 153 |
# File 'lib/bhf/mongoid/document.rb', line 151 def end |
#bhf_find_embed(parent_id, ref_id) ⇒ Object
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/bhf/mongoid/document.rb', line 134 def (parent_id, ref_id) parent_id do |parent, | # :forced_nil_inverse?, :foreign_key, :foreign_key_check, :foreign_key_setter, :index, :indexed?, :inspect, :inverses, :inverse, :inverse_class_name, :inverse_class_name?, :inverse_foreign_key, :inverse_klass, :inverse_metadata, :inverse_of, :inverse_of?, :inverse_setter, :inverse_type, :inverse_type_setter key_name = if .inverse_of? .inverse_of else .inverse_foreign_key.pluralize end.to_s relation = parent.send(key_name) if parent.relations[key_name].macro == :embeds_one relation else relation.find(ref_id) end end end |
#bhf_new_embed(parent_id, params = nil) ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/bhf/mongoid/document.rb', line 119 def (parent_id, params = nil) parent_id do |parent, | key_name = if .inverse_of? .inverse_of else .inverse_foreign_key.pluralize end.to_s if parent.relations[key_name].macro == :embeds_one parent.send("build_#{key_name}", params) else parent.send(key_name).build(params) end end end |
#bhf_primary_key ⇒ Object
81 82 83 |
# File 'lib/bhf/mongoid/document.rb', line 81 def bhf_primary_key '_id' end |
#columns_hash ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/bhf/mongoid/document.rb', line 58 def columns_hash c = {} fields.each_pair do |key, | next if .[:metadata] next if key == '_type' c[key] = Field.new() end c end |
#except(key) ⇒ Object
85 86 87 88 89 90 |
# File 'lib/bhf/mongoid/document.rb', line 85 def except(key) if key == :order || key == :sort #order_by.extras(sort: []) #TODO: drop default_scope criteria end self end |
#get_embedded_parent(parent_id, &block) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/bhf/mongoid/document.rb', line 106 def (parent_id, &block) relations.each do |key, | next unless .macro == :embedded_in parent = .class_name.constantize parent = parent.find(parent_id) rescue nil if parent return parent unless block_given? return block.call(parent, ) end end end |
#order(a) ⇒ Object
92 93 94 95 96 |
# File 'lib/bhf/mongoid/document.rb', line 92 def order(a) field, direction = a.split(' ') return self if field.blank? or direction.blank? self.send(direction.downcase, field) end |
#reflections ⇒ Object
68 69 70 71 72 73 74 75 |
# File 'lib/bhf/mongoid/document.rb', line 68 def reflections c = {} relations.each do |key, | next if .macro == :embedded_in c[key.to_sym] = Reflection.new() end c end |