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