Module: Tablesalt::StringableObject

Extended by:
ActiveSupport::Concern
Defined in:
lib/tablesalt/stringable_object.rb

Instance Method Summary collapse

Instance Method Details

#attribute_string(method) ⇒ Object (private)



27
28
29
# File 'lib/tablesalt/stringable_object.rb', line 27

def attribute_string(method)
  stringable_attribute_values.map { |attribute, value| "#{attribute}=#{value.public_send(method)}" }.join(" ")
end

#inspectObject



13
14
15
# File 'lib/tablesalt/stringable_object.rb', line 13

def inspect
  string_for(__method__)
end

#safe_send(method) ⇒ Object (private)



35
36
37
38
39
# File 'lib/tablesalt/stringable_object.rb', line 35

def safe_send(method)
  public_send(method)
rescue StandardError
  nil
end

#string_for(method) ⇒ Object (private)



23
24
25
# File 'lib/tablesalt/stringable_object.rb', line 23

def string_for(method)
  "#<#{self.class.name}#{" #{attribute_string(method)}" unless stringable_attributes.empty?}>"
end

#stringable_attribute_valuesObject (private)



31
32
33
# File 'lib/tablesalt/stringable_object.rb', line 31

def stringable_attribute_values
  stringable_attributes.each_with_object({}) { |attribute, result| result[attribute] = safe_send(attribute) }
end

#stringable_attributesObject (private)



19
20
21
# File 'lib/tablesalt/stringable_object.rb', line 19

def stringable_attributes
  []
end

#to_sObject



9
10
11
# File 'lib/tablesalt/stringable_object.rb', line 9

def to_s
  string_for(__method__)
end