Module: Batsir

Defined in:
lib/batsir.rb,
lib/batsir/log.rb,
lib/batsir/amqp.rb,
lib/batsir/logo.rb,
lib/batsir/chain.rb,
lib/batsir/stage.rb,
lib/batsir/config.rb,
lib/batsir/errors.rb,
lib/batsir/filter.rb,
lib/batsir/logger.rb,
lib/batsir/version.rb,
lib/batsir/registry.rb,
lib/batsir/filter_queue.rb,
lib/batsir/stage_worker.rb,
lib/batsir/amqp_consumer.rb,
lib/batsir/dsl/dsl_mappings.rb,
lib/batsir/acceptors/acceptor.rb,
lib/batsir/notifiers/notifier.rb,
lib/batsir/strategies/strategy.rb,
lib/batsir/acceptors/amqp_acceptor.rb,
lib/batsir/notifiers/amqp_notifier.rb,
lib/batsir/transformers/transformer.rb,
lib/batsir/strategies/retry_strategy.rb,
lib/batsir/compiler/stage_worker_compiler.rb,
lib/batsir/notifiers/conditional_notifier.rb,
lib/batsir/transformers/field_transformer.rb,
lib/batsir/transformers/json_input_transformer.rb,
lib/batsir/dsl/conditional_notifier_declaration.rb,
lib/batsir/transformers/json_output_transformer.rb

Defined Under Namespace

Modules: AMQP, Acceptors, Compiler, DSL, Errors, Log, Logger, Notifiers, StageWorker, Strategies, Transformers, Version Classes: AMQPConsumer, Chain, Config, Filter, FilterQueue, Registry, Stage

Constant Summary collapse

VERSION =
[Version::MAJOR, Version::MINOR, Version::PATCH, Version::BUILD].compact.join('.')

Class Method Summary collapse

Class Method Details

.configObject



38
39
40
# File 'lib/batsir.rb', line 38

def self.config
  Batsir::Config
end

.create(&block) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/batsir.rb', line 42

def self.create(&block)
  puts 
  new_block = ::Proc.new do
    aggregator_chain(&block)
  end
  @chain = ::Blockenspiel.invoke(new_block, Batsir::DSL::ChainMapping.new)
end

.create_and_start(&block) ⇒ Object



76
77
78
79
# File 'lib/batsir.rb', line 76

def self.create_and_start(&block)
  create(&block)
  start
end

.initialize_sidekiqObject



66
67
68
69
70
71
72
73
74
# File 'lib/batsir.rb', line 66

def self.initialize_sidekiq
  Sidekiq.logger = Batsir::Logger.log
  Sidekiq.configure_server do |config|
    config.redis = {:url => redis_url, :namespace => redis_namespace}
  end
  Sidekiq.configure_client do |config|
    config.redis = {:url => redis_url, :namespace => redis_namespace}
  end
end

.logoObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/batsir/logo.rb', line 2

def self.
<<EOF

                                 E        ,.
                 ,,,agB8@f      ,8v      ,8L      J88&gg,,,
            .,a88888888@^       |8&,,,,,,88k       ,88888888&g,,
         ,+88888888888$t        8888888f''9@.       ,888888888888g,
      ,,88888888888888$;       ,888888&`   8c       ,888888888888888w,
    ,a88888888888888888&,......|8888888&gg&|8k......,d88888888888888888&,
   ,888888888888888888888888888888888qp8888|@8888888888888888888888888888y
  ,888888888888888888888888888888`8` '' `8`|888888888888888888888888888888E
 ,88888888888888888888888888888888   &&   8|8888888888888888888888888888888c
 |88888888888888888888888888888888888888888|8888888888888888888888888888888k
 |88888888888888888888888888888888888888888|8888888888888888888888888888888k
 ,888888888888888888888888888888888888888888888888888888888888888888888888!
  j8888888888888888888888888888888888888888888888888888888888888888888888f
   j8888888888888888@@88888888888888888888888888888888@@888888888888888@f
    ,9888888888888@:  `988M^  `?88888888888@f:  |988M'  .8888888888888M'
      ,98888888888F     jf       J8888888@f       jf     ,888888888@f'
         |98888888&.              ,98888@'               d888888@9"
            `?9@888&,               j88f               ,d88$@9l'
                 `|?9t               |f               `9T"`

                ______  _______ _______ _______ _____ ______
                |_____] |_____|    |    |______   |   |_____/
                |_____] |     |    |    ______| __|__ |    \\_

EOF
end

.redis_namespaceObject



88
89
90
# File 'lib/batsir.rb', line 88

def self.redis_namespace
  Batsir::Config.redis_namespace
end

.redis_urlObject



81
82
83
84
85
86
# File 'lib/batsir.rb', line 81

def self.redis_url
  host = Batsir::Config.redis_host
  port = Batsir::Config.redis_port
  dbase = Batsir::Config.redis_database
  "redis://#{host}:#{port}/#{dbase}"
end

.startObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/batsir.rb', line 50

def self.start
  return unless @chain

  sidekiq_cli = Sidekiq::CLI.instance
  Sidekiq.options[:queues] << Batsir::Config.sidekiq_queue

  initialize_sidekiq

  generated_code = @chain.compile

  eval(generated_code)

  @chain.start
  sidekiq_cli.run
end