Sha256: 15a978cfa4a093e5bc4a40d0d905cb19aabd439ffb406199451026a19b9400d5

Contents?: true

Size: 671 Bytes

Versions: 1

Compression:

Stored size: 671 Bytes

Contents

require 'active_record'

module ActiveRecord::AttributeMethods::Read
  def read_attribute(attr_name, &block) # :nodoc:
    name = attr_name.to_s
    name = self.class.attribute_aliases[name] || name

    name = @primary_key if name == 'id' && @primary_key
    _read_attribute(name, &block)
  end

  def _read_attribute(attr_name, &block) # :nodoc:
    name = attr_name.to_s
    name = self.class.attribute_aliases[name] || name

    sync_with_transaction_state if @transaction_state&.finalized?
    return yield if block_given? and AdaptiveAlias.missing_value?(@attributes, self.class, name)
    return @attributes.fetch_value(name, &block)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
adaptive_alias-0.0.3 lib/adaptive_alias/active_model_patches/read_attribute.rb