webhook_system 2.4.0 → 2.4.1

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: afdbd7185d9cb4993052c2c5f7435d8b469f2d2623d31b63aadcd6aefd3e3c71
4
- data.tar.gz: 05c32f9c6392d3fd9d3d9adf41fa8e21b21dafc8b87a9efd9b4236bf87137fbb
3
+ metadata.gz: de4c38dac5024e7faf9075fa7d08458c23742609626569b61c376c941ba701d0
4
+ data.tar.gz: 80aec1c6d60554d14e54e4e922e6389aa0dec26bced551bec63c0aa684ae3886
5
5
  SHA512:
6
- metadata.gz: 66c102424aae48aa1d133abf5cd88c5233227e1c6b3604bf0c89558736d361c376b2c046e73031bdf5f0a3689c128e26188eae4188961ec476b410cf6f4da061
7
- data.tar.gz: d03f803f206adcc70022a603b9ef02ba9a634e238924fd2a4b6cdf2c003e21c0783e4182ab09d9c5c326e727b64274eeb48bc9e7fc9b241bcf8e25740492e4bc
6
+ metadata.gz: 55b2362374a9683a4c920b507d68e0c70b1c79aad11003315a6fae1bb417cfa568cde6621418dffc196f8ffb1863f82edd01fda9591e6c9bfcd8679b67d0e0ea
7
+ data.tar.gz: 3d03fe8f357631ff856a09c50b98fea1cb5096954413283d5367f5be6eda5c20f3cddf60f870e9f4ccdbe073d707c61a2ccd0716f555929246f33f8ed0792e74
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: github
@@ -5,9 +5,11 @@
5
5
  # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
6
  # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
7
 
8
- name: build
8
+ name: ci
9
9
 
10
- on: [push, pull_request]
10
+ on:
11
+ - push
12
+ - pull_request
11
13
 
12
14
  jobs:
13
15
  test:
@@ -15,42 +17,35 @@ jobs:
15
17
  strategy:
16
18
  fail-fast: false
17
19
  matrix:
18
- gemfile: ["rails_7.0"]
19
- ruby: [2.7]
20
+ gemfile: ['rails_7.0', 'rails_7.1']
21
+ ruby: [3.3, 3.2, 3.1]
20
22
  include:
21
23
  - gemfile: rails_7.0
22
- ruby: '3.1'
23
- - gemfile: rails_6.1
24
- ruby: '3.1'
25
- - gemfile: rails_7.0
26
- ruby: '3.0'
27
- - gemfile: rails_6.1
28
24
  ruby: '3.0'
29
- - gemfile: rails_6.1
25
+ - gemfile: rails_7.0
30
26
  ruby: 2.7
31
27
  - gemfile: rails_6.1
32
- ruby: 2.6
33
- - gemfile: rails_6.0
34
28
  ruby: 2.7
35
29
  - gemfile: rails_6.0
36
- ruby: 2.6
30
+ ruby: 2.7
37
31
  - gemfile: rails_5.2
38
- ruby: 2.6
32
+ ruby: 2.7
39
33
  - gemfile: rails_5.1
40
- ruby: 2.6
34
+ ruby: 2.7
41
35
  - gemfile: rails_5.0
42
- ruby: 2.6
43
- - gemfile: rails_4.2
44
- ruby: 2.6
45
- - gemfile: rails_4.2
46
- ruby: 2.5
36
+ ruby: 2.7
47
37
 
48
38
  env:
49
39
  BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
40
+ CI: true
41
+ COVERALLS_REPO_TOKEN: izk0cvqAVqD2Vdews2UjsnOZHLgzocyQL
50
42
  steps:
51
43
  - uses: actions/checkout@v2
52
44
  - uses: ruby/setup-ruby@v1
53
45
  with:
54
46
  ruby-version: ${{ matrix.ruby }}
55
47
  bundler-cache: true
56
- - run: bundle exec rake
48
+ - name: RSpec and Rubocop
49
+ run: |
50
+ bundle exec rubocop -c .rubocop.yml
51
+ bundle exec rspec
@@ -23,4 +23,4 @@ jobs:
23
23
  - name: Create RuboCop challenge pull request
24
24
  env:
25
25
  GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26
- run: bundle exec rubocop_challenger go --base-branch=master --email=rubocop-challenger@example.com --name="Rubocop Challenger"
26
+ run: bundle exec rubocop_challenger go --exclude-limit=180 --base-branch=master --email=rubocop@payrollhero.com --name="Rubocop Challenger" --mode=random
data/.rubocop.yml CHANGED
@@ -1,12 +1,30 @@
1
+ require:
2
+ - rubocop-rails
3
+ - rubocop-rspec
4
+ - rubocop-performance
5
+
1
6
  inherit_from:
2
7
  - .rubocop_todo.yml
3
- - .rubocop.hound.yml
8
+
9
+ Rails:
10
+ Enabled: true
4
11
 
5
12
  AllCops:
6
13
  NewCops: enable
7
14
  Exclude:
8
15
  - '*.gemspec'
9
16
  - 'Gemfile'
17
+ - vendor/bundle/ruby/**/*
18
+
19
+ RSpec/NotToNot:
20
+ SupportedStyles: to_not
21
+ # disable because an error is being raised
22
+ Enabled: false
23
+
24
+ Style/TrailingCommaInArrayLiteral:
25
+ EnforcedStyleForMultiline: consistent_comma
26
+ Style/TrailingCommaInHashLiteral:
27
+ EnforcedStyleForMultiline: consistent_comma
10
28
 
11
29
  Style/Lambda:
12
30
  Enabled: false
@@ -55,3 +73,24 @@ Metrics/AbcSize:
55
73
  conditions.
56
74
  Enabled: true
57
75
  Max: 30
76
+
77
+ Metrics/BlockLength:
78
+ Max: 25
79
+ AllowedMethods:
80
+ - context
81
+ - describe
82
+ - define
83
+
84
+ Rails/RakeEnvironment:
85
+ Exclude:
86
+ - 'Rakefile'
87
+
88
+ Rails/ApplicationJob:
89
+ Exclude:
90
+ - 'lib/webhook_system/job.rb'
91
+
92
+ Rails/ApplicationRecord:
93
+ Exclude:
94
+ - 'lib/webhook_system/event_log.rb'
95
+ - 'lib/webhook_system/subscription.rb'
96
+ - 'lib/webhook_system/subscription_topic.rb'
@@ -0,0 +1,4 @@
1
+ ---
2
+ Ignore:
3
+ - Style/RegexpLiteral
4
+
data/.rubocop_todo.yml CHANGED
@@ -1,61 +1,29 @@
1
1
  # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2022-04-27 12:05:35 UTC using RuboCop version 1.28.2.
2
+ # `rubocop --auto-gen-config --exclude-limit 180`
3
+ # on 2023-10-30 03:57:18 UTC using RuboCop version 1.57.2.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
9
  # Offense count: 1
10
- # This cop supports safe auto-correction (--auto-correct).
10
+ # This cop supports safe autocorrection (--autocorrect).
11
11
  # Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
12
12
  # Include: **/*.gemfile, **/Gemfile, **/gems.rb
13
13
  Bundler/OrderedGems:
14
14
  Exclude:
15
- - 'gemfiles/rails_6.1.gemfile'
15
+ - 'gemfiles/rails_7.1.gemfile'
16
16
 
17
17
  # Offense count: 1
18
- # This cop supports safe auto-correction (--auto-correct).
19
- # Configuration parameters: EnforcedStyle.
20
- # SupportedStyles: empty_lines, no_empty_lines
21
- Layout/EmptyLinesAroundBlockBody:
22
- Exclude:
23
- - 'spec/encoder_spec.rb'
24
-
25
- # Offense count: 2
26
- # This cop supports safe auto-correction (--auto-correct).
27
- # Configuration parameters: EnforcedStyle.
28
- # SupportedStyles: space, no_space
29
- Layout/SpaceAroundEqualsInParameterDefault:
30
- Exclude:
31
- - 'lib/webhook_system/base_event.rb'
32
- - 'lib/webhook_system/job.rb'
33
-
34
- # Offense count: 1
35
- # This cop supports safe auto-correction (--auto-correct).
36
- # Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
37
- # SupportedStylesForExponentOperator: space, no_space
38
- Layout/SpaceAroundOperators:
18
+ # This cop supports unsafe autocorrection (--autocorrect-all).
19
+ # Configuration parameters: AllowSafeAssignment.
20
+ Lint/AssignmentInCondition:
39
21
  Exclude:
40
22
  - 'lib/webhook_system/subscription.rb'
41
23
 
42
- # Offense count: 2
43
- # This cop supports safe auto-correction (--auto-correct).
44
- # Configuration parameters: EnforcedStyle.
45
- # SupportedStyles: require_no_space, require_space
46
- Layout/SpaceInLambdaLiteral:
47
- Exclude:
48
- - 'lib/webhook_system/subscription.rb'
49
-
50
- # Offense count: 2
51
- # This cop supports safe auto-correction (--auto-correct).
52
- Lint/DeprecatedOpenSSLConstant:
53
- Exclude:
54
- - 'lib/webhook_system/encoder.rb'
55
-
56
24
  # Offense count: 1
57
- # This cop supports unsafe auto-correction (--auto-correct-all).
58
- Lint/NonDeterministicRequireOrder:
25
+ # This cop supports unsafe autocorrection (--autocorrect-all).
26
+ Lint/RedundantDirGlobSort:
59
27
  Exclude:
60
28
  - 'spec/spec_helper.rb'
61
29
 
@@ -64,114 +32,183 @@ Lint/UnreachableCode:
64
32
  Exclude:
65
33
  - 'lib/webhook_system/job.rb'
66
34
 
67
- # Offense count: 11
68
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
69
- # IgnoredMethods: refine
70
- Metrics/BlockLength:
71
- Max: 112
35
+ # Offense count: 3
36
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
37
+ Metrics/MethodLength:
38
+ Max: 18
72
39
 
73
40
  # Offense count: 1
74
41
  # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
75
- # AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
42
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
76
43
  Naming/MethodParameterName:
77
44
  Exclude:
78
45
  - 'lib/webhook_system/encoder.rb'
79
46
 
80
47
  # Offense count: 1
81
- # This cop supports safe auto-correction (--auto-correct).
48
+ # This cop supports safe autocorrection (--autocorrect).
82
49
  # Configuration parameters: PreferredName.
83
50
  Naming/RescuedExceptionsVariableName:
84
51
  Exclude:
85
- - 'lib/webhook_system/job.rb'
52
+ - 'spec/support/rails_seven_one.rb'
86
53
 
87
- # Offense count: 2
88
- # This cop supports safe auto-correction (--auto-correct).
89
- Security/JSONLoad:
54
+ # Offense count: 9
55
+ # Configuration parameters: Prefixes, AllowedPatterns.
56
+ # Prefixes: when, with, without
57
+ RSpec/ContextWording:
90
58
  Exclude:
91
- - 'lib/webhook_system/encoder.rb'
59
+ - 'spec/encoder_spec.rb'
60
+ - 'spec/event_log_spec.rb'
61
+ - 'spec/event_spec.rb'
92
62
 
93
63
  # Offense count: 1
94
- # This cop supports safe auto-correction (--auto-correct).
95
- Style/FileWrite:
64
+ # Configuration parameters: IgnoredMetadata.
65
+ RSpec/DescribeClass:
96
66
  Exclude:
97
- - 'Rakefile'
67
+ - 'spec/dispatching_events_spec.rb'
98
68
 
99
- # This cop supports safe auto-correction (--auto-correct).
100
- # Configuration parameters: EnforcedStyle.
101
- # SupportedStyles: literals, strict
102
- Style/MutableConstant:
69
+ # Offense count: 7
70
+ # Configuration parameters: CountAsOne.
71
+ RSpec/ExampleLength:
72
+ Max: 24
73
+
74
+ # Offense count: 4
75
+ # Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
76
+ # Include: **/*_spec*rb*, **/spec/**/*
77
+ RSpec/FilePath:
103
78
  Exclude:
104
- - 'lib/webhook_system/subscription.rb'
79
+ - 'spec/encoder_spec.rb'
80
+ - 'spec/event_log_spec.rb'
81
+ - 'spec/event_spec.rb'
82
+ - 'spec/models_spec.rb'
105
83
 
106
- # Offense count: 1
107
- # This cop supports unsafe auto-correction (--auto-correct-all).
108
- # Configuration parameters: EnforcedStyle, IgnoredMethods.
109
- # SupportedStyles: predicate, comparison
110
- Style/NumericPredicate:
84
+ # Offense count: 11
85
+ # Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
86
+ RSpec/IndexedLet:
111
87
  Exclude:
112
- - 'spec/**/*'
113
- - 'lib/webhook_system/job.rb'
88
+ - 'spec/dispatching_events_spec.rb'
89
+ - 'spec/encoder_spec.rb'
90
+ - 'spec/event_spec.rb'
91
+ - 'spec/integration_spec.rb'
92
+ - 'spec/models_spec.rb'
114
93
 
115
- # Offense count: 1
116
- # This cop supports safe auto-correction (--auto-correct).
117
- Style/Proc:
94
+ # Offense count: 3
95
+ RSpec/LetSetup:
118
96
  Exclude:
119
- - 'lib/webhook_system/subscription.rb'
97
+ - 'spec/dispatching_events_spec.rb'
98
+ - 'spec/integration_spec.rb'
120
99
 
121
- # Offense count: 1
122
- # This cop supports safe auto-correction (--auto-correct).
123
- Style/RedundantSelf:
100
+ # Offense count: 3
101
+ # This cop supports safe autocorrection (--autocorrect).
102
+ RSpec/MatchArray:
124
103
  Exclude:
125
- - 'lib/webhook_system/base_event.rb'
104
+ - 'spec/models_spec.rb'
126
105
 
127
- # Offense count: 1
128
- # This cop supports safe auto-correction (--auto-correct).
129
- # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
130
- # SupportedStyles: slashes, percent_r, mixed
131
- Style/RegexpLiteral:
106
+ # Offense count: 10
107
+ # This cop supports safe autocorrection (--autocorrect).
108
+ # Configuration parameters: EnforcedStyle.
109
+ # SupportedStyles: hash, symbol
110
+ RSpec/MetadataStyle:
132
111
  Exclude:
133
112
  - 'spec/dispatching_events_spec.rb'
113
+ - 'spec/encoder_spec.rb'
114
+ - 'spec/event_log_spec.rb'
115
+ - 'spec/event_spec.rb'
116
+ - 'spec/integration_spec.rb'
117
+ - 'spec/models_spec.rb'
118
+ - 'spec/spec_helper.rb'
119
+
120
+ # Offense count: 15
121
+ # Configuration parameters: AllowSubject.
122
+ RSpec/MultipleMemoizedHelpers:
123
+ Max: 8
124
+
125
+ # Offense count: 9
126
+ # Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
127
+ # SupportedStyles: always, named_only
128
+ RSpec/NamedSubject:
129
+ Exclude:
130
+ - 'spec/event_log_spec.rb'
131
+
132
+ # Offense count: 3
133
+ # Configuration parameters: AllowedGroups.
134
+ RSpec/NestedGroups:
135
+ Max: 4
136
+
137
+ # Offense count: 3
138
+ # This cop supports safe autocorrection (--autocorrect).
139
+ RSpec/ScatteredSetup:
140
+ Exclude:
141
+ - 'spec/models_spec.rb'
142
+
143
+ # Offense count: 4
144
+ # Configuration parameters: Include, CustomTransform, IgnoreMethods, IgnoreMetadata.
145
+ # Include: **/*_spec.rb
146
+ RSpec/SpecFilePathFormat:
147
+ Exclude:
148
+ - 'spec/encoder_spec.rb'
149
+ - 'spec/event_log_spec.rb'
150
+ - 'spec/event_spec.rb'
151
+ - 'spec/models_spec.rb'
134
152
 
135
153
  # Offense count: 2
136
- # This cop supports safe auto-correction (--auto-correct).
137
- Style/StderrPuts:
154
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
155
+ RSpec/VerifiedDoubles:
138
156
  Exclude:
139
- - 'Rakefile'
157
+ - 'spec/event_log_spec.rb'
140
158
 
141
159
  # Offense count: 1
142
- # This cop supports unsafe auto-correction (--auto-correct-all).
143
- # Configuration parameters: Mode.
144
- Style/StringConcatenation:
160
+ # This cop supports unsafe autocorrection (--autocorrect-all).
161
+ Rails/RedundantPresenceValidationOnBelongsTo:
145
162
  Exclude:
163
+ - 'lib/webhook_system/event_log.rb'
164
+
165
+ # Offense count: 3
166
+ # Configuration parameters: AllowedConstants.
167
+ Style/Documentation:
168
+ Exclude:
169
+ - 'lib/webhook_system.rb'
146
170
  - 'lib/webhook_system/encoder.rb'
171
+ - 'lib/webhook_system/subscription_topic.rb'
172
+ - 'spec/support/rails_seven_one.rb'
147
173
 
148
- # Offense count: 4
149
- # This cop supports safe auto-correction (--auto-correct).
150
- # Configuration parameters: MinSize.
151
- # SupportedStyles: percent, brackets
152
- Style/SymbolArray:
153
- EnforcedStyle: brackets
174
+ # Offense count: 1
175
+ # This cop supports safe autocorrection (--autocorrect).
176
+ Style/MultilineIfModifier:
177
+ Exclude:
178
+ - 'spec/support/rails_seven_one.rb'
154
179
 
155
- # Offense count: 3
156
- # This cop supports safe auto-correction (--auto-correct).
157
- # Configuration parameters: EnforcedStyleForMultiline.
158
- # SupportedStylesForMultiline: comma, consistent_comma, no_comma
159
- Style/TrailingCommaInArrayLiteral:
180
+ # Offense count: 1
181
+ # This cop supports safe autocorrection (--autocorrect).
182
+ # Configuration parameters: EnforcedStyle, AllowedCompactTypes.
183
+ # SupportedStyles: compact, exploded
184
+ Style/RaiseArgs:
185
+ Exclude:
186
+ - 'spec/support/rails_seven_one.rb'
187
+
188
+ # Offense count: 1
189
+ # This cop supports safe autocorrection (--autocorrect).
190
+ Style/RedundantConstantBase:
160
191
  Exclude:
161
- - 'spec/dispatching_events_spec.rb'
162
192
  - 'spec/event_spec.rb'
163
- - 'spec/integration_spec.rb'
164
193
 
165
- # Offense count: 14
166
- # This cop supports safe auto-correction (--auto-correct).
167
- # Configuration parameters: EnforcedStyleForMultiline.
168
- # SupportedStylesForMultiline: comma, consistent_comma, no_comma
169
- Style/TrailingCommaInHashLiteral:
194
+ # Offense count: 1
195
+ # This cop supports safe autocorrection (--autocorrect).
196
+ Style/RedundantFreeze:
170
197
  Exclude:
171
- - 'lib/webhook_system/base_event.rb'
172
- - 'lib/webhook_system/encoder.rb'
173
- - 'lib/webhook_system/event_log.rb'
174
198
  - 'lib/webhook_system/subscription.rb'
175
- - 'spec/encoder_spec.rb'
176
- - 'spec/event_spec.rb'
177
- - 'spec/integration_spec.rb'
199
+
200
+ # Offense count: 1
201
+ # This cop supports safe autocorrection (--autocorrect).
202
+ # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
203
+ # SupportedStyles: slashes, percent_r, mixed
204
+ Style/RegexpLiteral:
205
+ Exclude:
206
+ - 'spec/dispatching_events_spec.rb'
207
+
208
+ # Offense count: 1
209
+ # This cop supports safe autocorrection (--autocorrect).
210
+ # Configuration parameters: EnforcedStyle.
211
+ # SupportedStyles: implicit, explicit
212
+ Style/RescueStandardError:
213
+ Exclude:
214
+ - 'spec/support/rails_seven_one.rb'
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
- gem 'pr_comet', git: 'https://github.com/mathieujobin/pr_comet', branch: 'git-status'
3
2
 
4
3
  gemspec
data/Rakefile CHANGED
@@ -20,23 +20,21 @@ task :styleguide do
20
20
  require 'faraday'
21
21
  require 'pry'
22
22
  base = "https://raw.githubusercontent.com/payrollhero/styleguide/master/"
23
- files = %w{
23
+ files = %w[
24
24
  .rubocop.hound.yml
25
25
  .rubocop.yml
26
26
  .codeclimate.yml
27
- }
27
+ ]
28
28
  files.each do |file|
29
29
  puts "Fetching #{file} ..."
30
30
  url = "#{base}#{file}"
31
31
  rsp = Faraday.get(url)
32
32
  unless rsp.status == 200
33
- $stderr.puts "failing fetching: #{url}"
34
- $stderr.puts " response: #{rsp.status}: #{rsp.body}"
33
+ warn "failing fetching: #{url}"
34
+ warn " response: #{rsp.status}: #{rsp.body}"
35
35
  exit 1
36
36
  end
37
- File.open(file, "w") do |fh|
38
- fh.write(rsp.body)
39
- end
37
+ File.write(file, rsp.body)
40
38
  end
41
39
  end
42
40
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ gem "minitest"
5
6
  gem "rails", "~> 6.1.4"
6
7
  gem "sqlite3"
7
- gem "minitest"
8
8
 
9
9
  gemspec path: "../"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  gem "rails", "~> 7.0.2"
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "active_attr", "~> 0.16" # git: "https://github.com/mathieujobin/active_attr", branch: "rails-7.1-support"
6
+ gem "rails", "~> 7.1.1"
7
+ gem "sqlite3"
8
+
9
+ gemspec path: "../"
@@ -14,13 +14,17 @@ module WebhookSystem
14
14
  attr_reader :event_id
15
15
 
16
16
  def event_name
17
+ # :nocov:
17
18
  mesg = "class #{self.class.name} must implement abstract method `#{self.class.name}#event_name()'."
18
19
  raise with_caller_backtrace(RuntimeError.new(mesg), 2)
20
+ # :nocov:
19
21
  end
20
22
 
21
23
  def payload_attributes
24
+ # :nocov:
22
25
  mesg = "class #{self.class.name} must implement abstract method `#{self.class.name}#payload_attributes()'."
23
26
  raise with_caller_backtrace(RuntimeError.new(mesg), 2)
27
+ # :nocov:
24
28
  end
25
29
 
26
30
  def as_json
@@ -36,25 +40,28 @@ module WebhookSystem
36
40
  end
37
41
 
38
42
  def self.key_is_reserved?(key)
39
- key.to_s.in? %w(event event_id)
43
+ key.to_s.in? %w[event event_id]
40
44
  end
41
45
 
42
46
  def self.dispatch(args)
43
- WebhookSystem::Subscription.global.dispatch self.build(args)
47
+ WebhookSystem::Subscription.global.dispatch build(args)
44
48
  end
45
49
 
46
50
  private
47
51
 
48
- def with_caller_backtrace(exception, backtrack=2)
49
- exception.set_backtrace(caller[backtrack..-1])
52
+ def with_caller_backtrace(exception, backtrack = 2)
53
+ # :nocov:
54
+ exception.set_backtrace(caller[backtrack..])
50
55
  exception
56
+ # :nocov:
51
57
  end
52
58
 
53
59
  def validate_attribute_name(key)
54
- if self.class.key_is_reserved?(key)
55
- message = "#{self.class.name} should not be defining an attribute named #{key} since its reserved"
56
- raise ArgumentError, message
57
- end
60
+ return unless self.class.key_is_reserved?(key)
61
+
62
+ message = "#{self.class.name} should not be defining an attribute named #{key} since its reserved"
63
+ raise ArgumentError, message
64
+
58
65
  end
59
66
 
60
67
  def each_attribute(&block)
@@ -66,7 +73,9 @@ module WebhookSystem
66
73
  when Hash
67
74
  payload_attributes.each(&block)
68
75
  else
76
+ # :nocov:
69
77
  raise ArgumentError, "don't know how to deal with payload_attributes: #{payload_attributes.inspect}"
78
+ # :nocov:
70
79
  end
71
80
  end
72
81
  end
@@ -28,9 +28,7 @@ module WebhookSystem
28
28
  format = format_for_content_type(headers.fetch('Content-Type'))
29
29
 
30
30
  payload_signature = hub_signature(payload_string, secret_string)
31
- if signature && signature != payload_signature
32
- raise DecodingError, 'signature mismatch'
33
- end
31
+ raise DecodingError, 'signature mismatch' if signature && signature != payload_signature
34
32
 
35
33
  Payload.decode(payload_string, secret: secret_string, format: format)
36
34
  end
@@ -41,7 +39,7 @@ module WebhookSystem
41
39
  def content_type_format_map
42
40
  {
43
41
  'base64+aes256' => 'application/json; base64+aes256',
44
- 'json' => 'application/json'
42
+ 'json' => 'application/json',
45
43
  }
46
44
  end
47
45
 
@@ -54,7 +52,7 @@ module WebhookSystem
54
52
  end
55
53
 
56
54
  def hub_signature(payload_string, secret)
57
- 'sha1=' + OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), secret, payload_string)
55
+ "sha1=#{OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), secret, payload_string)}"
58
56
  end
59
57
  end
60
58
  end
@@ -73,7 +71,7 @@ module WebhookSystem
73
71
  end
74
72
 
75
73
  def decode(response_body, secret:, format:)
76
- payload = JSON.load(response_body)
74
+ payload = JSON.parse(response_body)
77
75
 
78
76
  case format
79
77
  when 'base64+aes256'
@@ -88,7 +86,7 @@ module WebhookSystem
88
86
  private
89
87
 
90
88
  def encode_aes(payload, secret)
91
- cipher = OpenSSL::Cipher::AES256.new(:CBC)
89
+ cipher = OpenSSL::Cipher.new('aes-256-cbc')
92
90
  cipher.encrypt
93
91
  iv = cipher.random_iv
94
92
  cipher.key = key_from_secret(iv, secret)
@@ -105,13 +103,13 @@ module WebhookSystem
105
103
  encoded = Base64.decode64(payload['payload'])
106
104
  iv = Base64.decode64(payload['iv'])
107
105
 
108
- cipher = OpenSSL::Cipher::AES256.new(:CBC)
106
+ cipher = OpenSSL::Cipher.new('aes-256-cbc')
109
107
  cipher.decrypt
110
108
  cipher.iv = iv
111
109
  cipher.key = key_from_secret(iv, secret)
112
110
  decoded = cipher.update(encoded) + cipher.final
113
111
 
114
- JSON.load(decoded)
112
+ JSON.parse(decoded)
115
113
  rescue OpenSSL::Cipher::CipherError
116
114
  raise DecodingError, 'Decoding Failed, probably mismatched secret'
117
115
  end