Methods
Attributes
| [R] | matchers | |
| [R] | attribute_names | |
| [R] | model | |
| [R] | name | 
Class Public methods
match(model, name)
📝 Source code
# File activerecord/lib/active_record/dynamic_matchers.rb, line 32
          def match(model, name)
            klass = matchers.find { |k| k.pattern.match?(name) }
            klass.new(model, name) if klass
          end
              
                🔎 See on GitHub
              
            new(model, name)
📝 Source code
# File activerecord/lib/active_record/dynamic_matchers.rb, line 52
        def initialize(model, name)
          @model           = model
          @name            = name.to_s
          @attribute_names = @name.match(self.class.pattern)[1].split("_and_")
          @attribute_names.map! { |n| @model.attribute_aliases[n] || n }
        end
              
                🔎 See on GitHub
              
            pattern()
📝 Source code
# File activerecord/lib/active_record/dynamic_matchers.rb, line 37
          def pattern
            @pattern ||= /\A#{prefix}_([_a-zA-Z]\w*)#{suffix}\Z/
          end
              
                🔎 See on GitHub
              
            prefix()
📝 Source code
# File activerecord/lib/active_record/dynamic_matchers.rb, line 41
          def prefix
            raise NotImplementedError
          end
              
                🔎 See on GitHub
              
            suffix()
📝 Source code
# File activerecord/lib/active_record/dynamic_matchers.rb, line 45
          def suffix
            ""
          end
              
                🔎 See on GitHub
              
            Instance Public methods
define()
📝 Source code
# File activerecord/lib/active_record/dynamic_matchers.rb, line 63
        def define
          model.class_eval <<-CODE, __FILE__, __LINE__ + 1
            def self.#{name}(#{signature})
              #{body}
            end
          CODE
        end
              
                🔎 See on GitHub
              
            valid?()
📝 Source code
# File activerecord/lib/active_record/dynamic_matchers.rb, line 59
        def valid?
          attribute_names.all? { |name| model.columns_hash[name] || model.reflect_on_aggregation(name.to_sym) }
        end
              
                🔎 See on GitHub