module AttributeAccessorFields

Public Class Methods

determine_attr_accessor_fields(obj) click to toggle source
# File lib/purgatory/attribute_accessor_fields.rb, line 11
def self.determine_attr_accessor_fields(obj)
  local_attributes = obj.class.instance_variable_get(:@local_attributes_for_purgatory)

  variables = if local_attributes == :all
                ActiveRecordDescendantAttributeAccessors.attr_accessor_instance_variables(obj)
              else
                Array(local_attributes).map { |attribute|
                  attribute.to_s.prepend('@').to_sym
                }
              end

  variables.inject({}) do |hash,var|
    hash[var] = obj.instance_variable_get(var)
    hash
  end
end
set_local_attributes_to_save(klass,attrs) click to toggle source
# File lib/purgatory/attribute_accessor_fields.rb, line 7
def self.set_local_attributes_to_save(klass,attrs)
  klass.instance_variable_set(:@local_attributes_for_purgatory,attrs)
end