Module: Sncf::Models
- Defined in:
- lib/sncf/models/generator.rb
Constant Summary collapse
- MODEL_NAMES =
%w[Station AdministrativeRegion]
- MODEL_ATTRIBUTES =
{ 'Station' => [:id, :coord, :quality, :name, :label, :timezone, :administrative_regions], 'AdministrativeRegion' => [:insee, :level, :coord, :name, :label, :id, :zip_code] }
Class Method Summary collapse
Class Method Details
.generate_class(klass_vars) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/sncf/models/generator.rb', line 18 def self.generate_class(klass_vars) Class.new do klass_vars.each do |field| define_method field.intern do instance_variable_get("@#{field}") end define_method "#{field}=".intern do |arg| instance_variable_set("@#{field}", arg) end end define_method :initialize do |args| klass_vars.each do |field| instance_variable_set("@#{field}", args[field]) end end end end |
.generate_models ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/sncf/models/generator.rb', line 9 def self.generate_models Sncf::Models::MODEL_NAMES.each do |klass_name| klass_vars = Sncf::Models::MODEL_ATTRIBUTES[klass_name.to_s] klass = generate_class klass_vars const_set klass_name, klass end end |