Module: Ransack::Adapters::Mongoid::Base::ClassMethods
- Defined in:
- lib/ransack/adapters/mongoid/base.rb
Instance Method Summary collapse
- #_ransack_aliases ⇒ Object
- #_ransack_aliases=(value) ⇒ Object
- #_ransackers ⇒ Object
- #_ransackers=(value) ⇒ Object
- #all_ransackable_attributes ⇒ Object
- #column_names ⇒ Object
-
#columns ⇒ Object
def group_by *args, &block criteria end.
- #columns_hash ⇒ Object
- #custom_join_ast(*args) ⇒ Object
- #first(*args) ⇒ Object
-
#joins_values(*args) ⇒ Object
imitating active record.
- #ransack(params = {}, options = {}) ⇒ Object (also: #search)
- #ransack_alias(new_name, old_name) ⇒ Object
- #ransackable_associations(auth_object = nil) ⇒ Object
- #ransackable_attributes(auth_object = nil) ⇒ Object
-
#ransackable_scopes(auth_object = nil) ⇒ Object
For overriding with a whitelist of symbols.
- #ransacker(name, opts = {}, &block) ⇒ Object
- #ransortable_attributes(auth_object = nil) ⇒ Object
- #reflect_on_all_associations_all ⇒ Object
- #table ⇒ Object
Instance Method Details
#_ransack_aliases ⇒ Object
36 37 38 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 36 def _ransack_aliases @_ransack_aliases ||= {} end |
#_ransack_aliases=(value) ⇒ Object
40 41 42 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 40 def _ransack_aliases=(value) @_ransack_aliases = value end |
#_ransackers ⇒ Object
44 45 46 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 44 def _ransackers @_ransackers ||= {} end |
#_ransackers=(value) ⇒ Object
48 49 50 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 48 def _ransackers=(value) @_ransackers = value end |
#all_ransackable_attributes ⇒ Object
69 70 71 72 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 69 def all_ransackable_attributes ['id'] + column_names.select { |c| c != '_id' } + _ransackers.keys + _ransack_aliases.keys end |
#column_names ⇒ Object
125 126 127 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 125 def column_names @column_names ||= fields.map(&:first) end |
#columns ⇒ Object
def group_by *args, &block
criteria
end
121 122 123 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 121 def columns @columns ||= fields.map(&:second).map{ |c| ColumnWrapper.new(c) } end |
#columns_hash ⇒ Object
129 130 131 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 129 def columns_hash columns.index_by(&:name) end |
#custom_join_ast(*args) ⇒ Object
105 106 107 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 105 def custom_join_ast *args [] end |
#first(*args) ⇒ Object
109 110 111 112 113 114 115 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 109 def first(*args) if args.size == 0 super else self.criteria.limit(args.first) end end |
#joins_values(*args) ⇒ Object
imitating active record
101 102 103 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 101 def joins_values *args [] end |
#ransack(params = {}, options = {}) ⇒ Object Also known as: search
52 53 54 55 56 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 52 def ransack(params = {}, = {}) params = params.presence || {} Search.new(self, params ? params.delete_if { |k, v| v.blank? && v != false } : params, ) end |
#ransack_alias(new_name, old_name) ⇒ Object
60 61 62 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 60 def ransack_alias(new_name, old_name) self._ransack_aliases.store(new_name.to_s, old_name.to_s) end |
#ransackable_associations(auth_object = nil) ⇒ Object
84 85 86 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 84 def ransackable_associations(auth_object = nil) reflect_on_all_associations_all.map { |a| a.name.to_s } end |
#ransackable_attributes(auth_object = nil) ⇒ Object
74 75 76 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 74 def ransackable_attributes(auth_object = nil) all_ransackable_attributes end |
#ransackable_scopes(auth_object = nil) ⇒ Object
For overriding with a whitelist of symbols
95 96 97 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 95 def ransackable_scopes(auth_object = nil) [] end |
#ransacker(name, opts = {}, &block) ⇒ Object
64 65 66 67 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 64 def ransacker(name, opts = {}, &block) self._ransackers = _ransackers.merge name.to_s => Ransacker .new(self, name, opts, &block) end |
#ransortable_attributes(auth_object = nil) ⇒ Object
78 79 80 81 82 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 78 def ransortable_attributes(auth_object = nil) # Here so users can overwrite the attributes # that show up in the sort_select ransackable_attributes(auth_object) end |
#reflect_on_all_associations_all ⇒ Object
88 89 90 91 92 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 88 def reflect_on_all_associations_all reflect_on_all_associations( :belongs_to, :has_one, :has_many, :embeds_many, :embedded_in ) end |
#table ⇒ Object
133 134 135 136 137 138 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 133 def table name = ::Ransack::Adapters::Mongoid::Attributes::Attribute.new( self.criteria, :name ) { :name => name } end |