Class: SetupConfiguration::MachineType

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

Constant Summary collapse

RANGES =
[0..999, 1000..1999, 2000..2499, 2500..2999, 3000..3999, 4000..4999, 5000..5999, 6000..6999].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, sequence_number, range) ⇒ MachineType

Returns a new instance of MachineType.

Raises:

  • (RuntimeError)


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

def initialize(name, sequence_number, range)
  @name=name
  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
  @range=RANGES[@sequence_number]
  if @sequence_number <= 0
    @binary_number=0
  else
    @binary_number=2**(@sequence_number-1)
  end
end

Instance Attribute Details

#binary_numberObject (readonly)

Returns the value of attribute binary_number.



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

def binary_number
  @binary_number
end

#nameObject (readonly)

Returns the value of attribute name.



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

def name
  @name
end

#rangeObject (readonly)

Returns the value of attribute range.



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

def range
  @range
end

#sequence_numberObject (readonly)

Returns the value of attribute sequence_number.



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

def sequence_number
  @sequence_number
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