action_subscriber 2.1.2 → 2.2.0

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: 0d27515da32650e518b407839d2faac598925427
4
- data.tar.gz: 1166ddde96c48ab57b4a7b7aace1effa50778057
3
+ metadata.gz: a28cd2294784f1ac8991ef06765c5eb9f5ddc896
4
+ data.tar.gz: 8d61f891527ea6f8a2a51adbb9abe3a94d4b4b65
5
5
  SHA512:
6
- metadata.gz: b4f9a39a8e6e67721b54da8afca7974aeeab211adc40411bfd1f82ce4f4ac51a78245b20bbd89f57410d279ee3028c4fb080869346d981ccaac49b1124008ddb
7
- data.tar.gz: 78c68d7e6072dffd4c85485c04407d46daaaac6354bcde86632f9914468296eee4ec8884a0bcab7e2fad3315389cd74b412baea8141fd7e74213057e87c23bce
6
+ metadata.gz: 78958b49c6479bdf1304a07254fddac253eefa71cdd009878c415a6d6f7341f6cf20ec8697c8ecdaf0ae7470256f9fd1fd8e53d64d0c65a2ec8017102b21568c
7
+ data.tar.gz: 5826fdc4484ce1940f7eeeae4db18ce2887f1d92b851778480a43e7be4bec944a6f3f42eec025bd5842077959fcd696a585c0710f2a9be536563cebc9f514df2
@@ -1,8 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ $ACTION_SUBSCRIBER_SERVER_MODE = true
4
+
3
5
  require 'active_support'
4
6
  require 'active_support/core_ext'
5
7
  require 'thor'
8
+ require 'action_subscriber'
6
9
 
7
10
  module ActionSubscriber
8
11
  class CLI < ::Thor
@@ -23,12 +26,24 @@ module ActionSubscriber
23
26
  BABOUDESC
24
27
 
25
28
  def start
26
- require options[:app]
27
-
28
29
  $0 = "Action Subscriber server #{object_id}"
29
30
  ::ActionSubscriber.logger.info "Loading configuration..."
30
31
 
31
32
  ::ActionSubscriber::Configuration.configure_from_yaml_and_cli(options)
33
+
34
+ ::ActionSubscriber.logger.info "Requiring app..."
35
+
36
+ require options[:app]
37
+
38
+ # We run these outside of lib/action_subscriber.rb because we need to load
39
+ # our railtie (Rails must be defined) before we can run our load hooks.
40
+ # When requiring action_subscriber as a client, these will be run
41
+ # automatically.
42
+ ::ActionSubscriber.logger.info "Running load hooks..."
43
+
44
+ require "action_subscriber/railtie" if defined?(Rails)
45
+ ::ActiveSupport.run_load_hooks(:action_subscriber, Base)
46
+
32
47
  ::ActionSubscriber.logger.info "Starting server..."
33
48
 
34
49
  case ::ActionSubscriber.configuration.mode
@@ -114,14 +114,18 @@ module ActionSubscriber
114
114
  alias_method :config, :configuration
115
115
  end
116
116
 
117
+ # Execution is delayed until after app loads when used with bin/action_subscriber
118
+ unless $ACTION_SUBSCRIBER_SERVER_MODE
119
+ ::ActiveSupport.run_load_hooks(:action_subscriber, Base)
120
+ require "action_subscriber/railtie" if defined?(Rails)
121
+ end
122
+
117
123
  # Initialize config object
118
124
  config
119
125
 
120
126
  # Intialize async publisher adapter
121
127
  ::ActionSubscriber::Publisher::Async.publisher_adapter
122
128
 
123
- ::ActiveSupport.run_load_hooks(:action_subscriber, Base)
124
-
125
129
  ##
126
130
  # Private Implementation
127
131
  #
@@ -144,11 +148,8 @@ module ActionSubscriber
144
148
  end
145
149
  end
146
150
  private_class_method :default_routes
147
-
148
151
  end
149
152
 
150
- require "action_subscriber/railtie" if defined?(Rails)
151
-
152
153
  at_exit do
153
154
  ::ActionSubscriber::Publisher::Async.publisher_adapter.shutdown!
154
155
  ::ActionSubscriber::RabbitConnection.publisher_disconnect!
@@ -1,3 +1,5 @@
1
+ require "yaml"
2
+
1
3
  module ActionSubscriber
2
4
  class Configuration
3
5
  attr_accessor :allow_low_priority_methods,
@@ -24,6 +26,8 @@ module ActionSubscriber
24
26
  :times_to_pop,
25
27
  :virtual_host
26
28
 
29
+ CONFIGURATION_MUTEX = ::Mutex.new
30
+
27
31
  DEFAULTS = {
28
32
  :allow_low_priority_methods => false,
29
33
  :async_publisher => 'memory',
@@ -51,18 +55,25 @@ module ActionSubscriber
51
55
  ##
52
56
  # Class Methods
53
57
  #
54
- def self.configure_from_yaml_and_cli(cli_options = {})
55
- env = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || ENV["APP_ENV"] || "development"
58
+ def self.configure_from_yaml_and_cli(cli_options = {}, reload = false)
59
+ CONFIGURATION_MUTEX.synchronize do
60
+ @configure_from_yaml_and_cli = nil if reload
61
+ @configure_from_yaml_and_cli ||= begin
62
+ env = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || ENV["APP_ENV"] || "development"
56
63
 
57
- yaml_config = {}
58
- absolute_config_path = ::File.expand_path(::File.join("config", "action_subscriber.yml"))
59
- if ::File.exists?(absolute_config_path)
60
- yaml_config = ::YAML.load_file(absolute_config_path, :safe => true)[env]
61
- end
64
+ yaml_config = {}
65
+ absolute_config_path = ::File.expand_path(::File.join("config", "action_subscriber.yml"))
66
+ if ::File.exists?(absolute_config_path)
67
+ yaml_config = ::YAML.load_file(absolute_config_path)[env]
68
+ end
62
69
 
63
- ::ActionSubscriber::Configuration::DEFAULTS.each_pair do |key, value|
64
- setting = cli_options[key] || yaml_config[key.to_s]
65
- ::ActionSubscriber.config.__send__("#{key}=", setting) if setting
70
+ ::ActionSubscriber::Configuration::DEFAULTS.each_pair do |key, value|
71
+ setting = cli_options[key] || yaml_config[key.to_s]
72
+ ::ActionSubscriber.config.__send__("#{key}=", setting) if setting
73
+ end
74
+
75
+ nil
76
+ end
66
77
  end
67
78
  end
68
79
 
@@ -1,3 +1,3 @@
1
1
  module ActionSubscriber
2
- VERSION = "2.1.2"
2
+ VERSION = "2.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_subscriber
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Stien
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2016-02-22 00:00:00.000000000 Z
15
+ date: 2016-02-23 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activesupport