Module: Structure
- Defined in:
- lib/structure.rb,
lib/structure/version.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VERSION =
'0.26.0'
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #inspect ⇒ Object (also: #to_s)
- #to_h ⇒ Object
- #values ⇒ Object
Class Method Details
.included(base) ⇒ Object
2 3 4 5 |
# File 'lib/structure.rb', line 2 def self.included(base) base.extend(ClassMethods) base.instance_variable_set(:@value_names, []) end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
18 19 20 |
# File 'lib/structure.rb', line 18 def ==(other) values == other.values end |
#inspect ⇒ Object Also known as: to_s
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/structure.rb', line 23 def inspect str = "#<#{self.class}" first = true values.each do |k, v| str << ',' unless first first = false str << " #{k}=#{v.inspect}" end str << '>' end |
#to_h ⇒ Object
14 15 16 |
# File 'lib/structure.rb', line 14 def to_h Hash[values.dup.map { |k, v| [k, v.respond_to?(:to_h) ? v.to_h : v] } ] end |
#values ⇒ Object
7 8 9 10 11 12 |
# File 'lib/structure.rb', line 7 def values vals = {} self.class.value_names.each { |name| vals[name] = self.send(name) } vals end |