Module: Squeel::Adapters::ActiveRecord::BaseExtensions
- Defined in:
- lib/squeel/adapters/active_record/base_extensions.rb
Instance Method Summary collapse
-
#build_default_scope_with_squeel ⇒ Object
:nodoc:.
- #sifter(name = nil) ⇒ Object
- #squeel(&block) ⇒ Object
Instance Method Details
#build_default_scope_with_squeel ⇒ Object
:nodoc:
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/squeel/adapters/active_record/base_extensions.rb', line 19 def build_default_scope_with_squeel #:nodoc: if defined?(::ActiveRecord::Scoping) && method(:default_scope).owner != ::ActiveRecord::Scoping::Default::ClassMethods evaluate_default_scope { default_scope } elsif default_scopes.any? evaluate_default_scope do default_scopes.inject(relation) do |default_scope, scope| if scope.is_a?(Hash) default_scope.(scope) elsif !scope.is_a?(::ActiveRecord::Relation) && scope.respond_to?(:call) default_scope.merge(scope.call, true) else default_scope.merge(scope, true) end end end end end |
#sifter(name = nil) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/squeel/adapters/active_record/base_extensions.rb', line 10 def sifter(name = nil) if Symbol === name && block_given? singleton_class.send :define_method, name, lambda {|*args| DSL.exec(*args, &Proc.new)} else raise ArgumentError, "A name and block are required" end end |
#squeel(&block) ⇒ Object
6 7 8 |
# File 'lib/squeel/adapters/active_record/base_extensions.rb', line 6 def squeel(&block) DSL.eval &block end |