Module: ActiveRemote::AttributeMethods
- Extended by:
- ActiveSupport::Concern
- Included in:
- Base
- Defined in:
- lib/active_remote/attribute_methods.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #[](attr_name) ⇒ Object
- #[]=(attr_name, value) ⇒ Object
-
#attribute_for_inspect(attr_name) ⇒ Object
Returns an
#inspect
-like string for the value of the attributeattr_name
. - #attribute_names ⇒ Object
Instance Method Details
#[](attr_name) ⇒ Object
11 12 13 14 15 |
# File 'lib/active_remote/attribute_methods.rb', line 11 def [](attr_name) name = attr_name.to_s name = self.class.attribute_aliases[name] || name attribute(name.to_s) end |
#[]=(attr_name, value) ⇒ Object
17 18 19 20 21 |
# File 'lib/active_remote/attribute_methods.rb', line 17 def []=(attr_name, value) name = attr_name.to_s name = self.class.attribute_aliases[name] || name _write_attribute(name.to_s, value) end |
#attribute_for_inspect(attr_name) ⇒ Object
Returns an #inspect
-like string for the value of the attribute attr_name
. String attributes are truncated up to 50 characters, Date and Time attributes are returned in the :db
format. Other attributes return the value of #inspect
without modification.
person = Person.create!(name: 'David Heinemeier Hansson ' * 3)
person.attribute_for_inspect(:name)
# => "\"David Heinemeier Hansson David Heinemeier Hansson ...\""
person.attribute_for_inspect(:created_at)
# => "\"2012-10-22 00:15:07\""
person.attribute_for_inspect(:tag_ids)
# => "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]"
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/active_remote/attribute_methods.rb', line 39 def attribute_for_inspect(attr_name) value = attribute(attr_name) if value.is_a?(String) && value.length > 50 "#{value[0, 50]}...".inspect elsif value.is_a?(Date) || value.is_a?(Time) %("#{value.to_s(:db)}") else value.inspect end end |
#attribute_names ⇒ Object
51 52 53 |
# File 'lib/active_remote/attribute_methods.rb', line 51 def attribute_names @attributes.keys end |