magellan-rails 0.0.2 → 0.0.3

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: 8d0de6e82993e776a9176ee74883355927e74455
4
- data.tar.gz: dbc15a0c348de7e03f7bd235308fcac8be766b84
3
+ metadata.gz: f7994198ac677aac97cb9cd7607af3e1555f6835
4
+ data.tar.gz: 5aba22c79480da7e3e9725914069a0f4e05c9256
5
5
  SHA512:
6
- metadata.gz: f31a049e23ecaa65e0824685ef3d1b8183083bfcde6e9880351524d0a7ada1002db0ee10b1273124cd15f073c2d104f12e0a22f59cbd0e9a33d21e5868023557
7
- data.tar.gz: 520c958dfec234f2371614f504cdfd56f3d09d9c959f093ea15189c6774b032019cad3054ec122a63dabd79632c20951c3d449cdc5096034124854c669ffac61
6
+ metadata.gz: 0e16ac47ff948dbfbc28cb27d74d64e158aa89ecc7582638c180a7f1c21eab794e0dfd72d789e07a05e127e04349e71307192390399cab5e31b755ccee9191f0
7
+ data.tar.gz: e5d9df628af9e34942993fe8c344b42f0be2409cf3e57423477f42a544078e5fe2eb06ff8e09ad619656060737f6c04f47e4a01cf969509a4b5b7d64eec83612
data/.gitignore CHANGED
@@ -22,6 +22,7 @@ build/
22
22
  /rdoc/
23
23
 
24
24
  ## Environment normalisation:
25
+ /Gemfile.lock
25
26
  /.bundle/
26
27
  /lib/bundler/man/
27
28
  vendor/bundle
@@ -22,6 +22,7 @@ build/
22
22
  /rdoc/
23
23
 
24
24
  ## Environment normalisation:
25
+ Gemfile.lock
25
26
  /.bundle/
26
27
  /lib/bundler/man/
27
28
  vendor/bundle
@@ -1,5 +1,5 @@
1
1
  module Magellan
2
2
  class Publisher
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -2,15 +2,15 @@
2
2
 
3
3
  module Magellan
4
4
  class Publisher
5
- def initialize(host: "127.0.0.1", port: 5672, vhost: nil, user: nil, pass: nil, timeout: 0.3)
5
+ def initialize(host: nil, port: nil, vhost: nil, user: nil, pass: nil, timeout: nil)
6
6
  # RabbitMQへの接続設定を作成
7
7
  connection_settings = {
8
- host: host,
9
- port: port,
10
- vhost: vhost,
11
- user: user,
12
- pass: pass,
13
- timeout: timeout,
8
+ host: load_env_as_default(host, ['MAGELLAN_PUBLISH_AMQP_ADDR'], :string),
9
+ port: load_env_as_default(port, ['MAGELLAN_PUBLISH_AMQP_PORT'], :integer),
10
+ vhost: load_env_as_default(vhost, ['MAGELLAN_PUBLISH_AMQP_VHOST'], :string),
11
+ user: load_env_as_default(user, ['MAGELLAN_PUBLISH_AMQP_USER'], :string),
12
+ pass: load_env_as_default(pass, ['MAGELLAN_PUBLISH_AMQP_PASS'], :string),
13
+ timeout: load_env_as_default(timeout, ['MAGELLAN_PUBLISH_AMQP_TIMEOUT'], :float) || 0.3,
14
14
  }
15
15
 
16
16
  @conn = Bunny.new(connection_settings)
@@ -33,5 +33,42 @@ module Magellan
33
33
  def publish(topic, body)
34
34
  @exchange.publish(body, routing_key: convert_topic(topic))
35
35
  end
36
+
37
+ class << self
38
+ def publisher
39
+ @publisher ||= Magellan::Publisher.new
40
+ end
41
+
42
+ def publish(topic, body)
43
+ publisher.publish(topic, body)
44
+ end
45
+ end
46
+
47
+ private
48
+
49
+ def load_env_as_default(val, envkeys, type)
50
+ if is_blank?(val)
51
+ envkeys = Array(envkeys)
52
+ envkeys.each do |key|
53
+ val = ENV[key.to_s]
54
+ break if val and not(val.empty?)
55
+ end
56
+ end
57
+
58
+ if val
59
+ case type.to_sym
60
+ when :string then val.to_s
61
+ when :integer then Integer(val)
62
+ when :float then Float(val)
63
+ else val
64
+ end
65
+ else
66
+ nil
67
+ end
68
+ end
69
+
70
+ def is_blank?(val)
71
+ val.respond_to?(:empty?) ? !!val.empty? : !val
72
+ end
36
73
  end
37
74
  end
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency "json"
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.6"
25
+ spec.add_development_dependency "rake"
25
26
  spec.add_development_dependency "rspec"
26
- spec.add_development_dependency "bunny_mock"
27
27
  end
@@ -9,31 +9,56 @@ describe Magellan::Publisher do
9
9
 
10
10
  describe "#publish" do
11
11
 
12
- before do
13
- @topic = "topic/aaa"
14
- @rabbitmq_topic = "topic.aaa"
15
- @payload = "Hello World"
16
- @bunny = BunnyMock.new
17
- channel = @bunny.create_channel
18
- @exchange = @bunny.exchange('test_exchange', type: :direct, durable: false, auto_delete: false)
19
- expect(@exchange).to receive(:publish).with(@payload, routing_key: @rabbitmq_topic)
20
-
21
- allow(Bunny ).to receive(:new).and_return(@bunny)
22
- allow(@bunny ).to receive(:create_channel).and_return(channel)
23
- allow(channel).to receive(:exchange).with('test_exchange', no_declare: true).and_return(@exchange)
24
-
25
- ENV["MAGELLAN_PUBLISH_EXCHANGE"] = "test_exchange"
26
- @publisher = Magellan::Publisher.new(host: "127.0.0.1",
27
- port: 5672,
28
- vhost: "customer1.sample_project",
29
- user: "customer1.sample_project",
30
- pass: "pasw1")
31
- end
32
-
33
- it do
34
- @publisher.publish(@topic, @payload)
35
- end
12
+ before do
13
+ @topic = "topic/aaa"
14
+ @rabbitmq_topic = "topic.aaa"
15
+ @payload = "Hello World"
16
+ @bunny = BunnyMock.new
17
+ channel = @bunny.create_channel
18
+ @exchange = @bunny.exchange('test_exchange', type: :direct, durable: false, auto_delete: false)
19
+ expect(@exchange).to receive(:publish).with(@payload, routing_key: @rabbitmq_topic)
36
20
 
21
+ allow(Bunny ).to receive(:new).and_return(@bunny)
22
+ allow(@bunny ).to receive(:create_channel).and_return(channel)
23
+ allow(channel).to receive(:exchange).with('test_exchange', no_declare: true).and_return(@exchange)
37
24
 
25
+ ENV["MAGELLAN_PUBLISH_EXCHANGE"] = "test_exchange"
26
+ @publisher = Magellan::Publisher.new(host: "127.0.0.1",
27
+ port: 5672,
28
+ vhost: "/customer1.sample_project",
29
+ user: "customer1.sample_project",
30
+ pass: "pasw1")
31
+ end
32
+
33
+ it do
34
+ @publisher.publish(@topic, @payload)
35
+ end
36
+ end
37
+
38
+ describe ".publish" do
39
+ before do
40
+ @topic = "topic/aaa"
41
+ @rabbitmq_topic = "topic.aaa"
42
+ @payload = "Hello World"
43
+ @bunny = BunnyMock.new
44
+ channel = @bunny.create_channel
45
+ @exchange = @bunny.exchange('test_exchange', type: :direct, durable: false, auto_delete: false)
46
+ expect(@exchange).to receive(:publish).with(@payload, routing_key: @rabbitmq_topic)
47
+
48
+ allow(Bunny ).to receive(:new).and_return(@bunny)
49
+ allow(@bunny ).to receive(:create_channel).and_return(channel)
50
+ allow(channel).to receive(:exchange).with('test_exchange', no_declare: true).and_return(@exchange)
51
+
52
+ ENV["MAGELLAN_PUBLISH_EXCHANGE"] = "test_exchange"
53
+ ENV["MAGELLAN_PUBLISH_AMQP_ADDR"] = "127.0.0.1"
54
+ ENV["MAGELLAN_PUBLISH_AMQP_PORT"] = "5672"
55
+ ENV["MAGELLAN_PUBLISH_AMQP_VHOST"] = "/customer1.sample_project"
56
+ ENV["MAGELLAN_PUBLISH_AMQP_USER"] = "customer1.sample_project"
57
+ ENV["MAGELLAN_PUBLISH_AMQP_PASS"] = "pasw1"
58
+ end
59
+
60
+ it do
61
+ Magellan::Publisher.publish(@topic, @payload)
62
+ end
38
63
  end
39
64
  end
@@ -1,5 +1,5 @@
1
1
  module Magellan
2
2
  module Rails
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -71,7 +71,7 @@ class Magellan::Subscriber::Mapper
71
71
  @map = config.each_with_object({}) do |(key, value), tbl|
72
72
  regexp = topic_regexp(key)
73
73
  controller, action = value.split("#", 2)
74
- controller_name = (controller.classify + "Subscriber")
74
+ controller_name = (controller.camelize + "Subscriber")
75
75
  tbl[regexp] = [controller_name, action]
76
76
  end
77
77
  end
@@ -96,7 +96,7 @@ class Magellan::Subscriber::Mapper
96
96
  actions.each do |controller_name, action|
97
97
  controller_class = ActiveSupport::Dependencies.constantize(controller_name)
98
98
  controller = controller_class.new(request)
99
- return controller.process_action(action)
99
+ controller.process_action(action)
100
100
  end
101
101
  if actions.empty?
102
102
  raise Magellan::Subscriber::RoutingError, "topic #{request.topic} has no matched subscriber"
@@ -16,17 +16,31 @@ module Magellan::Worker::Config
16
16
  end
17
17
  end
18
18
 
19
+ def env_compatible(new_env, old_env)
20
+ if ENV[new_env].present?
21
+ ENV[new_env]
22
+ else
23
+ ENV[old_env]
24
+ end
25
+ end
26
+
19
27
  def load_config()
20
28
  config = {}
21
- config[:host] = ENV['RABBITMQ_PORT_5672_TCP_ADDR']
22
- config[:port] = ENV['RABBITMQ_PORT_5672_TCP_PORT']
23
- config[:vhost] = ENV['VHOST']
24
- config[:rabbitmq_user] = ENV['RABBITMQ_USER']
25
- config[:rabbitmq_password] = ENV['RABBITMQ_PASS']
26
- config[:request_queue] = ENV['REQUEST_QUEUE']
27
- config[:response_exchange] = ENV['RESPONSE_EXCHANGE']
29
+ config[:host] = env_compatible('MAGELLAN_WORKER_AMQP_ADDR', 'RABBITMQ_PORT_5672_TCP_ADDR')
30
+ config[:port] = env_compatible('MAGELLAN_WORKER_AMQP_PORT', 'RABBITMQ_PORT_5672_TCP_PORT')
31
+ config[:vhost] = env_compatible('MAGELLAN_WORKER_AMQP_VHOST', 'VHOST')
32
+ config[:rabbitmq_user] = env_compatible('MAGELLAN_WORKER_AMQP_USER', 'RABBITMQ_USER')
33
+ config[:rabbitmq_password] = env_compatible('MAGELLAN_WORKER_AMQP_PASS', 'RABBITMQ_PASS')
34
+ config[:request_queue] = env_compatible('MAGELLAN_WORKER_REQUEST_QUEUE', 'REQUEST_QUEUE')
35
+ config[:response_exchange] = env_compatible('MAGELLAN_WORKER_RESPONSE_EXCHANGE', 'RESPONSE_EXCHANGE')
28
36
  config[:http_worker] = parse_boolean(ENV['MAGELLAN_HTTP_WORKER'], true)
29
37
  config[:subscriber_worker] = parse_boolean(ENV['MAGELLAN_SUBSCRIBER_WORKER'], true)
38
+ config[:publish_host] = ENV["MAGELLAN_PUBLISH_AMQP_ADDR"]
39
+ config[:publish_port] = ENV["MAGELLAN_PUBLISH_AMQP_PORT"]
40
+ config[:publish_vhost] = ENV["MAGELLAN_PUBLISH_AMQP_VHOST"]
41
+ config[:publish_user] = ENV["MAGELLAN_PUBLISH_AMQP_USER"]
42
+ config[:publish_password] = ENV["MAGELLAN_PUBLISH_AMQP_PASS"]
43
+ config[:publish_exchange] = ENV["MAGELLAN_PUBLISH_EXCHANGE"]
30
44
  config
31
45
  end
32
46
  end
@@ -46,7 +46,7 @@ class Magellan::Worker::Core
46
46
 
47
47
  def run
48
48
  Magellan.logger.info("====== Magellan Worker start ======")
49
- @queue.subscribe(block: true, ack: true) do |delivery_info, properties, payload|
49
+ @queue.subscribe(block: true, manual_ack: true) do |delivery_info, properties, payload|
50
50
  reply_to = properties.reply_to # ワーカー実行結果返却時のルーティングキー
51
51
  correlation_id = properties.correlation_id # ワーカー実行結果返却時にどのリクエストに対応するメッセージか判別するための識別子
52
52
  delivery_tag = delivery_info.delivery_tag # ackを返却時に使用
@@ -12,11 +12,6 @@ class Magellan::Worker::Executor
12
12
  # Rails 環境の初期化は Subscriber だけの時も実施する
13
13
  # Rails.root やら Rails.application.config がないと困ることが多いと思うので
14
14
  require File.expand_path('config/environment')
15
-
16
- # production 環境で subscriber として動作する時は eager loading しておく
17
- if Rails.env.production? and Magellan::Worker.worker.config[:subscriber_worker]
18
- subscriber_executor
19
- end
20
15
  end
21
16
 
22
17
  def rails_executor
data/lib/magellan.rb CHANGED
@@ -13,7 +13,11 @@ module Magellan
13
13
  environment = ENV['RAILS_ENV'] || 'development'
14
14
  log_dir = File.expand_path("log")
15
15
  FileUtils.makedirs(log_dir) unless File.exists?(log_dir)
16
- logger = ::Logger.new(File.expand_path("log/#{environment}.log"))
16
+ if environment == "production"
17
+ logger = ::Logger.new($stdout)
18
+ else
19
+ logger = ::Logger.new(File.expand_path("log/#{environment}.log"))
20
+ end
17
21
 
18
22
  log_level_env = ENV['MAGELLAN_RAILS_LOG_LEVEL']
19
23
  log_levels = ['debug', 'info', 'warn', 'error', 'fatal', 'unknown']
@@ -18,7 +18,7 @@ describe Magellan::Subscriber::Mapper do
18
18
  context "matches" do
19
19
  [ "a" ].each do |word|
20
20
  it "'#{word}'" do
21
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
21
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
22
22
  end
23
23
  end
24
24
  end
@@ -37,7 +37,7 @@ describe Magellan::Subscriber::Mapper do
37
37
  end
38
38
  context "matches" do
39
39
  it "'a/b'" do
40
- expect(@mapper.map_action("a/b")).to eql([["BookSubscriber", "index"]])
40
+ expect(@mapper.map_action("a/b")).to eql([["BooksSubscriber", "index"]])
41
41
  end
42
42
  end
43
43
  context "doesn't match" do
@@ -55,7 +55,7 @@ describe Magellan::Subscriber::Mapper do
55
55
  end
56
56
  context "matches" do
57
57
  it "'/a'" do
58
- expect(@mapper.map_action("/a")).to eql([["BookSubscriber", "index"]])
58
+ expect(@mapper.map_action("/a")).to eql([["BooksSubscriber", "index"]])
59
59
  end
60
60
  end
61
61
  context "doesn't match" do
@@ -73,7 +73,7 @@ describe Magellan::Subscriber::Mapper do
73
73
  end
74
74
  context "matches" do
75
75
  it "'a/'" do
76
- expect(@mapper.map_action("a/")).to eql([["BookSubscriber", "index"]])
76
+ expect(@mapper.map_action("a/")).to eql([["BooksSubscriber", "index"]])
77
77
  end
78
78
  end
79
79
  context "doesn't match" do
@@ -92,7 +92,7 @@ describe Magellan::Subscriber::Mapper do
92
92
  context "matches" do
93
93
  [ "a", "b" ].each do |word|
94
94
  it "'#{word}'" do
95
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
95
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
96
96
  end
97
97
  end
98
98
  end
@@ -112,7 +112,7 @@ describe Magellan::Subscriber::Mapper do
112
112
  context "matches" do
113
113
  [ "a/a", "b/a" ].each do |word|
114
114
  it "'#{word}'" do
115
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
115
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
116
116
  end
117
117
  end
118
118
  end
@@ -132,7 +132,7 @@ describe Magellan::Subscriber::Mapper do
132
132
  context "matches" do
133
133
  [ "a/a", "a/b" ].each do |word|
134
134
  it "'#{word}'" do
135
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
135
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
136
136
  end
137
137
  end
138
138
  end
@@ -152,7 +152,7 @@ describe Magellan::Subscriber::Mapper do
152
152
  context "matches" do
153
153
  [ "a/a/b", "a/c/b" ].each do |word|
154
154
  it "'#{word}'" do
155
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
155
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
156
156
  end
157
157
  end
158
158
  end
@@ -172,7 +172,7 @@ describe Magellan::Subscriber::Mapper do
172
172
  context "matches" do
173
173
  [ "a", "/a", "a/", "/", "a/b", "a/b/c", "/a/b/c/" ].each do |word|
174
174
  it "'#{word}'" do
175
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
175
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
176
176
  end
177
177
  end
178
178
  end
@@ -185,7 +185,7 @@ describe Magellan::Subscriber::Mapper do
185
185
  context "matches" do
186
186
  [ "a", "a/b", "a/b/c", "a/", "a/b/" ].each do |word|
187
187
  it "'#{word}'" do
188
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
188
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
189
189
  end
190
190
  end
191
191
  end
@@ -205,7 +205,7 @@ describe Magellan::Subscriber::Mapper do
205
205
  context "matches" do
206
206
  [ "a/b", "a/b/", "a/b/c", "a/b/c/d" ].each do |word|
207
207
  it "'#{word}'" do
208
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
208
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
209
209
  end
210
210
  end
211
211
  end
@@ -226,7 +226,7 @@ describe Magellan::Subscriber::Mapper do
226
226
  context "matches" do
227
227
  [ "a/b", "a/c/b", "a/c/d/b" ].each do |word|
228
228
  it "'#{word}'" do
229
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
229
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
230
230
  end
231
231
  end
232
232
  end
@@ -246,7 +246,7 @@ describe Magellan::Subscriber::Mapper do
246
246
  context "matches" do
247
247
  [ "a", "/a", "b/a", "/b/a", "c/b/a" ].each do |word|
248
248
  it "'#{word}'" do
249
- expect(@mapper.map_action(word)).to eql([["BookSubscriber", "index"]])
249
+ expect(@mapper.map_action(word)).to eql([["BooksSubscriber", "index"]])
250
250
  end
251
251
  end
252
252
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magellan-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuuki Noguchi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-22 00:00:00.000000000 Z
11
+ date: 2014-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -90,14 +90,12 @@ extra_rdoc_files: []
90
90
  files:
91
91
  - ".gitignore"
92
92
  - Gemfile
93
- - Gemfile.lock
94
93
  - LICENSE.txt
95
94
  - README.md
96
95
  - Rakefile
97
96
  - bin/magellan-rails
98
97
  - gems/magellan-publisher/.gitignore
99
98
  - gems/magellan-publisher/Gemfile
100
- - gems/magellan-publisher/Gemfile.lock
101
99
  - gems/magellan-publisher/LICENSE.txt
102
100
  - gems/magellan-publisher/README.md
103
101
  - gems/magellan-publisher/Rakefile
@@ -106,8 +104,6 @@ files:
106
104
  - gems/magellan-publisher/magellan-publisher.gemspec
107
105
  - gems/magellan-publisher/spec/magellan/publisher_spec.rb
108
106
  - gems/magellan-publisher/spec/spec_helper.rb
109
- - lib/generators/install_generator.rb
110
- - lib/generators/templates/Magellan.yml
111
107
  - lib/magellan.rb
112
108
  - lib/magellan/extentions.rb
113
109
  - lib/magellan/extentions/rails.rb
data/Gemfile.lock DELETED
@@ -1,76 +0,0 @@
1
- GIT
2
- remote: git://github.com/groovenauts/bunny-mock.git
3
- revision: fbc775600d1e68b4bd3a521ca762ba79f3571704
4
- branch: features/minimum_necessary_mock
5
- specs:
6
- bunny_mock (0.0.1)
7
-
8
- PATH
9
- remote: .
10
- specs:
11
- magellan-rails (0.0.2)
12
- bunny
13
- json
14
- railties (~> 4.1.0)
15
-
16
- GEM
17
- remote: https://rubygems.org/
18
- specs:
19
- actionpack (4.1.6)
20
- actionview (= 4.1.6)
21
- activesupport (= 4.1.6)
22
- rack (~> 1.5.2)
23
- rack-test (~> 0.6.2)
24
- actionview (4.1.6)
25
- activesupport (= 4.1.6)
26
- builder (~> 3.1)
27
- erubis (~> 2.7.0)
28
- activesupport (4.1.6)
29
- i18n (~> 0.6, >= 0.6.9)
30
- json (~> 1.7, >= 1.7.7)
31
- minitest (~> 5.1)
32
- thread_safe (~> 0.1)
33
- tzinfo (~> 1.1)
34
- amq-protocol (1.9.2)
35
- builder (3.2.2)
36
- bunny (1.5.0)
37
- amq-protocol (>= 1.9.2)
38
- diff-lcs (1.2.5)
39
- erubis (2.7.0)
40
- i18n (0.6.11)
41
- json (1.8.1)
42
- minitest (5.4.2)
43
- rack (1.5.2)
44
- rack-test (0.6.2)
45
- rack (>= 1.0)
46
- railties (4.1.6)
47
- actionpack (= 4.1.6)
48
- activesupport (= 4.1.6)
49
- rake (>= 0.8.7)
50
- thor (>= 0.18.1, < 2.0)
51
- rake (10.3.2)
52
- rspec (3.0.0)
53
- rspec-core (~> 3.0.0)
54
- rspec-expectations (~> 3.0.0)
55
- rspec-mocks (~> 3.0.0)
56
- rspec-core (3.0.3)
57
- rspec-support (~> 3.0.0)
58
- rspec-expectations (3.0.3)
59
- diff-lcs (>= 1.2.0, < 2.0)
60
- rspec-support (~> 3.0.0)
61
- rspec-mocks (3.0.3)
62
- rspec-support (~> 3.0.0)
63
- rspec-support (3.0.3)
64
- thor (0.19.1)
65
- thread_safe (0.3.4)
66
- tzinfo (1.2.2)
67
- thread_safe (~> 0.1)
68
-
69
- PLATFORMS
70
- ruby
71
-
72
- DEPENDENCIES
73
- bundler (~> 1.6)
74
- bunny_mock!
75
- magellan-rails!
76
- rspec
@@ -1,51 +0,0 @@
1
- GIT
2
- remote: git://github.com/groovenauts/bunny-mock.git
3
- revision: fbc775600d1e68b4bd3a521ca762ba79f3571704
4
- branch: features/minimum_necessary_mock
5
- specs:
6
- bunny_mock (0.0.1)
7
-
8
- PATH
9
- remote: .
10
- specs:
11
- magellan-publisher (0.0.1)
12
- bunny
13
- json
14
-
15
- GEM
16
- remote: https://rubygems.org/
17
- specs:
18
- amq-protocol (1.9.2)
19
- bunny (1.4.1)
20
- amq-protocol (>= 1.9.2)
21
- diff-lcs (1.2.5)
22
- docile (1.1.5)
23
- json (1.8.1)
24
- multi_json (1.10.1)
25
- rspec (3.1.0)
26
- rspec-core (~> 3.1.0)
27
- rspec-expectations (~> 3.1.0)
28
- rspec-mocks (~> 3.1.0)
29
- rspec-core (3.1.6)
30
- rspec-support (~> 3.1.0)
31
- rspec-expectations (3.1.2)
32
- diff-lcs (>= 1.2.0, < 2.0)
33
- rspec-support (~> 3.1.0)
34
- rspec-mocks (3.1.3)
35
- rspec-support (~> 3.1.0)
36
- rspec-support (3.1.2)
37
- simplecov (0.9.1)
38
- docile (~> 1.1.0)
39
- multi_json (~> 1.0)
40
- simplecov-html (~> 0.8.0)
41
- simplecov-html (0.8.0)
42
-
43
- PLATFORMS
44
- ruby
45
-
46
- DEPENDENCIES
47
- bundler (~> 1.6)
48
- bunny_mock!
49
- magellan-publisher!
50
- rspec
51
- simplecov
@@ -1,20 +0,0 @@
1
- require 'rails/generators/base'
2
- require 'securerandom'
3
-
4
- module Magellan
5
- module Generators
6
- class InstallGenerator < ::Rails::Generators::Base
7
- source_root File.expand_path("../templates", __FILE__)
8
-
9
- desc "Creates config files for Magellan"
10
-
11
- def copy_magellan_yaml
12
- template "Magellan.yml", "Magellan.yml"
13
- end
14
-
15
- def rails_4?
16
- ::Rails::VERSION::MAJOR == 4
17
- end
18
- end
19
- end
20
- end
@@ -1,115 +0,0 @@
1
- trdb:
2
- image: redis:2.8.13
3
- # Dockerfile: https://raw.githubusercontent.com/docker-library/redis/docker-2.8.12/Dockerfile
4
- after_tasks:
5
- - name: "setup TD data"
6
- docker:
7
- detach: False
8
- name: magellan-tr-data
9
- image: groovenauts/magellan-tr-data
10
- links:
11
- - trdb:redis
12
-
13
-
14
- rabbitmq:
15
- before_tasks:
16
- - name: "stop RabbitMQ container"
17
- command: docker stop rabbitmq
18
- ignore_errors: yes
19
- - name: "remove RabbitMQ container"
20
- command: docker rm rabbitmq
21
- ignore_errors: yes
22
-
23
- - name: "make RabbitMQ log directory"
24
- file:
25
- path: /var/log/rabbitmq
26
- force: yes
27
- state: directory
28
-
29
- - name: "change owner /var/log/rabbitmq to rabbitmq"
30
- docker:
31
- name: rabbitmq_dir_owner
32
- image: tutum/rabbitmq
33
- volumes:
34
- - /var/log/rabbitmq:/var/log/rabbitmq
35
- command: "chown -R rabbitmq:rabbitmq /var/log/rabbitmq"
36
-
37
- image: tutum/rabbitmq
38
- # Dockerfile: https://raw.githubusercontent.com/tutumcloud/tutum-docker-rabbitmq/master/Dockerfile
39
- ports:
40
- - 5672:5672
41
- - 15672:15672
42
- env:
43
- - RABBITMQ_USER=magellan
44
- - RABBITMQ_PASS=mypass
45
- volumes:
46
- - /var/log/rabbitmq:/var/log/rabbitmq
47
-
48
- after_tasks:
49
- - name: "wait to ready rabbitmq"
50
- wait_for: delay=3 port=5672
51
- - name: "wait to ready rabbitmq admin"
52
- wait_for: port=15672
53
- - name: "setup Queues and Exchanges"
54
- docker:
55
- detach: False
56
- name: magellan-setup_tools
57
- image: groovenauts/magellan-setup_tools:0.1.1
58
- links:
59
- - trdb:redis
60
- - rabbitmq:rabbitmq
61
- command: ruby ./rabbitmq customer1.magellan-rails-example 0.0.1 rails transaction-router pswd1 pswd2
62
-
63
-
64
- tr:
65
- before_tasks:
66
- - name: "stop tr container"
67
- command: docker stop tr
68
- ignore_errors: yes
69
- - name: "remove tr container"
70
- command: docker rm tr
71
- ignore_errors: yes
72
-
73
- image: groovenauts/magellan-transaction-router:0.0.1-with_signature
74
- # Dockerfile: https://raw.githubusercontent.com/tengine/magellan-transaction-router-broadleaf/feature/integration01/Dockerfile?token=18912__eyJzY29wZSI6IlJhd0Jsb2I6dGVuZ2luZS9tYWdlbGxhbi10cmFuc2FjdGlvbi1yb3V0ZXItYnJvYWRsZWFmL2ZlYXR1cmUvaW50ZWdyYXRpb24wMS9Eb2NrZXJmaWxlIiwiZXhwaXJlcyI6MTQwNzIzMDg4MX0%3D--2ca5fb4de69eca8cbc5cda747b8716ed85ce89a2
75
- ports:
76
- - 3000:3000
77
- links:
78
- - trdb:redis
79
- - rabbitmq:rabbitmq
80
- tty: True
81
- stdin_open: True
82
- command: /bin/bash ./boot.sh
83
-
84
-
85
-
86
-
87
- app:
88
- before_tasks:
89
- - name: "stop app container"
90
- command: docker stop app
91
- ignore_errors: yes
92
- - name: "remove app container"
93
- command: docker rm app
94
- ignore_errors: yes
95
-
96
- - name: "make application log directory"
97
- file:
98
- path: /var/log/application
99
- force: yes
100
- state: directory
101
-
102
- image: groovenauts/magellan-rails-example
103
- # Dockerfile: "./Dockerfile"
104
- links:
105
- - rabbitmq:rabbitmq
106
- env:
107
- - VHOST=/customer1.magellan-rails-example
108
- - REQUEST_QUEUE=customer1.magellan-rails-example.0.0.1.rails
109
- - RESPONSE_EXCHANGE=customer1.magellan-rails-example.reply
110
- - RABBITMQ_USER=customer1.magellan-rails-example
111
- - RABBITMQ_PASS=pswd2
112
- - SECRET_KEY_BASE={{ app_secret_key_base }}
113
- volumes:
114
- - /var/log/application:/usr/src/app/log
115
- command: bundle exec magellan-rails