eventbus 0.0.20
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|