Class: TypableMap::TypableMap

Inherits:
Hash
  • Object
show all
Defined in:
lib/typable_map.rb

Constant Summary collapse

Roman =
%w[
a i u e o ka ki ku ke ko sa si su se so
ta ti tu te to na ni nu ne no ha hi fu he ho
ma mi mu me mo ya yu yo ra ri ru re ro
wa wo
ga gi gu ge go za ji zu ze zo da de do
ba bi bu be bo pa pi pu pe po
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ TypableMap

Returns a new instance of TypableMap.



18
19
20
21
22
23
# File 'lib/typable_map.rb', line 18

def initialize(opts = {})
  @seq = Roman.dup
  @seq.shuffle! if opts.fetch(:shuffle, nil)
  @seq.freeze
  @counter = Counter.new(opts.fetch(:max_size, @seq.size))
end

Instance Method Details

#push(obj) ⇒ Object Also known as: <<



25
26
27
28
29
# File 'lib/typable_map.rb', line 25

def push(obj)
  id = generate(@counter.next)
  self[id] = obj
  id
end