class Barrage

Constants

VERSION

Attributes

generators[R]

Public Class Methods

new(options = {}) click to toggle source

generators:

- name: msec
  length: 40
  start_at: 1396278000000 # 2014-04-01 00:00:00 +0900 (msec)
- name: pid
  length: 16
- name: sequence
  length: 8
# File lib/barrage.rb, line 18
def initialize(options = {})
  @options = options
  @lock = Mutex.new
  @generators = @options["generators"].map do |h|
    generator_name = h["name"]
    require "barrage/generators/#{generator_name}"
    "Barrage::Generators::#{generator_name.classify}".constantize.new(h)
  end
end

Public Instance Methods

current() click to toggle source
# File lib/barrage.rb, line 39
def current
  @lock.synchronize {
    shift_size = length
    @generators.inject(0) do |result, generator|
      shift_size = shift_size - generator.length
      result += generator.current << shift_size
    end
  }
end
generate() click to toggle source
# File lib/barrage.rb, line 28
def generate
  @lock.synchronize {
    shift_size = length
    @generators.inject(0) do |result, generator|
      shift_size = shift_size - generator.length
      result += generator.generate << shift_size
    end
  }
end
Also aliased as: next
length() click to toggle source
# File lib/barrage.rb, line 49
def length
  @generators.inject(0) {|sum, g| sum += g.length }
end
next()
Alias for: generate