subserver 0.2.2 → 0.4.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4295d899353208c83176c64e8357e6d6d1618a55
4
- data.tar.gz: 95e1bb5f162351711be555a2ab70ee5c7a7b7bb2
3
+ metadata.gz: 15c004ce2d55c6836a1bed4bf035581a7b96377a
4
+ data.tar.gz: 77b9e1a2f36020ec3f878bd601362148525d911f
5
5
  SHA512:
6
- metadata.gz: 3ca18b4e225c79fd7b2f0d490697af02678bbe2ca0ae4efe081655d2f6144c442b9fbd760ff2b0756e738d52076b6af97ee0a7d50a9eeafeffe6080533449a30
7
- data.tar.gz: bfd2a798802e7810e1e82c188493224398e7109524a8d8decac574c7e12811b5fa6cf45378d4c0cfe48a6c83fa9046e625f35644f8f8edcf0c785cd3f62befcb
6
+ metadata.gz: 4ec89e5f29797283ad87b823306e1a68d2f99f08e821dd83bdd14819eda0d40c6ff84e1f3c77a6734c9e1e9a6f5beb562033b9e4eb539cdd271a1f872b62c903
7
+ data.tar.gz: 8d815574552d3e21bb50bded3060e115f4012f83ac5a7ae0a885236375beb2c83456940178365761f1ae1a3165c7bd5c6e1e8d1c038c91353c131aceefd968e1
@@ -1,2 +1,27 @@
1
- # 1.0.0
1
+ # 0.4.1
2
+ - Fix Listener#process_message error handling
3
+
4
+ # 0.4.0
5
+ - Adds listener_startup lifecycle event
6
+
7
+ # 0.3.0
8
+ - Adds Mocks for testing in applications
9
+
10
+ # 0.2.2
11
+ - Fix issue where multi-subscriber options were getting overridden
12
+
13
+ # 0.2.1
14
+ - Use Rails 5 reloader
15
+ - Fix ActiveRecord connection issues using ConnectionHandler
16
+ - Use Google's Default Enviroment Variables for fallback
17
+
18
+ # 0.2.0
19
+ - Adds PubSub connection testing
20
+ - Fixes a case where subserver would infinitly kill and respawn listeners
21
+ - Cleans up logger code
22
+
23
+ # 0.1.1
24
+ - Fixes connection handling
25
+
26
+ # 0.1.0
2
27
  - Initial Public Release
@@ -26,6 +26,7 @@ module Subserver
26
26
  death_handlers: [],
27
27
  lifecycle_events: {
28
28
  startup: [],
29
+ listener_startup: [],
29
30
  quiet: [],
30
31
  shutdown: [],
31
32
  heartbeat: [],
@@ -88,8 +88,8 @@ module Subserver
88
88
  end
89
89
  end
90
90
 
91
- # Before this point, the process is initializing with just the main thread.
92
- # Starting here the process will now have multiple threads running.
91
+ # Until this point, the process is initializing with just the main thread.
92
+ # After this point the process will have multiple threads running.
93
93
  fire_event(:startup, reverse: false, reraise: true)
94
94
 
95
95
  logger.debug { "Middleware: #{Subserver.middleware.map(&:klass).join(', ')}" }
@@ -34,7 +34,7 @@ module Subserver
34
34
  @thread = nil
35
35
  @reloader = Subserver.options[:reloader]
36
36
  @subscriber = subscriber
37
- @subscription = retrive_subscrption
37
+ @subscription = retrieve_subscription
38
38
  @logging = (mgr.options[:message_logger] || Subserver::MessageLogger).new
39
39
  end
40
40
 
@@ -69,7 +69,7 @@ module Subserver
69
69
 
70
70
  private unless $TESTING
71
71
 
72
- def retrive_subscrption
72
+ def retrieve_subscription
73
73
  subscription_name = @subscriber.get_subserver_options[:subscription]
74
74
  subscription = Pubsub.client.subscription subscription_name rescue nil
75
75
  if subscription.nil?
@@ -90,6 +90,8 @@ module Subserver
90
90
 
91
91
  def run
92
92
  begin
93
+ # This begins the listener process in a forked thread
94
+ fire_event(:listener_startup, reverse: false, reraise: true)
93
95
  connect_subscriber
94
96
  @pubsub_listener.start
95
97
  rescue Subserver::Shutdown
@@ -110,9 +112,12 @@ module Subserver
110
112
  rescue Subserver::Shutdown
111
113
  # Reject message if shutdown
112
114
  received_message.reject!
113
- rescue Exception => ex
114
- handle_exception(e, { context: "Exception raised during message processing.", message: received_message })
115
- raise e
115
+ rescue StandardError => error
116
+ handle_exception error, {
117
+ context: 'Exception raised during message processing.',
118
+ message: received_message
119
+ }
120
+ raise
116
121
  end
117
122
  end
118
123
 
@@ -121,4 +126,4 @@ module Subserver
121
126
  end
122
127
 
123
128
  end
124
- end
129
+ end
@@ -35,6 +35,7 @@ module Subserver
35
35
  @listeners = Set.new
36
36
 
37
37
  subscribers.each do |subscriber|
38
+ next if subscriber.auto_subscribe? && !subscriber.auto_subscribe
38
39
  @listeners << Listener.new(self, subscriber)
39
40
  end
40
41
 
@@ -6,6 +6,10 @@ module Subserver
6
6
  defined?(@client) ? @client : initialize_client
7
7
  end
8
8
 
9
+ def self.client=(client)
10
+ @client = client
11
+ end
12
+
9
13
  def self.initialize_client
10
14
  @client = Google::Cloud::Pubsub.new(
11
15
  project_id: options[:project_id] || ENV['PUBSUB_PROJECT_ID'],
@@ -17,4 +21,5 @@ module Subserver
17
21
  Subserver.options
18
22
  end
19
23
  end
20
- end
24
+ end
25
+
@@ -11,6 +11,9 @@ module Subserver
11
11
  end
12
12
 
13
13
  module ClassMethods
14
+ def auto_subscribe?
15
+ respond_to? :auto_subscribe
16
+ end
14
17
 
15
18
  def subserver_options(opts={})
16
19
  self.subserver_options_hash = get_subserver_options.merge(opts)
@@ -0,0 +1,11 @@
1
+ require 'subserver/testing/pubsub'
2
+
3
+ module Subserver
4
+ module Testing
5
+
6
+ def self.fake!
7
+ Subserver::Pubsub.client = Subserver::Testing::Pubsub.new
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ module Subserver
2
+ module Testing
3
+ class Pubsub
4
+
5
+ class Topic
6
+ def publish(data, attributes = {})
7
+ true
8
+ end
9
+ end
10
+
11
+ def topic(name)
12
+ Topic.new
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Subserver
3
- VERSION = "0.2.2"
3
+ VERSION = "0.4.3"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: subserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Hill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-19 00:00:00.000000000 Z
11
+ date: 2020-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-pubsub
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.31'
19
+ version: '1.7'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
22
  version: 0.31.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.31'
29
+ version: '1.7'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.31.0
@@ -57,6 +57,8 @@ files:
57
57
  - lib/subserver/pubsub.rb
58
58
  - lib/subserver/rails.rb
59
59
  - lib/subserver/subscriber.rb
60
+ - lib/subserver/testing.rb
61
+ - lib/subserver/testing/pubsub.rb
60
62
  - lib/subserver/util.rb
61
63
  - lib/subserver/version.rb
62
64
  homepage: https://github.com/lifechurch/subserver/
@@ -71,7 +73,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
73
  requirements:
72
74
  - - ">="
73
75
  - !ruby/object:Gem::Version
74
- version: 2.3.1
76
+ version: 2.4.7
75
77
  required_rubygems_version: !ruby/object:Gem::Requirement
76
78
  requirements:
77
79
  - - ">="
@@ -79,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
81
  version: '0'
80
82
  requirements: []
81
83
  rubyforge_project:
82
- rubygems_version: 2.5.2.3
84
+ rubygems_version: 2.6.14.4
83
85
  signing_key:
84
86
  specification_version: 4
85
87
  summary: Simple background server process for Google Pub/Sub.