Module: Ransack::Adapters::Mongoid::Base::ClassMethods
- Defined in:
- lib/ransack/adapters/mongoid/base.rb
Instance Method Summary collapse
- #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
#all_ransackable_attributes ⇒ Object
58 59 60 61 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 58 def all_ransackable_attributes ['id'] + column_names.select { |c| c != '_id' } + _ransackers.keys + _ransack_aliases.keys end |
#column_names ⇒ Object
114 115 116 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 114 def column_names @column_names ||= fields.map(&:first) end |
#columns ⇒ Object
def group_by *args, &block
criteria
end
110 111 112 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 110 def columns @columns ||= fields.map(&:second).map{ |c| ColumnWrapper.new(c) } end |
#columns_hash ⇒ Object
118 119 120 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 118 def columns_hash columns.index_by(&:name) end |
#custom_join_ast(*args) ⇒ Object
94 95 96 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 94 def custom_join_ast *args [] end |
#first(*args) ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 98 def first(*args) if args.size == 0 super else self.criteria.limit(args.first) end end |
#joins_values(*args) ⇒ Object
imitating active record
90 91 92 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 90 def joins_values *args [] end |
#ransack(params = {}, options = {}) ⇒ Object Also known as: search
40 41 42 43 44 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 40 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
48 49 50 51 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 48 def ransack_alias(new_name, old_name) self._ransack_aliases = _ransack_aliases.merge new_name.to_s => old_name.to_s end |
#ransackable_associations(auth_object = nil) ⇒ Object
73 74 75 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 73 def ransackable_associations(auth_object = nil) reflect_on_all_associations_all.map { |a| a.name.to_s } end |
#ransackable_attributes(auth_object = nil) ⇒ Object
63 64 65 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 63 def ransackable_attributes(auth_object = nil) all_ransackable_attributes end |
#ransackable_scopes(auth_object = nil) ⇒ Object
For overriding with a whitelist of symbols
84 85 86 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 84 def ransackable_scopes(auth_object = nil) [] end |
#ransacker(name, opts = {}, &block) ⇒ Object
53 54 55 56 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 53 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
67 68 69 70 71 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 67 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
77 78 79 80 81 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 77 def reflect_on_all_associations_all reflect_on_all_associations( :belongs_to, :has_one, :has_many, :embeds_many, :embedded_in ) end |
#table ⇒ Object
122 123 124 125 126 127 |
# File 'lib/ransack/adapters/mongoid/base.rb', line 122 def table name = ::Ransack::Adapters::Mongoid::Attributes::Attribute.new( self.criteria, :name ) { :name => name } end |