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

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_namesObject



47
48
49
# File 'lib/active_remote/attribute_methods.rb', line 47

def attribute_names
  @attributes.keys
end