Class: AssignableValues::ActiveRecord::Restriction::ScalarAttribute

Inherits:
Base
  • Object
show all
Defined in:
lib/assignable_values/active_record/restriction/scalar_attribute.rb

Instance Attribute Summary

Attributes inherited from Base

#default, #model, #options, #property, #secondary_default, #values

Instance Method Summary collapse

Methods inherited from Base

#assignable_values, #set_default, #validate_record

Constructor Details

#initialize(*args) ⇒ ScalarAttribute

Returns a new instance of ScalarAttribute.



6
7
8
9
10
11
# File 'lib/assignable_values/active_record/restriction/scalar_attribute.rb', line 6

def initialize(*args)
  super
  define_humanized_value_instance_method
  define_humanized_value_class_method
  define_humanized_assignable_values_instance_method
end

Instance Method Details

#humanized_assignable_values(record, options = {}) ⇒ Object



20
21
22
23
24
25
# File 'lib/assignable_values/active_record/restriction/scalar_attribute.rb', line 20

def humanized_assignable_values(record, options = {})
  values = assignable_values(record, options)
  values.collect do |value|
    HumanizedValue.new(value, humanized_value(value))
  end
end

#humanized_value(value) ⇒ Object



13
14
15
16
17
18
# File 'lib/assignable_values/active_record/restriction/scalar_attribute.rb', line 13

def humanized_value(value)
  if value.present?
    dictionary_scope = "assignable_values.#{model.name.underscore}.#{property}"
    I18n.t(value, :scope => dictionary_scope, :default => default_humanization_for_value(value))
  end
end