webhook_system 2.1.4 → 2.3.0

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
  SHA256:
3
- metadata.gz: 1463e38923bd3c6b355b49fb135ccb37f923d3f2fd0ebbb97e2ae6dade7bc40a
4
- data.tar.gz: fc67b0e5fb362d63b54300fbf34235be71fecea0e151c1bbcd5641b4ef923620
3
+ metadata.gz: 95a60a1976fb1383405d2f91b97ac05e8d2d771d4df832587a54847ad2bb9bdf
4
+ data.tar.gz: f253442be94bbf08263d5642b211de58653bf0b0ac29e4d1a67dc46bf9712cee
5
5
  SHA512:
6
- metadata.gz: a3d525be36358903bb683fbd8a752e0fa79f9b0c8f0bd37809852103b44328453871fe7cd88ab527abe1dd7875623ad4b0ebc41c9b3569209e36ca9d38de37af
7
- data.tar.gz: e355807b1dabae35ab8e9ac05d26ceb44fce3d143f129cccaf142927e481848e02f2e31e8dd23dfc13d5daf3f600fcb879e69fa5b852367a11f4939f01e3f059
6
+ metadata.gz: 4ca145b2131eeef0ee2049f3988838fce583950cc960cb973ddaa975338c1f8488e2fc2d30e79b91f8a154898c712b00744f7958ab84765cdd0bf17604021000
7
+ data.tar.gz: 7c0d87b9026185c5d59f26fdd16ae0317ffd2b72756e0f996c43cd2c0858c12d96d3d05099dc7af6730897a4eb63b4b144c034078a1f673ef2315129ba3253a7
@@ -0,0 +1,53 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: build
9
+
10
+ on: [push, pull_request]
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-20.04
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby:
19
+ - 2.6
20
+ - 2.5
21
+ gemfile:
22
+ - rails_4.2
23
+ - rails_5.0
24
+ - rails_5.1
25
+ - rails_5_2
26
+ - rails_6.0
27
+ # expected WebhookSystem::Job::RequestFailed with "POST request to http://lvh.me/hook1 failed with code: 400 and error I don't like you", got #<NameError: uninitialized constant ActiveSupport::Testing::Assertions::Minitest> with backtrace:
28
+ # ./vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.4/lib/active_support/testing/assertions.rb:36:in `rescue in assert_nothing_raised'
29
+ # ./vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.4/lib/active_support/testing/assertions.rb:33:in `assert_nothing_raised'
30
+ # - rails_6.1
31
+ exclude:
32
+ - gemfile: rails_4.2
33
+ ruby: 2.7
34
+ - gemfile: rails_4.2
35
+ ruby: 3.0
36
+ - gemfile: rails_5.0
37
+ ruby: 2.7
38
+ - gemfile: rails_5.0
39
+ ruby: 3.0
40
+ - gemfile: rails_5.1
41
+ ruby: 2.7
42
+ - gemfile: rails_5.1
43
+ ruby: 3.0
44
+
45
+ env:
46
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
47
+ steps:
48
+ - uses: actions/checkout@v2
49
+ - uses: ruby/setup-ruby@v1
50
+ with:
51
+ ruby-version: ${{ matrix.ruby }}
52
+ bundler-cache: true
53
+ - run: bundle exec rake
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ pkg/
5
5
  tmp/
6
6
  .ruby-version
7
7
  gemfiles/*.lock
8
+ webhook_system-*.gem
data/CHANGELOG.md CHANGED
@@ -1,8 +1,47 @@
1
1
  # Change Log
2
2
 
3
+ ## [v2.3.0](https://github.com/payrollhero/webhook_system/tree/v2.3.0) (2021-08-xx)
4
+ [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.2.0...v2.3.0)
5
+
6
+ * Add ability to launch inline jobs instead of making external HTTP calls to another service.
7
+
8
+ ## [v2.2.0](https://github.com/payrollhero/webhook_system/tree/v2.2.0) (2019-11-07)
9
+ [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.1.6...v2.2.0)
10
+
11
+ * Syntatic sugar: simple dispatch call to also build the event object
12
+
13
+ ## [v2.1.6](https://github.com/payrollhero/webhook_system/tree/v2.1.6) (2019-07-26)
14
+ [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.1.5...v2.1.6)
15
+
16
+ * add account info to error message
17
+
18
+ ## [v2.1.5](https://github.com/payrollhero/webhook_system/tree/v2.1.5) (2019-07-24)
19
+ [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.1.4...v2.1.5)
20
+
21
+ * response body error message in exception
22
+
23
+ ## [v2.1.4](https://github.com/payrollhero/webhook_system/tree/v2.1.4) (2019-05-10)
24
+ [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.1.3...v2.1.4)
25
+
26
+ * Make URL display in Exception message
27
+ * Make tests pass again
28
+ * Small typo fix by Heath Attig, thank you
29
+
30
+ ## [v2.1.3](https://github.com/payrollhero/webhook_system/tree/v2.1.3) (2017-12-06)
31
+ [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.1.2...v2.1.3)
32
+
33
+ by Ron
34
+
35
+ ## [v2.1.2](https://github.com/payrollhero/webhook_system/tree/v2.1.2) (2017-01-24)
36
+ [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.1.1...v2.1.2)
37
+
38
+ by Piotr
39
+
3
40
  ## [v2.1.1](https://github.com/payrollhero/webhook_system/tree/v2.1.1) (2016-12-20)
4
41
  [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.1.0...v2.1.1)
5
42
 
43
+ by Piotr
44
+
6
45
  ## [v2.1.0](https://github.com/payrollhero/webhook_system/tree/v2.1.0) (2016-07-20)
7
46
  [Full Changelog](https://github.com/payrollhero/webhook_system/compare/v2.0.0...v2.1.0)
8
47
 
@@ -53,4 +92,4 @@
53
92
 
54
93
 
55
94
 
56
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
95
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
@@ -1,5 +1,3 @@
1
- # This file was generated by Appraisal
2
-
3
1
  source "https://rubygems.org"
4
2
 
5
3
  gem "rails", "~> 4.2.11"
@@ -0,0 +1,265 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ webhook_system (2.3.0)
5
+ activejob (> 4.2, < 6.1)
6
+ activerecord (> 4.2, < 6.1)
7
+ activesupport (> 4.2, < 6.1)
8
+ faraday (> 0.9)
9
+ faraday-encoding (>= 0.0.2, < 1.0)
10
+ ph_model
11
+ validate_url (~> 1.0)
12
+
13
+ GEM
14
+ remote: https://rubygems.org/
15
+ specs:
16
+ actionmailer (4.2.11.3)
17
+ actionpack (= 4.2.11.3)
18
+ actionview (= 4.2.11.3)
19
+ activejob (= 4.2.11.3)
20
+ mail (~> 2.5, >= 2.5.4)
21
+ rails-dom-testing (~> 1.0, >= 1.0.5)
22
+ actionpack (4.2.11.3)
23
+ actionview (= 4.2.11.3)
24
+ activesupport (= 4.2.11.3)
25
+ rack (~> 1.6)
26
+ rack-test (~> 0.6.2)
27
+ rails-dom-testing (~> 1.0, >= 1.0.5)
28
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
+ actionview (4.2.11.3)
30
+ activesupport (= 4.2.11.3)
31
+ builder (~> 3.1)
32
+ erubis (~> 2.7.0)
33
+ rails-dom-testing (~> 1.0, >= 1.0.5)
34
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
+ active_attr (0.15.3)
36
+ actionpack (>= 3.0.2, < 7.0)
37
+ activemodel (>= 3.0.2, < 7.0)
38
+ activesupport (>= 3.0.2, < 7.0)
39
+ activejob (4.2.11.3)
40
+ activesupport (= 4.2.11.3)
41
+ globalid (>= 0.3.0)
42
+ activemodel (4.2.11.3)
43
+ activesupport (= 4.2.11.3)
44
+ builder (~> 3.1)
45
+ activerecord (4.2.11.3)
46
+ activemodel (= 4.2.11.3)
47
+ activesupport (= 4.2.11.3)
48
+ arel (~> 6.0)
49
+ activesupport (4.2.11.3)
50
+ i18n (~> 0.7)
51
+ minitest (~> 5.1)
52
+ thread_safe (~> 0.3, >= 0.3.4)
53
+ tzinfo (~> 1.1)
54
+ addressable (2.8.0)
55
+ public_suffix (>= 2.0.2, < 5.0)
56
+ arel (6.0.4)
57
+ ast (2.4.2)
58
+ async (1.30.1)
59
+ console (~> 1.10)
60
+ nio4r (~> 2.3)
61
+ timers (~> 4.1)
62
+ async-http (0.56.5)
63
+ async (>= 1.25)
64
+ async-io (>= 1.28)
65
+ async-pool (>= 0.2)
66
+ protocol-http (~> 0.22.0)
67
+ protocol-http1 (~> 0.14.0)
68
+ protocol-http2 (~> 0.14.0)
69
+ async-http-faraday (0.11.0)
70
+ async-http (~> 0.42)
71
+ faraday
72
+ async-io (1.32.2)
73
+ async
74
+ async-pool (0.3.8)
75
+ async (>= 1.25)
76
+ builder (3.2.4)
77
+ coderay (1.1.3)
78
+ concurrent-ruby (1.1.9)
79
+ console (1.13.1)
80
+ fiber-local
81
+ crack (0.4.5)
82
+ rexml
83
+ crass (1.0.6)
84
+ diff-lcs (1.4.4)
85
+ erubis (2.7.0)
86
+ factory_bot (5.2.0)
87
+ activesupport (>= 4.2.0)
88
+ faraday (1.7.0)
89
+ faraday-em_http (~> 1.0)
90
+ faraday-em_synchrony (~> 1.0)
91
+ faraday-excon (~> 1.1)
92
+ faraday-httpclient (~> 1.0.1)
93
+ faraday-net_http (~> 1.0)
94
+ faraday-net_http_persistent (~> 1.1)
95
+ faraday-patron (~> 1.0)
96
+ faraday-rack (~> 1.0)
97
+ multipart-post (>= 1.2, < 3)
98
+ ruby2_keywords (>= 0.0.4)
99
+ faraday-em_http (1.0.0)
100
+ faraday-em_synchrony (1.0.0)
101
+ faraday-encoding (0.0.5)
102
+ faraday
103
+ faraday-excon (1.1.0)
104
+ faraday-http-cache (2.2.0)
105
+ faraday (>= 0.8)
106
+ faraday-httpclient (1.0.1)
107
+ faraday-net_http (1.0.1)
108
+ faraday-net_http_persistent (1.2.0)
109
+ faraday-patron (1.0.0)
110
+ faraday-rack (1.0.0)
111
+ fiber-local (1.0.0)
112
+ github_changelog_generator (1.16.4)
113
+ activesupport
114
+ async (>= 1.25.0)
115
+ async-http-faraday
116
+ faraday-http-cache
117
+ multi_json
118
+ octokit (~> 4.6)
119
+ rainbow (>= 2.2.1)
120
+ rake (>= 10.0)
121
+ globalid (0.4.2)
122
+ activesupport (>= 4.2.0)
123
+ hashdiff (1.0.1)
124
+ i18n (0.9.5)
125
+ concurrent-ruby (~> 1.0)
126
+ io-console (0.5.9)
127
+ irb (1.3.7)
128
+ reline (>= 0.2.7)
129
+ loofah (2.12.0)
130
+ crass (~> 1.0.2)
131
+ nokogiri (>= 1.5.9)
132
+ mail (2.7.1)
133
+ mini_mime (>= 0.1.1)
134
+ method_source (1.0.0)
135
+ mini_mime (1.1.0)
136
+ mini_portile2 (2.6.1)
137
+ minitest (5.14.4)
138
+ multi_json (1.15.0)
139
+ multipart-post (2.1.1)
140
+ nio4r (2.5.8)
141
+ nokogiri (1.12.3)
142
+ mini_portile2 (~> 2.6.1)
143
+ racc (~> 1.4)
144
+ octokit (4.21.0)
145
+ faraday (>= 0.9)
146
+ sawyer (~> 0.8.0, >= 0.5.3)
147
+ parser (2.7.2.0)
148
+ ast (~> 2.4.1)
149
+ ph_model (1.1.1)
150
+ active_attr (~> 0.8)
151
+ activemodel (> 3.2)
152
+ activesupport (> 3.2)
153
+ powerpack (0.1.3)
154
+ protocol-hpack (1.4.2)
155
+ protocol-http (0.22.5)
156
+ protocol-http1 (0.14.1)
157
+ protocol-http (~> 0.22)
158
+ protocol-http2 (0.14.2)
159
+ protocol-hpack (~> 1.4)
160
+ protocol-http (~> 0.18)
161
+ pry (0.14.1)
162
+ coderay (~> 1.1)
163
+ method_source (~> 1.0)
164
+ public_suffix (4.0.6)
165
+ racc (1.5.2)
166
+ rack (1.6.13)
167
+ rack-test (0.6.3)
168
+ rack (>= 1.0)
169
+ rails (4.2.11.3)
170
+ actionmailer (= 4.2.11.3)
171
+ actionpack (= 4.2.11.3)
172
+ actionview (= 4.2.11.3)
173
+ activejob (= 4.2.11.3)
174
+ activemodel (= 4.2.11.3)
175
+ activerecord (= 4.2.11.3)
176
+ activesupport (= 4.2.11.3)
177
+ bundler (>= 1.3.0, < 2.0)
178
+ railties (= 4.2.11.3)
179
+ sprockets-rails
180
+ rails-deprecated_sanitizer (1.0.4)
181
+ activesupport (>= 4.2.0.alpha)
182
+ rails-dom-testing (1.0.9)
183
+ activesupport (>= 4.2.0, < 5.0)
184
+ nokogiri (~> 1.6)
185
+ rails-deprecated_sanitizer (>= 1.0.1)
186
+ rails-html-sanitizer (1.3.0)
187
+ loofah (~> 2.3)
188
+ railties (4.2.11.3)
189
+ actionpack (= 4.2.11.3)
190
+ activesupport (= 4.2.11.3)
191
+ rake (>= 0.8.7)
192
+ thor (>= 0.18.1, < 2.0)
193
+ rainbow (2.2.2)
194
+ rake
195
+ rake (13.0.6)
196
+ reline (0.2.7)
197
+ io-console (~> 0.5)
198
+ rexml (3.2.5)
199
+ rspec (3.10.0)
200
+ rspec-core (~> 3.10.0)
201
+ rspec-expectations (~> 3.10.0)
202
+ rspec-mocks (~> 3.10.0)
203
+ rspec-core (3.10.1)
204
+ rspec-support (~> 3.10.0)
205
+ rspec-expectations (3.10.1)
206
+ diff-lcs (>= 1.2.0, < 2.0)
207
+ rspec-support (~> 3.10.0)
208
+ rspec-mocks (3.10.2)
209
+ diff-lcs (>= 1.2.0, < 2.0)
210
+ rspec-support (~> 3.10.0)
211
+ rspec-support (3.10.2)
212
+ rubocop (0.48.1)
213
+ parser (>= 2.3.3.1, < 3.0)
214
+ powerpack (~> 0.1)
215
+ rainbow (>= 1.99.1, < 3.0)
216
+ ruby-progressbar (~> 1.7)
217
+ unicode-display_width (~> 1.0, >= 1.0.1)
218
+ ruby-progressbar (1.11.0)
219
+ ruby2_keywords (0.0.5)
220
+ rubygems-tasks (0.2.5)
221
+ irb (~> 1.0)
222
+ sawyer (0.8.2)
223
+ addressable (>= 2.3.5)
224
+ faraday (> 0.8, < 2.0)
225
+ sprockets (4.0.2)
226
+ concurrent-ruby (~> 1.0)
227
+ rack (> 1, < 3)
228
+ sprockets-rails (3.2.2)
229
+ actionpack (>= 4.0)
230
+ activesupport (>= 4.0)
231
+ sprockets (>= 3.0.0)
232
+ sqlite3 (1.3.13)
233
+ thor (1.1.0)
234
+ thread_safe (0.3.6)
235
+ timers (4.3.3)
236
+ tzinfo (1.2.9)
237
+ thread_safe (~> 0.1)
238
+ unicode-display_width (1.7.0)
239
+ validate_url (1.0.13)
240
+ activemodel (>= 3.0.0)
241
+ public_suffix
242
+ webmock (3.14.0)
243
+ addressable (>= 2.8.0)
244
+ crack (>= 0.3.2)
245
+ hashdiff (>= 0.4.0, < 2.0.0)
246
+
247
+ PLATFORMS
248
+ ruby
249
+
250
+ DEPENDENCIES
251
+ bundler (> 1.17, < 2.5)
252
+ factory_bot
253
+ github_changelog_generator (~> 1.6)
254
+ pry
255
+ rails (~> 4.2.11)
256
+ rake
257
+ rspec (~> 3.0)
258
+ rubocop (~> 0.48.1)
259
+ rubygems-tasks (~> 0.2)
260
+ sqlite3 (~> 1.3.6)
261
+ webhook_system!
262
+ webmock
263
+
264
+ BUNDLED WITH
265
+ 1.17.3
@@ -1,8 +1,6 @@
1
- # This file was generated by Appraisal
2
-
3
1
  source "https://rubygems.org"
4
2
 
5
- gem "rails", "~> 5.0.1"
3
+ gem "rails", "~> 5.0.7"
6
4
  gem "sqlite3", "~> 1.3.6"
7
5
 
8
6
  gemspec path: "../"
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", "~> 5.1.7"
4
+ gem "sqlite3", "~> 1.3.6"
5
+
6
+ gemspec path: "../"
@@ -1,8 +1,6 @@
1
- # This file was generated by Appraisal
2
-
3
1
  source "https://rubygems.org"
4
2
 
5
- gem "rails", "~> 5.2.1"
3
+ gem "rails", "~> 5.2.6"
6
4
  gem "sqlite3", "~> 1.4.1"
7
5
 
8
6
  gemspec path: "../"
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", "~> 6.0.4"
4
+ gem "sqlite3"
5
+
6
+ gemspec path: "../"
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", "~> 6.1.4"
4
+ gem "sqlite3"
5
+
6
+ gemspec path: "../"
@@ -37,6 +37,10 @@ module WebhookSystem
37
37
  key.to_s.in? %w(event event_id)
38
38
  end
39
39
 
40
+ def self.dispatch(args)
41
+ WebhookSystem::Subscription.global.dispatch self.build(args)
42
+ end
43
+
40
44
  private
41
45
 
42
46
  def with_caller_backtrace(exception, backtrack=2)
@@ -5,9 +5,10 @@ module WebhookSystem
5
5
 
6
6
  # Exception class around non 200 responses
7
7
  class RequestFailed < RuntimeError
8
- def initialize(message, code)
8
+ def initialize(message, code, error_message=nil)
9
9
  super(message)
10
10
  @code = code
11
+ @error_message = error_message
11
12
  end
12
13
  end
13
14
 
@@ -31,7 +32,22 @@ module WebhookSystem
31
32
  end
32
33
 
33
34
  def perform(subscription, event)
34
- self.class.post(subscription, event)
35
+ if subscription.url.match?(/^https?:/)
36
+ self.class.post(subscription, event)
37
+ elsif (match_data = subscription.url.match(/^inline:(.*)/)).present?
38
+ self.class.call_inline(match_data[1], subscription, event)
39
+ else
40
+ raise RuntimeError, "unknown prefix url for subscription"
41
+ ensure_success(ErrorResponse.new(exception), :INVALID, subscription)
42
+ end
43
+ end
44
+
45
+ def self.call_inline(job_name, subscription, event)
46
+ # subscription url could contain a job name, or a ruby class/method call
47
+ # how do we sanitize this not to be allowing hackers to call arbitrary code via
48
+ # a subscription? maybe a prefix is enough?
49
+ job_class = const_get("WebhookSystem::Inline#{job_name}Job")
50
+ job_class.perform_now(subscription, event)
35
51
  end
36
52
 
37
53
  def self.post(subscription, event)
@@ -46,12 +62,21 @@ module WebhookSystem
46
62
  end
47
63
 
48
64
  log_response(subscription, event, request, response)
49
- ensure_success(response.status, :POST, subscription.url)
65
+ ensure_success(response, :POST, subscription)
50
66
  end
51
67
 
52
- def self.ensure_success(status, http_method, url)
68
+ def self.ensure_success(response, http_method, subscription)
69
+ url = subscription.url
70
+ status = response.status
53
71
  unless (200..299).cover? status
54
- raise RequestFailed.new("#{http_method} request to #{url} failed with code: #{status}", status)
72
+ if subscription.respond_to?(:account_id)
73
+ account_info = subscription.account_info
74
+ inner = "failed for account #{account_info} with"
75
+ else
76
+ inner = "failed with"
77
+ end
78
+ text = "#{http_method} request to #{url} #{inner} code: #{status} and error #{response.body}"
79
+ raise RequestFailed.new(text, status, response.body)
55
80
  end
56
81
  end
57
82
 
@@ -4,7 +4,10 @@ module WebhookSystem
4
4
  class Subscription < ActiveRecord::Base
5
5
  self.table_name = 'webhook_subscriptions'
6
6
 
7
- validates :url, presence: true, url: { no_local: true }
7
+ belongs_to :account if defined?(Account)
8
+
9
+ INLINE_JOB_REGEXP=/^inline:(.*)/
10
+ validates :url, presence: true, url: { no_local: true }, if: Proc.new { |a| !a.url.match?(INLINE_JOB_REGEXP) }
8
11
  validates :secret, presence: true
9
12
 
10
13
  has_many :topics, class_name: 'WebhookSystem::SubscriptionTopic', dependent: :destroy
@@ -31,7 +34,11 @@ module WebhookSystem
31
34
 
32
35
  # Just a helper to get a nice representation of the subscription
33
36
  def url_domain
34
- URI.parse(url).host
37
+ if data = url.match(INLINE_JOB_REGEXP)
38
+ data[1]
39
+ else
40
+ URI.parse(url).host
41
+ end
35
42
  end
36
43
 
37
44
  # Abstraction around the topics relation, returns an array of the subscribed topic names
@@ -59,5 +66,12 @@ module WebhookSystem
59
66
  self.topics_attributes = new_topics_attributes
60
67
  end
61
68
 
69
+ def account_info
70
+ if defined?(Account)
71
+ "#{account_id}:#{account.try(:name)}"
72
+ else
73
+ account_id.to_s
74
+ end
75
+ end
62
76
  end
63
77
  end
@@ -1,3 +1,3 @@
1
1
  module WebhookSystem
2
- VERSION = '2.1.4'
2
+ VERSION = '2.3.0'
3
3
  end
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
6
6
  gem.name = 'webhook_system'
7
7
  gem.version = WebhookSystem::VERSION
8
8
  gem.authors = ['Piotr Banasik', 'Mykola Kyryk']
9
- gem.email = 'piotr@payrollhero.com'
9
+ gem.email = 'dev@payrollhero.com'
10
10
 
11
11
  gem.summary = 'Webhook system'
12
12
  gem.description = 'A pluggable webhook subscription system'
@@ -18,24 +18,23 @@ Gem::Specification.new do |gem|
18
18
  gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
19
19
  gem.require_paths = ['lib']
20
20
 
21
- gem.add_runtime_dependency 'activesupport', '> 3.2'#, '< 5.0' # have to drop support for ruby 2.1 if we enable 5.0
22
- gem.add_runtime_dependency 'activerecord', '> 3.2'#, '< 5.0' # have to drop support for ruby 2.1 if we enable 5.0
23
- gem.add_runtime_dependency 'activejob'
24
- gem.add_runtime_dependency 'faraday', '~> 0.9'
21
+ gem.add_runtime_dependency 'activesupport', '> 4.2', '< 6.1'
22
+ gem.add_runtime_dependency 'activerecord', '> 4.2', '< 6.1'
23
+ gem.add_runtime_dependency 'activejob', '> 4.2', '< 6.1'
24
+ gem.add_runtime_dependency 'faraday', '> 0.9'
25
25
  gem.add_runtime_dependency 'faraday-encoding', '>= 0.0.2', '< 1.0'
26
26
  gem.add_runtime_dependency 'ph_model'
27
27
  gem.add_runtime_dependency 'validate_url', '~> 1.0'
28
28
 
29
- gem.add_development_dependency 'bundler', '~> 1.0'
29
+ gem.add_development_dependency 'bundler', '> 1.17', '< 2.5'
30
30
  gem.add_development_dependency 'rake'
31
31
  gem.add_development_dependency 'rspec', '~> 3.0'
32
32
  gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
33
33
  gem.add_development_dependency 'pry'
34
34
  gem.add_development_dependency 'sqlite3'
35
35
  gem.add_development_dependency 'github_changelog_generator', '~> 1.6'
36
- gem.add_development_dependency 'factory_girl'
36
+ gem.add_development_dependency 'factory_bot'
37
37
  gem.add_development_dependency 'webmock'
38
- gem.add_development_dependency 'appraisal'
39
38
 
40
39
  # static analysis gems
41
40
  gem.add_development_dependency 'rubocop', '~> 0.48.1'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webhook_system
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Banasik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-05-10 00:00:00.000000000 Z
12
+ date: 2021-08-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -17,54 +17,72 @@ dependencies:
17
17
  requirements:
18
18
  - - ">"
19
19
  - !ruby/object:Gem::Version
20
- version: '3.2'
20
+ version: '4.2'
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '6.1'
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
28
  - - ">"
26
29
  - !ruby/object:Gem::Version
27
- version: '3.2'
30
+ version: '4.2'
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '6.1'
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: activerecord
30
36
  requirement: !ruby/object:Gem::Requirement
31
37
  requirements:
32
38
  - - ">"
33
39
  - !ruby/object:Gem::Version
34
- version: '3.2'
40
+ version: '4.2'
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: '6.1'
35
44
  type: :runtime
36
45
  prerelease: false
37
46
  version_requirements: !ruby/object:Gem::Requirement
38
47
  requirements:
39
48
  - - ">"
40
49
  - !ruby/object:Gem::Version
41
- version: '3.2'
50
+ version: '4.2'
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '6.1'
42
54
  - !ruby/object:Gem::Dependency
43
55
  name: activejob
44
56
  requirement: !ruby/object:Gem::Requirement
45
57
  requirements:
46
- - - ">="
58
+ - - ">"
47
59
  - !ruby/object:Gem::Version
48
- version: '0'
60
+ version: '4.2'
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: '6.1'
49
64
  type: :runtime
50
65
  prerelease: false
51
66
  version_requirements: !ruby/object:Gem::Requirement
52
67
  requirements:
53
- - - ">="
68
+ - - ">"
54
69
  - !ruby/object:Gem::Version
55
- version: '0'
70
+ version: '4.2'
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: '6.1'
56
74
  - !ruby/object:Gem::Dependency
57
75
  name: faraday
58
76
  requirement: !ruby/object:Gem::Requirement
59
77
  requirements:
60
- - - "~>"
78
+ - - ">"
61
79
  - !ruby/object:Gem::Version
62
80
  version: '0.9'
63
81
  type: :runtime
64
82
  prerelease: false
65
83
  version_requirements: !ruby/object:Gem::Requirement
66
84
  requirements:
67
- - - "~>"
85
+ - - ">"
68
86
  - !ruby/object:Gem::Version
69
87
  version: '0.9'
70
88
  - !ruby/object:Gem::Dependency
@@ -119,16 +137,22 @@ dependencies:
119
137
  name: bundler
120
138
  requirement: !ruby/object:Gem::Requirement
121
139
  requirements:
122
- - - "~>"
140
+ - - ">"
123
141
  - !ruby/object:Gem::Version
124
- version: '1.0'
142
+ version: '1.17'
143
+ - - "<"
144
+ - !ruby/object:Gem::Version
145
+ version: '2.5'
125
146
  type: :development
126
147
  prerelease: false
127
148
  version_requirements: !ruby/object:Gem::Requirement
128
149
  requirements:
129
- - - "~>"
150
+ - - ">"
130
151
  - !ruby/object:Gem::Version
131
- version: '1.0'
152
+ version: '1.17'
153
+ - - "<"
154
+ - !ruby/object:Gem::Version
155
+ version: '2.5'
132
156
  - !ruby/object:Gem::Dependency
133
157
  name: rake
134
158
  requirement: !ruby/object:Gem::Requirement
@@ -214,7 +238,7 @@ dependencies:
214
238
  - !ruby/object:Gem::Version
215
239
  version: '1.6'
216
240
  - !ruby/object:Gem::Dependency
217
- name: factory_girl
241
+ name: factory_bot
218
242
  requirement: !ruby/object:Gem::Requirement
219
243
  requirements:
220
244
  - - ">="
@@ -241,20 +265,6 @@ dependencies:
241
265
  - - ">="
242
266
  - !ruby/object:Gem::Version
243
267
  version: '0'
244
- - !ruby/object:Gem::Dependency
245
- name: appraisal
246
- requirement: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - ">="
249
- - !ruby/object:Gem::Version
250
- version: '0'
251
- type: :development
252
- prerelease: false
253
- version_requirements: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - ">="
256
- - !ruby/object:Gem::Version
257
- version: '0'
258
268
  - !ruby/object:Gem::Dependency
259
269
  name: rubocop
260
270
  requirement: !ruby/object:Gem::Requirement
@@ -270,17 +280,16 @@ dependencies:
270
280
  - !ruby/object:Gem::Version
271
281
  version: 0.48.1
272
282
  description: A pluggable webhook subscription system
273
- email: piotr@payrollhero.com
283
+ email: dev@payrollhero.com
274
284
  executables: []
275
285
  extensions: []
276
286
  extra_rdoc_files: []
277
287
  files:
278
288
  - ".codeclimate.yml"
289
+ - ".github/workflows/build.yml"
279
290
  - ".gitignore"
280
291
  - ".rubocop.hound.yml"
281
292
  - ".rubocop.yml"
282
- - ".travis.yml"
283
- - Appraisals
284
293
  - CHANGELOG.md
285
294
  - DEPLOYING.md
286
295
  - Gemfile
@@ -288,9 +297,13 @@ files:
288
297
  - README.md
289
298
  - Rakefile
290
299
  - gemfiles/.bundle/config
291
- - gemfiles/rails_4.gemfile
292
- - gemfiles/rails_5.gemfile
300
+ - gemfiles/rails_4.2.gemfile
301
+ - gemfiles/rails_4.2.gemfile.lock
302
+ - gemfiles/rails_5.0.gemfile
303
+ - gemfiles/rails_5.1.gemfile
293
304
  - gemfiles/rails_5_2.gemfile
305
+ - gemfiles/rails_6.0.gemfile
306
+ - gemfiles/rails_6.1.gemfile
294
307
  - lib/webhook_system.rb
295
308
  - lib/webhook_system/base_event.rb
296
309
  - lib/webhook_system/encoder.rb
@@ -319,7 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
332
  - !ruby/object:Gem::Version
320
333
  version: '0'
321
334
  requirements: []
322
- rubygems_version: 3.0.3
335
+ rubygems_version: 3.0.9
323
336
  signing_key:
324
337
  specification_version: 4
325
338
  summary: Webhook system
data/.travis.yml DELETED
@@ -1,22 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.8
4
- - 2.2.4
5
- - 2.3.0
6
- - 2.5.3
7
- - 2.6.3
8
-
9
- gemfile:
10
- - gemfiles/rails_4.gemfile
11
- - gemfiles/rails_5.gemfile
12
- - gemfiles/rails_5_2.gemfile
13
-
14
-
15
- matrix:
16
- exclude:
17
- - rvm: 2.1.8
18
- gemfile: gemfiles/rails_5.gemfile
19
- - rvm: 2.1.8
20
- gemfile: gemfiles/rails_5_2.gemfile
21
-
22
- script: "bundle exec rspec"
data/Appraisals DELETED
@@ -1,14 +0,0 @@
1
- appraise 'rails-4' do
2
- gem 'rails', '~> 4.2.11'
3
- gem 'sqlite3', '~> 1.3.6'
4
- end
5
-
6
- appraise 'rails-5' do
7
- gem 'rails', '~> 5.0.1'
8
- gem 'sqlite3', '~> 1.3.6'
9
- end
10
-
11
- appraise 'rails-5-2' do
12
- gem 'rails', '~> 5.2.1'
13
- gem 'sqlite3', '~> 1.4.1'
14
- end