eventbus 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/admin/Gemfile +50 -0
- data/admin/Gemfile.lock +141 -0
- data/admin/Rakefile +7 -0
- data/admin/app/assets/images/rails.png +0 -0
- data/admin/app/assets/javascripts/application.js +15 -0
- data/admin/app/assets/javascripts/applications.js.coffee +3 -0
- data/admin/app/assets/javascripts/message_routes.js.coffee +3 -0
- data/admin/app/assets/javascripts/message_types.js.coffee +3 -0
- data/admin/app/assets/javascripts/messages.js.coffee +3 -0
- data/admin/app/assets/stylesheets/application.css +13 -0
- data/admin/app/assets/stylesheets/applications.css.scss +3 -0
- data/admin/app/assets/stylesheets/global.css.scss +72 -0
- data/admin/app/assets/stylesheets/message_routes.css.scss +3 -0
- data/admin/app/assets/stylesheets/message_types.css.scss +3 -0
- data/admin/app/assets/stylesheets/messages.css.scss +30 -0
- data/admin/app/assets/stylesheets/scaffolds.css.scss +56 -0
- data/admin/app/controllers/application_controller.rb +3 -0
- data/admin/app/controllers/applications_controller.rb +83 -0
- data/admin/app/controllers/message_routes_controller.rb +85 -0
- data/admin/app/controllers/message_types_controller.rb +83 -0
- data/admin/app/controllers/messages_controller.rb +75 -0
- data/admin/app/helpers/application_helper.rb +2 -0
- data/admin/app/helpers/applications_helper.rb +2 -0
- data/admin/app/helpers/message_routes_helper.rb +2 -0
- data/admin/app/helpers/message_types_helper.rb +2 -0
- data/admin/app/helpers/messages_helper.rb +2 -0
- data/admin/app/models/application.rb +7 -0
- data/admin/app/models/message.rb +4 -0
- data/admin/app/models/message_route.rb +5 -0
- data/admin/app/models/message_type.rb +7 -0
- data/admin/app/views/applications/_form.html.haml +27 -0
- data/admin/app/views/applications/edit.html.haml +5 -0
- data/admin/app/views/applications/index.html.haml +28 -0
- data/admin/app/views/applications/new.html.haml +3 -0
- data/admin/app/views/applications/show.html.haml +16 -0
- data/admin/app/views/layouts/application.html.haml +24 -0
- data/admin/app/views/message_routes/_form.html.haml +31 -0
- data/admin/app/views/message_routes/edit.html.haml +5 -0
- data/admin/app/views/message_routes/index.html.haml +28 -0
- data/admin/app/views/message_routes/new.html.haml +3 -0
- data/admin/app/views/message_routes/show.html.haml +16 -0
- data/admin/app/views/message_types/_form.html.haml +29 -0
- data/admin/app/views/message_types/edit.html.haml +5 -0
- data/admin/app/views/message_types/index.html.haml +28 -0
- data/admin/app/views/message_types/new.html.haml +5 -0
- data/admin/app/views/message_types/show.html.haml +17 -0
- data/admin/app/views/messages/index.html.haml +48 -0
- data/admin/app/views/messages/show.html.haml +45 -0
- data/admin/config/application.rb +64 -0
- data/admin/config/boot.rb +6 -0
- data/admin/config/database.yml +29 -0
- data/admin/config/environment.rb +5 -0
- data/admin/config/environments/development.rb +37 -0
- data/admin/config/environments/production.rb +72 -0
- data/admin/config/environments/test.rb +37 -0
- data/admin/config/initializers/backtrace_silencers.rb +7 -0
- data/admin/config/initializers/inflections.rb +15 -0
- data/admin/config/initializers/mime_types.rb +5 -0
- data/admin/config/initializers/secret_token.rb +7 -0
- data/admin/config/initializers/session_store.rb +8 -0
- data/admin/config/initializers/wrap_parameters.rb +14 -0
- data/admin/config/locales/en.yml +5 -0
- data/admin/config/routes.rb +69 -0
- data/admin/config.ru +4 -0
- data/admin/db/development.sqlite3-journal +0 -0
- data/admin/db/migrate/20120218124300_create_messages.rb +16 -0
- data/admin/db/migrate/20120219021535_create_applications.rb +11 -0
- data/admin/db/migrate/20120219021806_create_message_types.rb +13 -0
- data/admin/db/migrate/20120219021940_create_message_routes.rb +13 -0
- data/admin/db/migrate/20120411001040_add_app_id_key_msg_type_id_to_messages.rb +7 -0
- data/admin/db/migrate/20120411001823_rename_message_type_to_message_type_name_in_messages.rb +5 -0
- data/admin/db/migrate/20120413024953_add_message_guid_to_messages.rb +5 -0
- data/admin/db/migrate/20120523112257_add_match_all_errors_to_routes.rb +5 -0
- data/admin/db/schema.rb +68 -0
- data/admin/db/seeds.rb +7 -0
- data/admin/doc/README_FOR_APP +2 -0
- data/admin/public/404.html +26 -0
- data/admin/public/422.html +26 -0
- data/admin/public/500.html +25 -0
- data/admin/public/favicon.ico +0 -0
- data/admin/public/robots.txt +5 -0
- data/admin/script/rails +6 -0
- data/admin/script/railsrunner +3 -0
- data/admin/test/fixtures/applications.yml +14 -0
- data/admin/test/fixtures/message_routes.yml +11 -0
- data/admin/test/fixtures/message_types.yml +17 -0
- data/admin/test/fixtures/messages.yml +45 -0
- data/admin/test/functional/applications_controller_test.rb +49 -0
- data/admin/test/functional/message_routes_controller_test.rb +49 -0
- data/admin/test/functional/message_types_controller_test.rb +49 -0
- data/admin/test/functional/messages_controller_test.rb +49 -0
- data/admin/test/performance/browsing_test.rb +12 -0
- data/admin/test/test_helper.rb +13 -0
- data/admin/test/unit/application_test.rb +7 -0
- data/admin/test/unit/helpers/applications_helper_test.rb +4 -0
- data/admin/test/unit/helpers/message_routes_helper_test.rb +4 -0
- data/admin/test/unit/helpers/message_types_helper_test.rb +4 -0
- data/admin/test/unit/helpers/messages_helper_test.rb +4 -0
- data/admin/test/unit/message_route_test.rb +7 -0
- data/admin/test/unit/message_test.rb +7 -0
- data/admin/test/unit/message_type_test.rb +7 -0
- data/bin/eventbus_dispatcher.rb +118 -0
- data/bin/eventbus_emailer.rb +41 -0
- data/lib/eventbus/connectors/amqp.rb +70 -0
- data/lib/eventbus/connectors/bunny.rb +71 -0
- data/lib/eventbus/connectors/stomp.rb +77 -0
- data/lib/eventbus/message.rb +180 -0
- data/lib/eventbus/queue.rb +28 -0
- data/lib/eventbus/service.rb +116 -0
- metadata +188 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'bunny'
|
|
3
|
+
require 'yaml'
|
|
4
|
+
require 'uuid'
|
|
5
|
+
require 'eventbus/queue'
|
|
6
|
+
|
|
7
|
+
module EventBus
|
|
8
|
+
|
|
9
|
+
class Message
|
|
10
|
+
|
|
11
|
+
attr_reader :data
|
|
12
|
+
|
|
13
|
+
def initialize(application_id)
|
|
14
|
+
|
|
15
|
+
raise "No application ID specified!" if application_id.nil?
|
|
16
|
+
|
|
17
|
+
@data = {
|
|
18
|
+
:HEADER => {
|
|
19
|
+
:message_id => UUID.new.generate.to_s,
|
|
20
|
+
:message_type => self.default_section_name,
|
|
21
|
+
:status => "BEGIN",
|
|
22
|
+
:application_id => application_id
|
|
23
|
+
},
|
|
24
|
+
:ERROR_INFO => {
|
|
25
|
+
:is_error => false,
|
|
26
|
+
:backtrace => nil,
|
|
27
|
+
:message => nil
|
|
28
|
+
},
|
|
29
|
+
:PAYLOAD => {}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@connection_driver = ENV["EVENTBUS_CONNECTOR"] || "Bunny"
|
|
33
|
+
|
|
34
|
+
driver_module = "#{@connection_driver}ConnectionDriver"
|
|
35
|
+
|
|
36
|
+
require_relative "connectors/#{@connection_driver.downcase}"
|
|
37
|
+
|
|
38
|
+
# Eh, pretty much just swiped from ActiveSupport "constantize"..
|
|
39
|
+
conn_module = Object.const_defined?(driver_module) ? Object.const_get(driver_module) : Object.const_missing(driver_module)
|
|
40
|
+
|
|
41
|
+
extend conn_module
|
|
42
|
+
|
|
43
|
+
connection_driver_initialize
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def set(key, val, opts = {})
|
|
49
|
+
|
|
50
|
+
raise "You must specify a key name!" if key.nil?
|
|
51
|
+
section = opts.delete(:section) || self.default_section_name
|
|
52
|
+
|
|
53
|
+
@data[:PAYLOAD][section] = {} if @data[:PAYLOAD][section].nil?
|
|
54
|
+
@data[:PAYLOAD][section][key] = val
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def get(key, opts = {})
|
|
58
|
+
raise "You must specify a key name!" if key.nil?
|
|
59
|
+
section = opts.delete(:section) || self.default_section_name
|
|
60
|
+
|
|
61
|
+
return @data[:PAYLOAD][section].nil? ? nil : @data[:PAYLOAD][section][key]
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# opts:
|
|
65
|
+
# :queue_name -- the base queue name to receive the message. Defaults to "dispatcher"
|
|
66
|
+
# :global_queue -- Do not prepend the application ID and do not append the environment
|
|
67
|
+
# :system_queue -- Do not prepend the application ID to the queue_name
|
|
68
|
+
#
|
|
69
|
+
# Normally a queue name is calculated to be: applicationid.queue_name.environment
|
|
70
|
+
# so that eventbus can handle multiple applications on the same eventbus instance, and
|
|
71
|
+
# multiple environment-scoped eventbuses on the same broker. By applying :global_queue
|
|
72
|
+
# or :system_queue, you are breaking that scoping to some degree. Maybe that's what you want,
|
|
73
|
+
# but be careful or you might get cross-talk between applications or environments!
|
|
74
|
+
def send(opts = {})
|
|
75
|
+
|
|
76
|
+
queue_name = opts.delete(:queue_name)
|
|
77
|
+
|
|
78
|
+
if queue_name.nil?
|
|
79
|
+
queue_name = "dispatcher"
|
|
80
|
+
opts[:system_queue] = true
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
opts[:queue_name] = Queue.calc_name(queue_name, application_id, ENV['PROD_LEVEL'], opts)
|
|
84
|
+
|
|
85
|
+
puts "Sending message to: #{opts[:queue_name]}"
|
|
86
|
+
|
|
87
|
+
set_special(:HEADER, :sender, $0)
|
|
88
|
+
send_raw self.dump, opts
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def set_error(exception)
|
|
92
|
+
@data[:ERROR_INFO][:backtrace] = exception.backtrace
|
|
93
|
+
@data[:ERROR_INFO][:message] = exception.to_s
|
|
94
|
+
self.is_error = true
|
|
95
|
+
self.status = exception.class.name
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def dump
|
|
99
|
+
YAML::dump(@data)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def load(yaml)
|
|
103
|
+
@data = YAML::load(yaml)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def application_id
|
|
107
|
+
return get_special(:HEADER, :application_id)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def message_id
|
|
111
|
+
return get_special(:HEADER, :message_id)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def message_type
|
|
115
|
+
return get_special(:HEADER, :message_type)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def message_type=(val)
|
|
119
|
+
set_special(:HEADER, :message_type, val)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def status
|
|
123
|
+
return get_special(:HEADER, :status)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def status=(val)
|
|
127
|
+
set_special(:HEADER, :status, val)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def error_message
|
|
131
|
+
get_special(:ERROR_INFO, :message)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def error_message=(val)
|
|
135
|
+
set_special(:ERROR_INFO, :message, val)
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def is_error
|
|
139
|
+
get_special(:ERROR_INFO, :is_error)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def is_error=(val)
|
|
143
|
+
set_special(:ERROR_INFO, :is_error, val)
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def backtrace
|
|
147
|
+
return get_special(:ERROR_INFO, :backtrace)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def backtrace=(val)
|
|
151
|
+
set_special(:ERROR_INFO, :backtrace, val)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def clear_error_info
|
|
155
|
+
self.is_error = false
|
|
156
|
+
self.backtrace = []
|
|
157
|
+
self.error_message = nil
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def default_section_name
|
|
161
|
+
return self.class.name.split(/::/).last
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
private
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
def set_special(block, key, val)
|
|
169
|
+
@data[block][key] = val
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def get_special(block, key)
|
|
173
|
+
return @data[block][key]
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
end # module EventBus
|
|
179
|
+
|
|
180
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module EventBus
|
|
2
|
+
|
|
3
|
+
class Queue
|
|
4
|
+
|
|
5
|
+
def Queue.calc_name(base_name, application_id = "core", prod_level = ENV['PROD_LEVEL'], opts = {})
|
|
6
|
+
|
|
7
|
+
global_queue = opts.delete(:global_queue) || false
|
|
8
|
+
system_queue = opts.delete(:system_queue) || false
|
|
9
|
+
|
|
10
|
+
raise "application_id not set!" if application_id.nil?
|
|
11
|
+
raise "prod_level not set!" if prod_level.nil?
|
|
12
|
+
|
|
13
|
+
application_id = application_id.downcase
|
|
14
|
+
prod_level = prod_level.downcase
|
|
15
|
+
|
|
16
|
+
queue_name = base_name
|
|
17
|
+
unless global_queue == true
|
|
18
|
+
queue_name = "#{queue_name}.#{prod_level}"
|
|
19
|
+
queue_name = "#{application_id}.#{queue_name}" unless system_queue
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
puts "Calculated queue name: #{queue_name}"
|
|
23
|
+
return queue_name
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
require 'bunny'
|
|
2
|
+
require 'logger'
|
|
3
|
+
require 'eventbus/queue'
|
|
4
|
+
|
|
5
|
+
module EventBus
|
|
6
|
+
class Service
|
|
7
|
+
|
|
8
|
+
attr_accessor :listen_queue
|
|
9
|
+
attr_accessor :system_process
|
|
10
|
+
attr_accessor :global_process
|
|
11
|
+
attr_accessor :logger
|
|
12
|
+
|
|
13
|
+
# Methods expected to be overridden in subclasses
|
|
14
|
+
def handle_exception(message, exception)
|
|
15
|
+
# Just a hook that can be overridden in the subclass. Framework base behavior is in handle_exception_base.
|
|
16
|
+
# It does not need to be overridden, but can provide some custom behaviors.
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# process_message is the main business-logic entry point for the subclass. Subclasses _MUST_ override this.
|
|
20
|
+
def process_message(message)
|
|
21
|
+
raise "You need to override the 'process_message' method in your subclass!"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def initialize(application_id = nil)
|
|
26
|
+
@listen_queue = self.class.name
|
|
27
|
+
@application_id = application_id || raise("No application ID specified!")
|
|
28
|
+
@logger = Logger.new(STDOUT)
|
|
29
|
+
@system_process = false
|
|
30
|
+
@global_process = false
|
|
31
|
+
|
|
32
|
+
@connection_driver = ENV["EVENTBUS_CONNECTOR"] || "Stomp"
|
|
33
|
+
|
|
34
|
+
driver_module = "#{@connection_driver}ConnectionDriver"
|
|
35
|
+
|
|
36
|
+
require_relative "connectors/#{@connection_driver.downcase}"
|
|
37
|
+
|
|
38
|
+
# Pretty much just swiped from ActiveSupport "constantize"..
|
|
39
|
+
conn_module = Object.const_defined?(driver_module) ? Object.const_get(driver_module) : Object.const_missing(driver_module)
|
|
40
|
+
|
|
41
|
+
extend conn_module
|
|
42
|
+
|
|
43
|
+
connection_driver_initialize
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def start ( opts = {} )
|
|
49
|
+
|
|
50
|
+
max_workers = opts.delete(:max_workers) || 5
|
|
51
|
+
|
|
52
|
+
opts[:system_queue] = @system_process
|
|
53
|
+
opts[:global_process] = @global_process
|
|
54
|
+
|
|
55
|
+
queue_name = Queue.calc_name(listen_queue, @application_id, ENV['PROD_LEVEL'], opts)
|
|
56
|
+
|
|
57
|
+
watch_queue(queue_name) do |message|
|
|
58
|
+
|
|
59
|
+
# The +2 stuff is because the main thread counts in the list, even though it's not a "worker" thread.
|
|
60
|
+
# What makes it worse is that, depending on the broker connector, watch_queue may also start a thread.
|
|
61
|
+
# With this implementation, that extra thread (e.g. with the stomp connector) would count in this.
|
|
62
|
+
# Bottom line is allow a little wiggle room with the :max_workers. Don't tighten down the threads too much
|
|
63
|
+
# for now.
|
|
64
|
+
while (Thread.list.length >= max_workers + 2) do
|
|
65
|
+
sleep 0.25
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
Thread.new do
|
|
69
|
+
process_message_wrapper message
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Just sleep in the main thread. Nothing going on here anymore.
|
|
75
|
+
loop do
|
|
76
|
+
sleep 6000
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
private
|
|
82
|
+
|
|
83
|
+
def process_message_wrapper(message)
|
|
84
|
+
|
|
85
|
+
begin
|
|
86
|
+
puts "Beginning processing of message in new thread:"
|
|
87
|
+
puts message
|
|
88
|
+
|
|
89
|
+
process_message message
|
|
90
|
+
rescue
|
|
91
|
+
handle_exception_base message, $!
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def handle_exception_base(message, exception)
|
|
97
|
+
puts "Caught exception. Exception Text: #{exception}"
|
|
98
|
+
puts "Backtrace:"
|
|
99
|
+
exception.backtrace.map { | frame | puts "- #{frame}"}
|
|
100
|
+
|
|
101
|
+
msg = EventBus::Message.new("CORE")
|
|
102
|
+
msg.load(message)
|
|
103
|
+
msg.set_error exception
|
|
104
|
+
|
|
105
|
+
self.handle_exception(msg, exception)
|
|
106
|
+
|
|
107
|
+
msg.send
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def puts(message)
|
|
111
|
+
@logger.info message
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
end # module EventBus
|
metadata
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: eventbus
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.20
|
|
5
|
+
prerelease:
|
|
6
|
+
platform: ruby
|
|
7
|
+
authors:
|
|
8
|
+
- Devin Cognito
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2012-05-27 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: bunny
|
|
16
|
+
requirement: &6119720 !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '0'
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: *6119720
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: uuid
|
|
27
|
+
requirement: &6119160 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: *6119160
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: rails
|
|
38
|
+
requirement: &6118600 !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
40
|
+
requirements:
|
|
41
|
+
- - ! '>='
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '0'
|
|
44
|
+
type: :runtime
|
|
45
|
+
prerelease: false
|
|
46
|
+
version_requirements: *6118600
|
|
47
|
+
description: Distributed application framework for developing event-driven automations.
|
|
48
|
+
email: dev.incognito@gmail.com
|
|
49
|
+
executables:
|
|
50
|
+
- eventbus_dispatcher.rb
|
|
51
|
+
- eventbus_emailer.rb
|
|
52
|
+
extensions: []
|
|
53
|
+
extra_rdoc_files: []
|
|
54
|
+
files:
|
|
55
|
+
- bin/eventbus_dispatcher.rb
|
|
56
|
+
- bin/eventbus_emailer.rb
|
|
57
|
+
- lib/eventbus/message.rb
|
|
58
|
+
- lib/eventbus/service.rb
|
|
59
|
+
- lib/eventbus/queue.rb
|
|
60
|
+
- lib/eventbus/connectors/stomp.rb
|
|
61
|
+
- lib/eventbus/connectors/bunny.rb
|
|
62
|
+
- lib/eventbus/connectors/amqp.rb
|
|
63
|
+
- admin/app/models/message.rb
|
|
64
|
+
- admin/app/models/application.rb
|
|
65
|
+
- admin/app/models/message_route.rb
|
|
66
|
+
- admin/app/models/message_type.rb
|
|
67
|
+
- admin/app/views/messages/index.html.haml
|
|
68
|
+
- admin/app/views/messages/show.html.haml
|
|
69
|
+
- admin/app/views/layouts/application.html.haml
|
|
70
|
+
- admin/app/views/message_types/index.html.haml
|
|
71
|
+
- admin/app/views/message_types/edit.html.haml
|
|
72
|
+
- admin/app/views/message_types/show.html.haml
|
|
73
|
+
- admin/app/views/message_types/new.html.haml
|
|
74
|
+
- admin/app/views/message_types/_form.html.haml
|
|
75
|
+
- admin/app/views/message_routes/index.html.haml
|
|
76
|
+
- admin/app/views/message_routes/edit.html.haml
|
|
77
|
+
- admin/app/views/message_routes/show.html.haml
|
|
78
|
+
- admin/app/views/message_routes/new.html.haml
|
|
79
|
+
- admin/app/views/message_routes/_form.html.haml
|
|
80
|
+
- admin/app/views/applications/index.html.haml
|
|
81
|
+
- admin/app/views/applications/edit.html.haml
|
|
82
|
+
- admin/app/views/applications/show.html.haml
|
|
83
|
+
- admin/app/views/applications/new.html.haml
|
|
84
|
+
- admin/app/views/applications/_form.html.haml
|
|
85
|
+
- admin/app/assets/stylesheets/global.css.scss
|
|
86
|
+
- admin/app/assets/stylesheets/application.css
|
|
87
|
+
- admin/app/assets/stylesheets/applications.css.scss
|
|
88
|
+
- admin/app/assets/stylesheets/messages.css.scss
|
|
89
|
+
- admin/app/assets/stylesheets/message_types.css.scss
|
|
90
|
+
- admin/app/assets/stylesheets/message_routes.css.scss
|
|
91
|
+
- admin/app/assets/stylesheets/scaffolds.css.scss
|
|
92
|
+
- admin/app/assets/images/rails.png
|
|
93
|
+
- admin/app/assets/javascripts/message_routes.js.coffee
|
|
94
|
+
- admin/app/assets/javascripts/applications.js.coffee
|
|
95
|
+
- admin/app/assets/javascripts/message_types.js.coffee
|
|
96
|
+
- admin/app/assets/javascripts/messages.js.coffee
|
|
97
|
+
- admin/app/assets/javascripts/application.js
|
|
98
|
+
- admin/app/controllers/message_types_controller.rb
|
|
99
|
+
- admin/app/controllers/applications_controller.rb
|
|
100
|
+
- admin/app/controllers/message_routes_controller.rb
|
|
101
|
+
- admin/app/controllers/application_controller.rb
|
|
102
|
+
- admin/app/controllers/messages_controller.rb
|
|
103
|
+
- admin/app/helpers/messages_helper.rb
|
|
104
|
+
- admin/app/helpers/applications_helper.rb
|
|
105
|
+
- admin/app/helpers/message_types_helper.rb
|
|
106
|
+
- admin/app/helpers/message_routes_helper.rb
|
|
107
|
+
- admin/app/helpers/application_helper.rb
|
|
108
|
+
- admin/doc/README_FOR_APP
|
|
109
|
+
- admin/config/routes.rb
|
|
110
|
+
- admin/config/application.rb
|
|
111
|
+
- admin/config/initializers/secret_token.rb
|
|
112
|
+
- admin/config/initializers/wrap_parameters.rb
|
|
113
|
+
- admin/config/initializers/backtrace_silencers.rb
|
|
114
|
+
- admin/config/initializers/mime_types.rb
|
|
115
|
+
- admin/config/initializers/inflections.rb
|
|
116
|
+
- admin/config/initializers/session_store.rb
|
|
117
|
+
- admin/config/boot.rb
|
|
118
|
+
- admin/config/environments/production.rb
|
|
119
|
+
- admin/config/environments/test.rb
|
|
120
|
+
- admin/config/environments/development.rb
|
|
121
|
+
- admin/config/locales/en.yml
|
|
122
|
+
- admin/config/environment.rb
|
|
123
|
+
- admin/config/database.yml
|
|
124
|
+
- admin/Gemfile
|
|
125
|
+
- admin/Gemfile.lock
|
|
126
|
+
- admin/public/robots.txt
|
|
127
|
+
- admin/public/500.html
|
|
128
|
+
- admin/public/favicon.ico
|
|
129
|
+
- admin/public/404.html
|
|
130
|
+
- admin/public/422.html
|
|
131
|
+
- admin/db/seeds.rb
|
|
132
|
+
- admin/db/schema.rb
|
|
133
|
+
- admin/db/development.sqlite3-journal
|
|
134
|
+
- admin/db/migrate/20120411001823_rename_message_type_to_message_type_name_in_messages.rb
|
|
135
|
+
- admin/db/migrate/20120523112257_add_match_all_errors_to_routes.rb
|
|
136
|
+
- admin/db/migrate/20120218124300_create_messages.rb
|
|
137
|
+
- admin/db/migrate/20120219021806_create_message_types.rb
|
|
138
|
+
- admin/db/migrate/20120411001040_add_app_id_key_msg_type_id_to_messages.rb
|
|
139
|
+
- admin/db/migrate/20120219021940_create_message_routes.rb
|
|
140
|
+
- admin/db/migrate/20120413024953_add_message_guid_to_messages.rb
|
|
141
|
+
- admin/db/migrate/20120219021535_create_applications.rb
|
|
142
|
+
- admin/script/rails
|
|
143
|
+
- admin/script/railsrunner
|
|
144
|
+
- admin/test/test_helper.rb
|
|
145
|
+
- admin/test/fixtures/message_types.yml
|
|
146
|
+
- admin/test/fixtures/message_routes.yml
|
|
147
|
+
- admin/test/fixtures/applications.yml
|
|
148
|
+
- admin/test/fixtures/messages.yml
|
|
149
|
+
- admin/test/performance/browsing_test.rb
|
|
150
|
+
- admin/test/unit/message_route_test.rb
|
|
151
|
+
- admin/test/unit/message_type_test.rb
|
|
152
|
+
- admin/test/unit/application_test.rb
|
|
153
|
+
- admin/test/unit/helpers/message_types_helper_test.rb
|
|
154
|
+
- admin/test/unit/helpers/applications_helper_test.rb
|
|
155
|
+
- admin/test/unit/helpers/message_routes_helper_test.rb
|
|
156
|
+
- admin/test/unit/helpers/messages_helper_test.rb
|
|
157
|
+
- admin/test/unit/message_test.rb
|
|
158
|
+
- admin/test/functional/message_routes_controller_test.rb
|
|
159
|
+
- admin/test/functional/applications_controller_test.rb
|
|
160
|
+
- admin/test/functional/messages_controller_test.rb
|
|
161
|
+
- admin/test/functional/message_types_controller_test.rb
|
|
162
|
+
- admin/config.ru
|
|
163
|
+
- admin/Rakefile
|
|
164
|
+
homepage: https://github.com/devincognito/EventBus
|
|
165
|
+
licenses: []
|
|
166
|
+
post_install_message:
|
|
167
|
+
rdoc_options: []
|
|
168
|
+
require_paths:
|
|
169
|
+
- lib
|
|
170
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
171
|
+
none: false
|
|
172
|
+
requirements:
|
|
173
|
+
- - ! '>='
|
|
174
|
+
- !ruby/object:Gem::Version
|
|
175
|
+
version: '0'
|
|
176
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
|
+
none: false
|
|
178
|
+
requirements:
|
|
179
|
+
- - ! '>='
|
|
180
|
+
- !ruby/object:Gem::Version
|
|
181
|
+
version: '0'
|
|
182
|
+
requirements: []
|
|
183
|
+
rubyforge_project:
|
|
184
|
+
rubygems_version: 1.8.11
|
|
185
|
+
signing_key:
|
|
186
|
+
specification_version: 3
|
|
187
|
+
summary: Libraries for creating EventBus services
|
|
188
|
+
test_files: []
|