Class: CoinTools::BaseStruct
- Inherits:
-
Object
- Object
- CoinTools::BaseStruct
- Defined in:
- lib/cointools/base_struct.rb
Class Method Summary collapse
Class Method Details
.make(*fields) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cointools/base_struct.rb', line 3 def self.make(*fields) struct = Class.new(self) fields.each do |f| raise ArgumentError.new("Invalid field name: #{f}") unless f.to_s =~ /[a-z][a-z_]*/ end struct.class_eval <<-CODE def initialize(#{fields.map { |f| "#{f}:" }.join(', ')}) #{fields.map { |f| "@#{f} = #{f}" }.join("\n")} end attr_reader #{fields.map { |f| ":#{f}" }.join(', ')} CODE struct end |