Module: Phonofy::Model::ClassMethods

Defined in:
lib/model/class_methods.rb

Constant Summary collapse

DEFAULTS =
{
  phonelib: {
    allow_blank: true,
    validation_options: {}
  }
}.deep_merge(Phonofy.config.default_phonelib_options || {}).freeze

Instance Method Summary collapse

Instance Method Details

#phonofy(column_name = :phone_number, **options) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/model/class_methods.rb', line 13

def phonofy(column_name = :phone_number, **options)
  options = DEFAULTS.deep_merge(options)

  unless respond_to? :phonofy_configs
    class_attribute :phonofy_configs
    self.phonofy_configs = { _counter: {} }
  end

  counter = (phonofy_configs[:_counter][column_name] ||= 0)
  phonofy_configs[:_counter][column_name] += 1

  phonofy_configs["#{column_name}_#{counter}"] = options.dup

  include InstanceDynamicMethods.new(column_name, options)
end