Module: ActiveRecord::AttributeMethods::Read

Defined in:
lib/composite_primary_keys/attribute_methods/read.rb

Instance Method Summary collapse

Instance Method Details

#_read_attribute(attr_name) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/composite_primary_keys/attribute_methods/read.rb', line 23

def _read_attribute(attr_name)
  # CPK
  if attr_name.kind_of?(Array)
    attr_name.map {|name| @attributes.fetch_value(name.to_s)}
  else
    @attributes.fetch_value(attr_name.to_s) { |n| yield n if block_given? }
  end
end

#read_attribute(attr_name, &block) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/composite_primary_keys/attribute_methods/read.rb', line 4

def read_attribute(attr_name, &block)
  name = if self.class.attribute_alias?(attr_name)
           # CPK
           # self.class.attribute_alias(attr_name).to_s
           self.class.attribute_alias(attr_name)
         else
           # CPK
           # attr_name.to_s
           attr_name
         end

  primary_key = self.class.primary_key
  # CPK
  # name = primary_key if name == "id".freeze && primary_key
  name = primary_key if name == "id".freeze && primary_key && !composite?
  sync_with_transaction_state if name == primary_key
  _read_attribute(name, &block)
end