Class: ActiveRecord::DynamicMatchers::Method

Inherits:
Object
  • Object
show all
Defined in:
activerecord/lib/active_record/dynamic_matchers.rb

Direct Known Subclasses

FindBy, FindByBang

Class Method Summary collapse

Class Method Details

.define(model, name) ⇒ Object



38
39
40
41
42
43
44
# File 'activerecord/lib/active_record/dynamic_matchers.rb', line 38

def define(model, name)
  model.class_eval <<-CODE, __FILE__, __LINE__ + 1
  def self.#{name}(#{signature(model, name)})
    #{body(model, name)}
  end
  CODE
end

.match(name) ⇒ Object



30
31
32
# File 'activerecord/lib/active_record/dynamic_matchers.rb', line 30

def match(name)
  FindBy.match?(name) || FindByBang.match?(name)
end

.valid?(model, name) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'activerecord/lib/active_record/dynamic_matchers.rb', line 34

def valid?(model, name)
  attribute_names(model, name.to_s).all? { |name| model.columns_hash[name] || model.reflect_on_aggregation(name.to_sym) }
end