ocular 0.1.14 → 0.1.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b75a01c08fb7b6a2ff960807a32756141e464168
4
- data.tar.gz: 37aaefaa23b2948b71e08ab2d9b1b3a869ddb68a
3
+ metadata.gz: 89e4559ff9d5af112b1d8112311d72658732f4a0
4
+ data.tar.gz: ad7aefaf93159266fdbe1977bed667c24cd82529
5
5
  SHA512:
6
- metadata.gz: e88d5e11511d01257c91a8437435ef910c530b2fa18e8d4e2d60e26a5d444b4e567ccf1d59ba04b82ae490e39e5c95526ca17a1dff194b3dd6842854c5a38eff
7
- data.tar.gz: cc915062ae0f0eac29ff93a3d9ea96b7ca1e9f25cfea0b757cc303fea89b126fae9703c9d5f718634ef596af7c4d2deae7f9fb2220b48e5272e2082626baf345
6
+ metadata.gz: 2c89e2f89937f1e1aac4036872e8262db351ef4cfbfb08035e511591756fed79b00ca985ca2886e7cc646ee903850a7624c560c6f1909837af23e0af5113c1e5
7
+ data.tar.gz: 8fa4c75d13e95ffd823778f7454d2ab4fc390a2e8048360b4c72b3323d6d325252bbd4a3d16bfcbb7f21da1f1e042a9ad1ef3d02836100229404f9f06231feb5
data/bin/ocular CHANGED
@@ -95,12 +95,20 @@ ssh:
95
95
  - /home/user/.ssh/id_dsa
96
96
  user: ubuntu
97
97
 
98
- inputs:
99
- http:
100
- port: 8083
98
+ datasources:
101
99
  etcd:
102
100
  host: etc
103
101
  port: 4001
102
+ mysql:
103
+ host: localhost
104
+ password: xyz
105
+ username: ocular
106
+ database: ocular
107
+
108
+ inputs:
109
+ http:
110
+ port: 8083
111
+
104
112
 
105
113
  "
106
114
  exit -1
@@ -3,6 +3,7 @@ require 'ocular/event/eventbase.rb'
3
3
  require 'ocular/inputs/http_input.rb'
4
4
  require 'ocular/inputs/cron_input.rb'
5
5
  require 'ocular/inputs/trigger_input.rb'
6
+ require 'ocular/inputs/rabbitmq_input.rb'
6
7
 
7
8
  class Ocular
8
9
  module Event
@@ -30,6 +31,7 @@ class Ocular
30
31
  include Ocular::Inputs::HTTP::ErrorDSL
31
32
  include Ocular::Inputs::Cron::DSL
32
33
  include Ocular::Inputs::Trigger::DSL
34
+ include Ocular::Inputs::RabbitMQ::DSL
33
35
 
34
36
  def fork(value)
35
37
  @do_fork = value
@@ -32,6 +32,12 @@ class Ocular
32
32
  handler = handlers.get(::Ocular::Inputs::HTTP::Input)
33
33
  handler.add_delete(script_name, path, opts, self, &block)
34
34
  end
35
+
36
+ def onOPTIONS(path, opts = {}, &block)
37
+ handler = handlers.get(::Ocular::Inputs::HTTP::Input)
38
+ handler.add_options(script_name, path, opts, self, &block)
39
+ end
40
+
35
41
  end
36
42
 
37
43
  module ErrorDSL
@@ -282,7 +288,12 @@ class Ocular
282
288
  def add_delete(script_name, path, options, proxy, &block)
283
289
  name = generate_uri_from_names(script_name, path)
284
290
  route('DELETE', name, options, proxy, &block)
285
- end
291
+ end
292
+
293
+ def add_options(script_name, path, options, proxy, &block)
294
+ name = generate_uri_from_names(script_name, path)
295
+ route('OPTIONS', name, options, proxy, &block)
296
+ end
286
297
 
287
298
  def build_signature(pattern, keys, &block)
288
299
  return [pattern, keys, block]
@@ -0,0 +1,87 @@
1
+
2
+ require 'ocular/inputs/base.rb'
3
+ require 'ocular/dsl/dsl.rb'
4
+ require 'ocular/dsl/runcontext.rb'
5
+ require 'rufus/scheduler'
6
+
7
+ class Ocular
8
+ module Inputs
9
+
10
+ module RabbitMQ
11
+
12
+ module DSL
13
+
14
+ #add_event_help "cron.in(rule)", "Schedule event to be executed in 'rule'. eg: '1m'"
15
+ def rabbitmq()
16
+ handler = handlers.get(::Ocular::Inputs::RabbitMQ::Input)
17
+ return Input::DSLProxy.new(self, handler, logger)
18
+ end
19
+
20
+ end
21
+
22
+ class Input < ::Ocular::Inputs::Base
23
+
24
+ attr_reader :routes
25
+ attr_reader :conn
26
+
27
+ def initialize(settings_factory)
28
+ settings = settings_factory[:rabbitmq]
29
+
30
+ ::Ocular.logger.debug "Starting RabbitMQ input"
31
+
32
+ @conn = Bunny.new
33
+ conn.start
34
+
35
+ ch = conn.create_channel
36
+ q = ch.queue("bunny.examples.hello_world", :auto_delete => true)
37
+ x = ch.default_exchange
38
+
39
+ end
40
+
41
+ def start()
42
+
43
+ end
44
+
45
+ def stop()
46
+ @scheduler.shutdown
47
+ end
48
+
49
+ class RabbitMQRunContext < ::Ocular::DSL::RunContext
50
+ attr_accessor :delivery_info, :metadata, :payload
51
+
52
+ def initialize()
53
+ super(Ocular::Logging::ConsoleLogger.new)
54
+ end
55
+ end
56
+
57
+
58
+ class DSLProxy
59
+ def initialize(proxy, handler, logger)
60
+ @proxy = proxy
61
+ @handler = handler
62
+ @logger = logger
63
+ end
64
+
65
+ def subscribe(topic, &block)
66
+ eventbase = Ocular::DSL::EventBase.new(@proxy, &block)
67
+ ::Ocular.logger.debug "rabbitmq.subscribe to# #{topic} for block #{block}"
68
+
69
+ q.subscribe(topic) do |delivery_info, metadata, payload|
70
+ context = RabbitMQRunContext.new(@logger)
71
+ context.log_cause("rabbitmq.subscribe(#{topic})")
72
+ context.delivery_info = delivery_info
73
+ context.metadata = metadata
74
+ context.payload = payload
75
+ eventbase.exec(context)
76
+ end
77
+
78
+ @proxy.events[id] = eventbase
79
+
80
+ return id
81
+ end
82
+ end
83
+
84
+ end
85
+ end
86
+ end
87
+ end
data/lib/ocular/ocular.rb CHANGED
@@ -24,6 +24,7 @@ require 'ocular/dsl/runcontext'
24
24
  require 'ocular/inputs/handlers'
25
25
  require 'ocular/inputs/base'
26
26
  require 'ocular/inputs/http_input'
27
+ require 'ocular/inputs/rabbitmq_input'
27
28
  require 'ocular/daemon'
28
29
 
29
30
 
@@ -1,3 +1,3 @@
1
1
  class Ocular
2
- Version = "0.1.14"
2
+ Version = "0.1.15"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ocular
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juho Mäkinen
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
152
  version: 0.4.3
153
+ - !ruby/object:Gem::Dependency
154
+ name: bunny
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 2.3.1
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 2.3.1
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: rspec
155
169
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +212,7 @@ files:
198
212
  - lib/ocular/inputs/cron_input.rb
199
213
  - lib/ocular/inputs/handlers.rb
200
214
  - lib/ocular/inputs/http_input.rb
215
+ - lib/ocular/inputs/rabbitmq_input.rb
201
216
  - lib/ocular/inputs/trigger_input.rb
202
217
  - lib/ocular/logging/console_logger.rb
203
218
  - lib/ocular/logging/kafka_logger.rb