Class: SimpleStruct
- Inherits:
-
Object
- Object
- SimpleStruct
- Defined in:
- lib/simple_struct.rb
Constant Summary collapse
- VERSION =
"0.0.1"
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(*args) ⇒ SimpleStruct
constructor
A new instance of SimpleStruct.
- #inspect ⇒ Object
Constructor Details
#initialize(*args) ⇒ SimpleStruct
Returns a new instance of SimpleStruct.
13 14 15 16 17 |
# File 'lib/simple_struct.rb', line 13 def initialize *args self.class.members.zip(args).each do |member, value| instance_variable_set(:"@#{member}", value) end end |
Class Method Details
.inspect ⇒ Object
19 20 21 |
# File 'lib/simple_struct.rb', line 19 def self.inspect %[#{to_s}(#{members*', '})] end |
.new(*members, &block) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/simple_struct.rb', line 5 def self.new *members, &block subclass = Class.new(self) subclass.define_singleton_method(:new, self.superclass.method(:new)) subclass.define_singleton_method(:members){ members } subclass.class_eval(&block) if block_given? subclass end |
Instance Method Details
#inspect ⇒ Object
23 24 25 |
# File 'lib/simple_struct.rb', line 23 def inspect %(#<#{self.class}: #{self.class.members.map{|member| "#{member}=#{send(member).inspect}"}.join(', ')}>) end |