Module: ConcernsOnRails::Models::Addressable::ClassMethods

Includes:
Support::ColumnGuard
Defined in:
lib/concerns_on_rails/models/addressable.rb

Overview

Defined as a real module (not ‘class_methods do`) so the public macro and its private helpers share one `private` and aren’t constrained by Metrics/BlockLength. ActiveSupport::Concern auto-extends ‘ClassMethods`.

Instance Method Summary collapse

Methods included from Support::ColumnGuard

#ensure_columns!

Instance Method Details

#addressable_by(required: DEFAULT_REQUIRED, default_country: "US", validate_state: false, verify_with: nil, **mapping) ⇒ Object

Configure the address. Column overrides are passed as ‘part: :column` keyword pairs; everything else tunes behavior. See the module docs.



53
54
55
56
57
58
59
60
61
# File 'lib/concerns_on_rails/models/addressable.rb', line 53

def addressable_by(required: DEFAULT_REQUIRED, default_country: "US",
                   validate_state: false, verify_with: nil, **mapping)
  self.addressable_fields = resolve_addressable_fields(mapping)
  self.addressable_required = Array(required).map(&:to_sym)
  self.addressable_default_country = default_country.to_s.upcase
  self.addressable_validate_state = validate_state
  self.addressable_verifier = verify_with
  ensure_required_columns!
end