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
- #[](name) ⇒ Object
- #[]=(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
#[](name) ⇒ Object
11 12 13 |
# File 'lib/active_remote/attribute_methods.rb', line 11 def [](name) attribute(name) end |
#[]=(name, value) ⇒ Object
15 16 17 |
# File 'lib/active_remote/attribute_methods.rb', line 15 def []=(name, value) write_attribute(name, 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]"
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/active_remote/attribute_methods.rb', line 35 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
47 48 49 |
# File 'lib/active_remote/attribute_methods.rb', line 47 def attribute_names @attributes.keys end |