Sha256: 3ff76965b034d3c12b6e07eba7257df559ddec5b13178749818161ab18709d0b

Contents?: true

Size: 716 Bytes

Versions: 4

Compression:

Stored size: 716 Bytes

Contents

module PhoneNumber::ActiveRecordExtensions
  def self.included( base )
    base.extend ActsMethods
  end

  module ActsMethods
    def phone_number( *args )
      unless included_modules.include? InstanceMethods
        self.class_eval { extend ClassMethods }
        include InstanceMethods
      end
      initialize_compositions( args )
    end

    alias_method :phone_numbers, :phone_number
  end

  module ClassMethods
    def initialize_compositions( attrs )
      attrs.each do |attr|
        composed_of attr, :class_name => 'PhoneNumber::Number', :mapping => ["raw_#{attr}", 'raw'], :converter => :convert,
                    :allow_nil => true
      end
    end
  end

  module InstanceMethods

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
phone_number-1.3.0 lib/phone_number/active_record_extensions.rb
phone_number-1.2.0 lib/phone_number/active_record_extensions.rb
phone_number-1.1.0 lib/phone_number/active_record_extensions.rb
phone_number-1.0.0 lib/phone_number/active_record_extensions.rb