untied 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/.gitignore +20 -0
  2. data/.rvmrc +48 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +7 -0
  6. data/README.md +124 -0
  7. data/Rakefile +3 -0
  8. data/bin/untied_worker +16 -0
  9. data/examples/goliath/.rvmrc +48 -0
  10. data/examples/goliath/Gemfile +9 -0
  11. data/examples/goliath/README.mkd +81 -0
  12. data/examples/goliath/Rakefile +14 -0
  13. data/examples/goliath/config/srv.rb +21 -0
  14. data/examples/goliath/models/user.rb +5 -0
  15. data/examples/goliath/observer.rb +10 -0
  16. data/examples/goliath/srv.rb +46 -0
  17. data/examples/rails-consumer/.rvmrc +48 -0
  18. data/examples/rails-consumer/Gemfile +38 -0
  19. data/examples/rails-consumer/README.mkd +37 -0
  20. data/examples/rails-consumer/Rakefile +7 -0
  21. data/examples/rails-consumer/app/assets/images/rails.png +0 -0
  22. data/examples/rails-consumer/app/assets/javascripts/application.js +15 -0
  23. data/examples/rails-consumer/app/assets/javascripts/users.js.coffee +3 -0
  24. data/examples/rails-consumer/app/assets/stylesheets/application.css +13 -0
  25. data/examples/rails-consumer/app/assets/stylesheets/scaffolds.css.scss +69 -0
  26. data/examples/rails-consumer/app/assets/stylesheets/users.css.scss +3 -0
  27. data/examples/rails-consumer/app/controllers/application_controller.rb +3 -0
  28. data/examples/rails-consumer/app/controllers/users_controller.rb +83 -0
  29. data/examples/rails-consumer/app/helpers/application_helper.rb +2 -0
  30. data/examples/rails-consumer/app/helpers/users_helper.rb +2 -0
  31. data/examples/rails-consumer/app/mailers/.gitkeep +0 -0
  32. data/examples/rails-consumer/app/models/.gitkeep +0 -0
  33. data/examples/rails-consumer/app/models/untied_user_observer.rb +8 -0
  34. data/examples/rails-consumer/app/models/user.rb +3 -0
  35. data/examples/rails-consumer/app/views/layouts/application.html.erb +14 -0
  36. data/examples/rails-consumer/app/views/users/_form.html.erb +21 -0
  37. data/examples/rails-consumer/app/views/users/edit.html.erb +6 -0
  38. data/examples/rails-consumer/app/views/users/index.html.erb +23 -0
  39. data/examples/rails-consumer/app/views/users/new.html.erb +5 -0
  40. data/examples/rails-consumer/app/views/users/show.html.erb +10 -0
  41. data/examples/rails-consumer/config/application.rb +62 -0
  42. data/examples/rails-consumer/config/boot.rb +6 -0
  43. data/examples/rails-consumer/config/database.yml +25 -0
  44. data/examples/rails-consumer/config/environment.rb +5 -0
  45. data/examples/rails-consumer/config/environments/development.rb +37 -0
  46. data/examples/rails-consumer/config/environments/production.rb +67 -0
  47. data/examples/rails-consumer/config/environments/test.rb +37 -0
  48. data/examples/rails-consumer/config/initializers/backtrace_silencers.rb +7 -0
  49. data/examples/rails-consumer/config/initializers/inflections.rb +15 -0
  50. data/examples/rails-consumer/config/initializers/mime_types.rb +5 -0
  51. data/examples/rails-consumer/config/initializers/secret_token.rb +7 -0
  52. data/examples/rails-consumer/config/initializers/session_store.rb +8 -0
  53. data/examples/rails-consumer/config/initializers/untied.rb +4 -0
  54. data/examples/rails-consumer/config/initializers/wrap_parameters.rb +14 -0
  55. data/examples/rails-consumer/config/locales/en.yml +5 -0
  56. data/examples/rails-consumer/config/routes.rb +60 -0
  57. data/examples/rails-consumer/config.ru +4 -0
  58. data/examples/rails-consumer/db/development.sqlite3 +0 -0
  59. data/examples/rails-consumer/db/migrate/20121019155057_create_users.rb +9 -0
  60. data/examples/rails-consumer/db/schema.rb +22 -0
  61. data/examples/rails-consumer/db/seeds.rb +7 -0
  62. data/examples/rails-consumer/lib/assets/.gitkeep +0 -0
  63. data/examples/rails-consumer/lib/tasks/.gitkeep +0 -0
  64. data/examples/rails-consumer/log/.gitkeep +0 -0
  65. data/examples/rails-consumer/log/development.log +135 -0
  66. data/examples/rails-consumer/public/404.html +26 -0
  67. data/examples/rails-consumer/public/422.html +26 -0
  68. data/examples/rails-consumer/public/500.html +25 -0
  69. data/examples/rails-consumer/public/favicon.ico +0 -0
  70. data/examples/rails-consumer/public/index.html +241 -0
  71. data/examples/rails-consumer/public/robots.txt +5 -0
  72. data/examples/rails-consumer/script/rails +6 -0
  73. data/examples/rails-consumer/test/fixtures/.gitkeep +0 -0
  74. data/examples/rails-consumer/test/fixtures/users.yml +7 -0
  75. data/examples/rails-consumer/test/functional/.gitkeep +0 -0
  76. data/examples/rails-consumer/test/functional/users_controller_test.rb +49 -0
  77. data/examples/rails-consumer/test/integration/.gitkeep +0 -0
  78. data/examples/rails-consumer/test/performance/browsing_test.rb +12 -0
  79. data/examples/rails-consumer/test/test_helper.rb +13 -0
  80. data/examples/rails-consumer/test/unit/.gitkeep +0 -0
  81. data/examples/rails-consumer/test/unit/helpers/users_helper_test.rb +4 -0
  82. data/examples/rails-consumer/test/unit/user_test.rb +7 -0
  83. data/examples/rails-consumer/vendor/assets/javascripts/.gitkeep +0 -0
  84. data/examples/rails-consumer/vendor/assets/stylesheets/.gitkeep +0 -0
  85. data/examples/rails-consumer/vendor/plugins/.gitkeep +0 -0
  86. data/examples/social_network.rb +1 -0
  87. data/lib/untied/version.rb +4 -0
  88. data/lib/untied.rb +20 -0
  89. data/spec/spec_helper.rb +28 -0
  90. data/spec/support/setup_ar_and_schema.rb +24 -0
  91. data/untied.gemspec +25 -0
  92. metadata +212 -0
data/lib/untied.rb ADDED
@@ -0,0 +1,20 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'untied/version'
3
+
4
+ require 'rubygems'
5
+ require 'bundler/setup'
6
+ require 'amqp/utilities/event_loop_helper'
7
+
8
+ module Untied
9
+ def self.start
10
+ Thread.abort_on_exception = false
11
+
12
+ AMQP::Utilities::EventLoopHelper.run do
13
+ AMQP.start
14
+ end
15
+
16
+ EventMachine.next_tick do
17
+ AMQP.channel ||= AMQP::Channel.new(AMQP.connection)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,28 @@
1
+ # -*- encoding : utf-8 -*-
2
+ # This file was generated by the `rspec --init` command. Conventionally, all
3
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
4
+ # Require this file using `require "spec_helper"` to ensure that it is only
5
+ # loaded once.
6
+ #
7
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
8
+
9
+ require 'untied'
10
+ require 'ruby-debug'
11
+ require 'support/setup_ar_and_schema'
12
+
13
+ Untied::Publisher.configure do |config|
14
+ config.service_name = "core"
15
+ config.deliver_messages = false
16
+ end
17
+
18
+ RSpec.configure do |config|
19
+ config.treat_symbols_as_metadata_keys_with_true_values = true
20
+ config.run_all_when_everything_filtered = true
21
+ config.filter_run :focus
22
+
23
+ # Run specs in random order to surface order dependencies. If you find an
24
+ # order dependency and want to debug it, you can fix the order by providing
25
+ # the seed, which is printed after each run.
26
+ # --seed 1234
27
+ config.order = 'random'
28
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'active_record'
3
+
4
+ module SetupActiveRecord
5
+ # Connection
6
+ ar_config = { :test => { :adapter => 'sqlite3', :database => ":memory:" } }
7
+ ActiveRecord::Base.configurations = ar_config
8
+ ActiveRecord::Base.
9
+ establish_connection(ActiveRecord::Base.configurations[:test])
10
+
11
+ # Schema
12
+ ActiveRecord::Schema.define do
13
+ create_table :posts, :force => true do |t|
14
+ t.string :title
15
+ end
16
+ create_table :users, :force => true do |t|
17
+ t.string :name
18
+ end
19
+ end
20
+
21
+ # Models
22
+ class ::User < ActiveRecord::Base; end
23
+ class ::Post < ActiveRecord::Base; end
24
+ end
data/untied.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'untied/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "untied"
8
+ gem.version = Untied::VERSION
9
+ gem.authors = ["Guilherme Cavalcanti"]
10
+ gem.email = ["guiocavalcanti@gmail.com"]
11
+ gem.description = "Cross application ActiveRecord::Observer"
12
+ gem.summary = "Need to register an Observer which observes ActiveRecord models in different applications? Untied Observer for the rescue."
13
+ gem.homepage = "http://github.com/redu/untied"
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(spec)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_development_dependency "rake"
21
+ gem.add_runtime_dependency "amqp"
22
+
23
+ gem.add_runtime_dependency "untied-consumer"
24
+ gem.add_runtime_dependency "untied-publisher"
25
+ end
metadata ADDED
@@ -0,0 +1,212 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: untied
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Guilherme Cavalcanti
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-10-22 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ none: false
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ hash: 3
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ prerelease: false
31
+ type: :development
32
+ name: rake
33
+ requirement: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ version_requirements: &id002 !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ hash: 3
41
+ segments:
42
+ - 0
43
+ version: "0"
44
+ prerelease: false
45
+ type: :runtime
46
+ name: amqp
47
+ requirement: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ version_requirements: &id003 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ hash: 3
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ prerelease: false
59
+ type: :runtime
60
+ name: untied-consumer
61
+ requirement: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ version_requirements: &id004 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ hash: 3
69
+ segments:
70
+ - 0
71
+ version: "0"
72
+ prerelease: false
73
+ type: :runtime
74
+ name: untied-publisher
75
+ requirement: *id004
76
+ description: Cross application ActiveRecord::Observer
77
+ email:
78
+ - guiocavalcanti@gmail.com
79
+ executables:
80
+ - untied_worker
81
+ extensions: []
82
+
83
+ extra_rdoc_files: []
84
+
85
+ files:
86
+ - .gitignore
87
+ - .rvmrc
88
+ - .travis.yml
89
+ - Gemfile
90
+ - LICENSE.txt
91
+ - README.md
92
+ - Rakefile
93
+ - bin/untied_worker
94
+ - examples/goliath/.rvmrc
95
+ - examples/goliath/Gemfile
96
+ - examples/goliath/README.mkd
97
+ - examples/goliath/Rakefile
98
+ - examples/goliath/config/srv.rb
99
+ - examples/goliath/models/user.rb
100
+ - examples/goliath/observer.rb
101
+ - examples/goliath/srv.rb
102
+ - examples/rails-consumer/.rvmrc
103
+ - examples/rails-consumer/Gemfile
104
+ - examples/rails-consumer/README.mkd
105
+ - examples/rails-consumer/Rakefile
106
+ - examples/rails-consumer/app/assets/images/rails.png
107
+ - examples/rails-consumer/app/assets/javascripts/application.js
108
+ - examples/rails-consumer/app/assets/javascripts/users.js.coffee
109
+ - examples/rails-consumer/app/assets/stylesheets/application.css
110
+ - examples/rails-consumer/app/assets/stylesheets/scaffolds.css.scss
111
+ - examples/rails-consumer/app/assets/stylesheets/users.css.scss
112
+ - examples/rails-consumer/app/controllers/application_controller.rb
113
+ - examples/rails-consumer/app/controllers/users_controller.rb
114
+ - examples/rails-consumer/app/helpers/application_helper.rb
115
+ - examples/rails-consumer/app/helpers/users_helper.rb
116
+ - examples/rails-consumer/app/mailers/.gitkeep
117
+ - examples/rails-consumer/app/models/.gitkeep
118
+ - examples/rails-consumer/app/models/untied_user_observer.rb
119
+ - examples/rails-consumer/app/models/user.rb
120
+ - examples/rails-consumer/app/views/layouts/application.html.erb
121
+ - examples/rails-consumer/app/views/users/_form.html.erb
122
+ - examples/rails-consumer/app/views/users/edit.html.erb
123
+ - examples/rails-consumer/app/views/users/index.html.erb
124
+ - examples/rails-consumer/app/views/users/new.html.erb
125
+ - examples/rails-consumer/app/views/users/show.html.erb
126
+ - examples/rails-consumer/config.ru
127
+ - examples/rails-consumer/config/application.rb
128
+ - examples/rails-consumer/config/boot.rb
129
+ - examples/rails-consumer/config/database.yml
130
+ - examples/rails-consumer/config/environment.rb
131
+ - examples/rails-consumer/config/environments/development.rb
132
+ - examples/rails-consumer/config/environments/production.rb
133
+ - examples/rails-consumer/config/environments/test.rb
134
+ - examples/rails-consumer/config/initializers/backtrace_silencers.rb
135
+ - examples/rails-consumer/config/initializers/inflections.rb
136
+ - examples/rails-consumer/config/initializers/mime_types.rb
137
+ - examples/rails-consumer/config/initializers/secret_token.rb
138
+ - examples/rails-consumer/config/initializers/session_store.rb
139
+ - examples/rails-consumer/config/initializers/untied.rb
140
+ - examples/rails-consumer/config/initializers/wrap_parameters.rb
141
+ - examples/rails-consumer/config/locales/en.yml
142
+ - examples/rails-consumer/config/routes.rb
143
+ - examples/rails-consumer/db/development.sqlite3
144
+ - examples/rails-consumer/db/migrate/20121019155057_create_users.rb
145
+ - examples/rails-consumer/db/schema.rb
146
+ - examples/rails-consumer/db/seeds.rb
147
+ - examples/rails-consumer/lib/assets/.gitkeep
148
+ - examples/rails-consumer/lib/tasks/.gitkeep
149
+ - examples/rails-consumer/log/.gitkeep
150
+ - examples/rails-consumer/log/development.log
151
+ - examples/rails-consumer/public/404.html
152
+ - examples/rails-consumer/public/422.html
153
+ - examples/rails-consumer/public/500.html
154
+ - examples/rails-consumer/public/favicon.ico
155
+ - examples/rails-consumer/public/index.html
156
+ - examples/rails-consumer/public/robots.txt
157
+ - examples/rails-consumer/script/rails
158
+ - examples/rails-consumer/test/fixtures/.gitkeep
159
+ - examples/rails-consumer/test/fixtures/users.yml
160
+ - examples/rails-consumer/test/functional/.gitkeep
161
+ - examples/rails-consumer/test/functional/users_controller_test.rb
162
+ - examples/rails-consumer/test/integration/.gitkeep
163
+ - examples/rails-consumer/test/performance/browsing_test.rb
164
+ - examples/rails-consumer/test/test_helper.rb
165
+ - examples/rails-consumer/test/unit/.gitkeep
166
+ - examples/rails-consumer/test/unit/helpers/users_helper_test.rb
167
+ - examples/rails-consumer/test/unit/user_test.rb
168
+ - examples/rails-consumer/vendor/assets/javascripts/.gitkeep
169
+ - examples/rails-consumer/vendor/assets/stylesheets/.gitkeep
170
+ - examples/rails-consumer/vendor/plugins/.gitkeep
171
+ - examples/social_network.rb
172
+ - lib/untied.rb
173
+ - lib/untied/version.rb
174
+ - spec/spec_helper.rb
175
+ - spec/support/setup_ar_and_schema.rb
176
+ - untied.gemspec
177
+ homepage: http://github.com/redu/untied
178
+ licenses: []
179
+
180
+ post_install_message:
181
+ rdoc_options: []
182
+
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ hash: 3
191
+ segments:
192
+ - 0
193
+ version: "0"
194
+ required_rubygems_version: !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ hash: 3
200
+ segments:
201
+ - 0
202
+ version: "0"
203
+ requirements: []
204
+
205
+ rubyforge_project:
206
+ rubygems_version: 1.8.24
207
+ signing_key:
208
+ specification_version: 3
209
+ summary: Need to register an Observer which observes ActiveRecord models in different applications? Untied Observer for the rescue.
210
+ test_files:
211
+ - spec/spec_helper.rb
212
+ - spec/support/setup_ar_and_schema.rb