Sha256: 7cf6c61045a5d510606b216882149c27cce3960d3d1609ed595912517be78d2a

Contents?: true

Size: 717 Bytes

Versions: 229

Compression:

Stored size: 717 Bytes

Contents

module ActiveRecord

  # = Active Record Dynamic Scope Match
  #
  # Provides dynamic attribute-based scopes such as <tt>scoped_by_price(4.99)</tt>
  # if, for example, the <tt>Product</tt> has an attribute with that name. You can
  # chain more <tt>scoped_by_* </tt> methods after the other. It acts like a named
  # scope except that it's dynamic.
  class DynamicScopeMatch
    def self.match(method)
      return unless method.to_s =~ /^scoped_by_([_a-zA-Z]\w*)$/
      new(true, $1 && $1.split('_and_'))
    end

    def initialize(scope, attribute_names)
      @scope           = scope
      @attribute_names = attribute_names
    end

    attr_reader :scope, :attribute_names
    alias :scope? :scope
  end
end

Version data entries

229 entries across 198 versions & 16 rubygems

Version Path
mdg-1.0.1 vendor/bundle/ruby/2.3.0/gems/activerecord-3.2.22.5/lib/active_record/dynamic_scope_match.rb
activerecord-3.2.22.5 lib/active_record/dynamic_scope_match.rb
activerecord-3.2.22.4 lib/active_record/dynamic_scope_match.rb
activerecord-3.2.22.3 lib/active_record/dynamic_scope_match.rb
activerecord-3.2.22.2 lib/active_record/dynamic_scope_match.rb
activerecord-3.2.22.1 lib/active_record/dynamic_scope_match.rb
active_mailer-0.0.10 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/dynamic_scope_match.rb
activerecord-3.2.22 lib/active_record/dynamic_scope_match.rb
judge-2.0.5 vendor/bundle/ruby/2.1.0/gems/activerecord-3.2.12/lib/active_record/dynamic_scope_match.rb
activerecord-3.2.21 lib/active_record/dynamic_scope_match.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/apl-library-0.0.90/vendor/bundle/ruby/1.8/gems/activerecord-3.2.18/lib/active_record/dynamic_scope_match.rb
apl-library-0.0.90 vendor/bundle/ruby/1.8/gems/activerecord-3.2.18/lib/active_record/dynamic_scope_match.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/apl-library-0.0.90/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/dynamic_scope_match.rb
apl-library-0.0.90 vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.18/lib/active_record/dynamic_scope_match.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/apl-library-0.0.90/vendor/bundle/ruby/2.1.0/gems/activerecord-3.2.18/lib/active_record/dynamic_scope_match.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/activerecord-3.2.18/lib/active_record/dynamic_scope_match.rb
activerecord-3.2.20 lib/active_record/dynamic_scope_match.rb
activerecord-3.2.19 lib/active_record/dynamic_scope_match.rb
activerecord-3.2.18 lib/active_record/dynamic_scope_match.rb
activerecord-3.2.17 lib/active_record/dynamic_scope_match.rb