Sha256: b42ed30160cda44aa4266bc3d1669afb77cab9c6f29decffde8900519eaeeac7

Contents?: true

Size: 686 Bytes

Versions: 1

Compression:

Stored size: 686 Bytes

Contents

require 'active_support/core_ext/module/attribute_accessors.rb'

require 'purgatory/active_record_descendant_attribute_accessors'

module AttributeAccessorFields

  mattr_accessor :local_attributes

  def self.determine_attr_accessor_fields(obj)
    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

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
purgatory-2.8.0 lib/purgatory/attribute_accessor_fields.rb