Sha256: 95ebba92dca819097addf3adbfb9699e4a3ddf869144b31699c645a73fb5a0ae

Contents?: true

Size: 642 Bytes

Versions: 2

Compression:

Stored size: 642 Bytes

Contents

# Feed-level DSL configuration
class FluQ::DSL::Feed < FluQ::DSL::Base
  attr_reader :name, :inputs, :handlers

  def initialize(name, &block)
    @name     = name
    @inputs   = []
    @handlers = []
    instance_eval(&block)
  end

  # @param [Array<Symbol>] input type path, e.g. :socket
  def input(*type, &block)
    klass = constantize(:input, *type)
    inputs.push [klass, FluQ::DSL::Options.new(&block).to_hash]
  end

  # @param [Array<Symbol>] handler type path, e.g. :log, :counter
  def handler(*type, &block)
    klass = constantize(:handler, *type)
    handlers.push [klass, FluQ::DSL::Options.new(&block).to_hash]
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fluq-0.8.1 lib/fluq/dsl/feed.rb
fluq-0.8.0 lib/fluq/dsl/feed.rb