Class: Earthquake::IdVar::Gen
- Inherits:
-
Object
- Object
- Earthquake::IdVar::Gen
- Defined in:
- lib/earthquake/id_var.rb
Instance Method Summary collapse
- #id2var(id) ⇒ Object
-
#initialize(vars = ('aa'..'zz').to_a, prefix = '$') ⇒ Gen
constructor
A new instance of Gen.
- #next(id) ⇒ Object
- #var2id(var) ⇒ Object
Constructor Details
#initialize(vars = ('aa'..'zz').to_a, prefix = '$') ⇒ Gen
Returns a new instance of Gen.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/earthquake/id_var.rb', line 14 def initialize(vars = ('aa'..'zz').to_a, prefix = '$') if not vars.kind_of?(Array) raise ArgumentError, 'vars should be an Array' elsif vars.empty? raise ArgumentError, 'vars should not be empty' end @vars = vars.map { |var| prefix + var } @table = {} @rtable = {} @prefix = prefix end |
Instance Method Details
#id2var(id) ⇒ Object
30 31 32 |
# File 'lib/earthquake/id_var.rb', line 30 def id2var(id) @rtable[id] || self.next(id) end |
#next(id) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/earthquake/id_var.rb', line 34 def next(id) var = @vars.shift @vars.push var @rtable.delete(@table[var]) @table[var] = id @rtable[id] = var var end |
#var2id(var) ⇒ Object
26 27 28 |
# File 'lib/earthquake/id_var.rb', line 26 def var2id(var) @table[var] end |