Class: SetupConfiguration::MachineType

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/setup_configuration/setup_config.rb

Constant Summary collapse

RANGES =
[1000..1999, 2000..2999, 3000..3999, 4000..4999, 5000..5999, 6000..6999, 7000..7999, 8000..8999].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, sequence_number, range = nil) ⇒ MachineType

Returns a new instance of MachineType.

Raises:

  • (RuntimeError)


358
359
360
361
362
363
364
365
366
# File 'lib/setup_configuration/setup_config.rb', line 358

def initialize(name, sequence_number, range = nil)
  @name=name
  raise RuntimeError.new("ERROR: Number for machine type must be greater than 0: [name=#{name}] [number=#{sequence_number}]") if sequence_number <= 0
  raise RuntimeError.new("ERROR: More than #{RANGES.length} different machine types are not supported: [name=#{name}] [number=#{sequence_number}]") if sequence_number > RANGES.length
  @sequence_number=sequence_number
  @sequence_number_coded = @sequence_number - 1
  @range = range ? range : RANGES[@sequence_number_coded]
  @binary_number=2**@sequence_number_coded
end

Instance Attribute Details

#binary_numberObject (readonly)

Returns the value of attribute binary_number.



356
357
358
# File 'lib/setup_configuration/setup_config.rb', line 356

def binary_number
  @binary_number
end

#nameObject (readonly)

Returns the value of attribute name.



352
353
354
# File 'lib/setup_configuration/setup_config.rb', line 352

def name
  @name
end

#rangeObject (readonly)

Returns the value of attribute range.



353
354
355
# File 'lib/setup_configuration/setup_config.rb', line 353

def range
  @range
end

#sequence_numberObject (readonly)

Returns the value of attribute sequence_number.



354
355
356
# File 'lib/setup_configuration/setup_config.rb', line 354

def sequence_number
  @sequence_number
end

#sequence_number_codedObject (readonly)

Returns the value of attribute sequence_number_coded.



355
356
357
# File 'lib/setup_configuration/setup_config.rb', line 355

def sequence_number_coded
  @sequence_number_coded
end

Instance Method Details

#<=>(machine_type) ⇒ Object



368
369
370
# File 'lib/setup_configuration/setup_config.rb', line 368

def <=>(machine_type)
  self.range.first <=> machine_type.range.first
end