Class: JRPC::IdGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/jrpc/id_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(prefix: nil, thread_safe: false) ⇒ IdGenerator

Returns a new instance of IdGenerator.



7
8
9
10
11
# File 'lib/jrpc/id_generator.rb', line 7

def initialize(prefix: nil, thread_safe: false)
  @prefix = prefix || SecureRandom.hex(8)
  @n = 0
  @mutex = thread_safe ? Mutex.new : nil
end

Instance Method Details

#nextObject



13
14
15
16
17
18
19
20
# File 'lib/jrpc/id_generator.rb', line 13

def next
  n = if @mutex
        @mutex.synchronize { @n += 1 }
      else
        @n += 1
      end
  "#{@prefix}-#{n}"
end