Module: Structure
- Defined in:
- lib/structure.rb,
lib/structure/version.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VERSION =
'0.25.0'
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #inspect ⇒ Object (also: #to_s)
- #values ⇒ Object (also: #to_h)
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?
15 16 17 |
# File 'lib/structure.rb', line 15 def ==(other) values == other.values end |
#inspect ⇒ Object Also known as: to_s
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/structure.rb', line 20 def inspect str = "#<#{self.class}" first = true values.each do |k, v| str << ',' unless first first = false str << " #{k}=#{v.inspect}" end str << '>' end |
#values ⇒ Object Also known as: to_h
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 |