Module: Valium::ValueOf

Defined in:
lib/valium.rb

Instance Method Summary collapse

Instance Method Details

#value_of(*args) ⇒ Object Also known as: []



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/valium.rb', line 89

def value_of(*args)
  if args.size > 0 && args.all? {|a| String === a || Symbol === a}
    args.map! do |attr_name|
      attr_name = attr_name.to_s
      attr_name == 'id' ? klass.primary_key : attr_name
    end

    if loaded? && (empty? || args.all? {|a| first.attributes.has_key? a})
      to_a.map {|record| args.map {|a| record[a]}}
    else
      scoping { klass[*args] }
    end
  else
    to_a[*args]
  end
end