module JT::Rails::Address::Validators
Public Class Methods
jt_rails_address_fields()
click to toggle source
jt_rails_address_fields
is shared only by a class and its subclass
# File lib/validators.rb, line 12 def self.jt_rails_address_fields class_variable_set(:@@jt_rails_address_fields, []) if !class_variable_defined?(:@@jt_rails_address_fields) class_variable_get(:@@jt_rails_address_fields) end
Public Instance Methods
check_if_reset_address()
click to toggle source
# File lib/validators.rb, line 39 def check_if_reset_address for address_field in self.class.jt_rails_address_fields # In Rails 5 ActiveRecord::Type::Boolean.new.cast if [1, true, "1", "true"].include?(self.send("#{address_field}_destroy")) reset_address(address_field) end end end
has_address(prefix, options = {})
click to toggle source
# File lib/validators.rb, line 22 def has_address(prefix, options = {}) attr_accessor prefix attr_accessor "#{prefix.to_s}_destroy" jt_rails_address_fields << prefix.to_sym define_singleton_method("#{prefix}_fields") do fields = [] for field in JT::Rails::Address.fields fields << "#{prefix}_#{field}".to_sym end fields end end
load_address(prefix, data)
click to toggle source
# File lib/validators.rb, line 54 def load_address(prefix, data) reset_address(prefix) for key, value in data self["#{prefix}_#{key}"] = value end end
reset_address(prefix)
click to toggle source
# File lib/validators.rb, line 48 def reset_address(prefix) for field in JT::Rails::Address.fields self["#{prefix}_#{field}"] = nil end end