Class: MeasureScaler::Prefix

Inherits:
Object
  • Object
show all
Includes:
Prefixes
Defined in:
lib/measure_scaler/prefix.rb

Constant Summary

Constants included from Prefixes

MeasureScaler::Prefixes::LIST, MeasureScaler::Prefixes::MAX_FACTOR, MeasureScaler::Prefixes::MIN_FACTOR, MeasureScaler::Prefixes::STEP

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Prefixes

#find_factor, #find_symbol, #symbols_list, #valid?

Constructor Details

#initialize(symbol) ⇒ Prefix

Returns a new instance of Prefix.

[View source]

6
7
8
9
10
11
# File 'lib/measure_scaler/prefix.rb', line 6

def initialize(symbol)
  validate(symbol)

  @symbol = symbol
  @factor = find_factor(symbol)
end

Instance Attribute Details

#factorObject (readonly)

Returns the value of attribute factor.


4
5
6
# File 'lib/measure_scaler/prefix.rb', line 4

def factor
  @factor
end

#symbolObject (readonly)

Returns the value of attribute symbol.


4
5
6
# File 'lib/measure_scaler/prefix.rb', line 4

def symbol
  @symbol
end

Instance Method Details

#scale(proposed_order = 0) ⇒ Object

[View source]

14
15
16
17
18
19
20
21
22
# File 'lib/measure_scaler/prefix.rb', line 14

def scale(proposed_order=0)
  proposed_order = align_to_3(proposed_order)
  # return the effective order and the new symbol
  new_factor = [@factor+proposed_order, MAX_FACTOR].min
  new_factor = [new_factor, MIN_FACTOR].max
  new_symbol = find_symbol(new_factor)
  effective_order  = new_factor - @factor
  [effective_order, new_symbol] # TODO: perché non ritornare [new_order, Prefix.new(new_symbol)] ?
end

#to_sObject

[View source]

24
25
26
# File 'lib/measure_scaler/prefix.rb', line 24

def to_s
  @symbol
end