Module: BigRecord::AttributeMethods::ClassMethods

Defined in:
lib/big_record/attribute_methods.rb

Overview

Declare and check for suffixed attribute methods.

Instance Method Summary

Instance Method Details

- (Object) attribute_method_suffix(*suffixes)

Declare a method available for all attributes with the given suffix. Uses method_missing and respond_to? to rewrite the method

  #{attr}#{suffix}(*args, &block)

to

  attribute#{suffix}(#{attr}, *args, &block)

An attribute#suffix instance method must exist and accept at least the attr argument.

For example:

  class Person < BigRecord::Base
    attribute_method_suffix '_changed?'

    private
      def attribute_changed?(attr)
        ...
      end
  end

  person = Person.find(1)
  person.name_changed?    # => false
  person.name = 'Hubert'
  person.name_changed?    # => true


35
36
37
38
# File 'lib/big_record/attribute_methods.rb', line 35

def attribute_method_suffix(*suffixes)
  attribute_method_suffixes.concat suffixes
  rebuild_attribute_method_regexp
end

- (Boolean) match_attribute_method?(method_name)

Returns MatchData if method_name is an attribute method.

Returns:

  • (Boolean)


41
42
43
44
# File 'lib/big_record/attribute_methods.rb', line 41

def match_attribute_method?(method_name)
  rebuild_attribute_method_regexp unless defined?(@@attribute_method_regexp) && @@attribute_method_regexp
  @@attribute_method_regexp.match(method_name)
end