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)


423
424
425
426
427
428
429
430
431
# File 'lib/setup_configuration/setup_config.rb', line 423

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.



421
422
423
# File 'lib/setup_configuration/setup_config.rb', line 421

def binary_number
  @binary_number
end

#nameObject (readonly)

Returns the value of attribute name.



417
418
419
# File 'lib/setup_configuration/setup_config.rb', line 417

def name
  @name
end

#rangeObject (readonly)

Returns the value of attribute range.



418
419
420
# File 'lib/setup_configuration/setup_config.rb', line 418

def range
  @range
end

#sequence_numberObject (readonly)

Returns the value of attribute sequence_number.



419
420
421
# File 'lib/setup_configuration/setup_config.rb', line 419

def sequence_number
  @sequence_number
end

#sequence_number_codedObject (readonly)

Returns the value of attribute sequence_number_coded.



420
421
422
# File 'lib/setup_configuration/setup_config.rb', line 420

def sequence_number_coded
  @sequence_number_coded
end

Instance Method Details

#<=>(machine_type) ⇒ Object



433
434
435
# File 'lib/setup_configuration/setup_config.rb', line 433

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