solidus_webhooks 0.3.0 → 0.4.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
  SHA256:
3
- metadata.gz: '081615f05564d22cc05bc064b5593dbe09d2ec9342cae1b656fa909e6cf0bd53'
4
- data.tar.gz: 84cb7dfd9a491681f8e823747e5221159869946c5de0fa4427d338eff8a9b814
3
+ metadata.gz: f94eb7d8c956dd983b90ff8ab0d14fde3fbad148400e29222c8be84d403c1baa
4
+ data.tar.gz: fd828061690984b542190754621d8d9b86ba34ae89070f25db9f838a0de22c78
5
5
  SHA512:
6
- metadata.gz: 3a87662271d388322037918856a947ba390fc81cf4f6ddbfb46d6dde9910e527f3c4d8fa07da71f8abd1dd3680f8cf72c9cd1b684085b1b5a9e74bdf428389f2
7
- data.tar.gz: 73562c98cffb0857666f9f4dba5336918c807c983548ee4b9b8eee4034d9f8629ac2c38cc59687ca13c4c98dc8f60e6478a85ab174c4c2a0dc763bda65521bcd
6
+ metadata.gz: 37142b4bd06257070f31083a3a99a8594654c626e52e21d41b95f075c4f3a3adc2064cd9831f2c36de5500fa91805d763e5913ea07b9b7c184ac11f6bb6755a8
7
+ data.tar.gz: f4cb38e4f31a7e7e1c60603c79ccc96b35365b5309b35cd959ff29175f7368ca1f95cd16be32ebdd00a8eeeb92cde2c8d1f00287f2f3e6bab42d0a65987e482a
data/.rubocop.yml CHANGED
@@ -1,11 +1,28 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
1
  require:
4
2
  - solidus_dev_support/rubocop
5
3
 
6
4
  AllCops:
7
- NewCops: enable
5
+ NewCops: disable
8
6
  Exclude:
9
7
  - sandbox/**/*
10
8
  - spec/dummy/**/*
11
9
  - vendor/bundle/**/*
10
+
11
+
12
+ # This guys are troublemakers
13
+ RSpec/FactoryBot/CreateList:
14
+ Enabled: false
15
+ RSpec/Rails/HttpStatus:
16
+ Enabled: false
17
+
18
+ # Deviations from the standard
19
+ Style/ClassAndModuleChildren:
20
+ Enabled: false
21
+ Style/FrozenStringLiteralComment:
22
+ Enabled: false
23
+ RSpec/Capybara/FeatureMethods:
24
+ Enabled: false
25
+ RSpec/MultipleExpectations:
26
+ Enabled: false
27
+ RSpec/NamedSubject:
28
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.3.0](https://github.com/solidusio-contrib/solidus_webhooks/tree/v0.3.0) (2021-04-20)
4
+
5
+ [Full Changelog](https://github.com/solidusio-contrib/solidus_webhooks/compare/v0.3.0...v0.3.0)
6
+
7
+ **Closed issues:**
8
+
9
+ - Prepare Solidus Webhooks for Solidus 3.0 [\#8](https://github.com/solidusio-contrib/solidus_webhooks/issues/8)
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Allow Solidus 3 [\#10](https://github.com/solidusio-contrib/solidus_webhooks/pull/10) ([kennyadsl](https://github.com/kennyadsl))
14
+ - Reconcile master and v0.3.0 [\#7](https://github.com/solidusio-contrib/solidus_webhooks/pull/7) ([elia](https://github.com/elia))
15
+ - Bump solidus\_support to ~\> 0.6 [\#6](https://github.com/solidusio-contrib/solidus_webhooks/pull/6) ([peterberkenbosch](https://github.com/peterberkenbosch))
16
+
3
17
  ## [v0.3.0](https://github.com/solidusio-contrib/solidus_webhooks/tree/v0.3.0) (2020-10-20)
4
18
 
5
19
  [Full Changelog](https://github.com/solidusio-contrib/solidus_webhooks/compare/v0.2.0...v0.3.0)
data/README.md CHANGED
@@ -3,6 +3,8 @@
3
3
  [![CircleCI](https://circleci.com/gh/solidusio-contrib/solidus_webhooks.svg?style=shield)](https://circleci.com/gh/solidusio-contrib/solidus_webhooks)
4
4
  [![codecov](https://codecov.io/gh/solidusio-contrib/solidus_webhooks/branch/master/graph/badge.svg)](https://codecov.io/gh/solidusio-contrib/solidus_webhooks)
5
5
 
6
+ <!-- Explain what your extension does. -->
7
+
6
8
  ## Installation
7
9
 
8
10
  Add solidus_webhooks to your Gemfile:
@@ -19,6 +21,8 @@ bin/rails generate solidus_webhooks:install
19
21
 
20
22
  ## Usage
21
23
 
24
+ <!-- Explain how to use your extension once it's been installed. -->
25
+
22
26
  A Webhook receiver is just a callable and can be registered in the Solidus configuration as follows:
23
27
 
24
28
  ```ruby
@@ -188,17 +192,7 @@ git commit -m "Update the changelog"
188
192
 
189
193
  ### Releasing new versions
190
194
 
191
- Your new extension version can be released using `gem-release` like this:
192
-
193
- ```shell
194
- bundle exec gem bump -v 1.6.0
195
- bin/rake changelog
196
- git add CHANGELOG.md
197
- git commit --amend --no-edit
198
- gem tag
199
- git push --tags
200
- bundle exec gem release
201
- ```
195
+ Please refer to the dedicated [page](https://github.com/solidusio/solidus/wiki/How-to-release-extensions) on Solidus wiki.
202
196
 
203
197
  ## License
204
198
 
@@ -6,21 +6,3 @@ require 'solidus_support'
6
6
  require 'solidus_webhooks/configuration'
7
7
  require 'solidus_webhooks/version'
8
8
  require 'solidus_webhooks/engine'
9
-
10
- module SolidusWebhooks
11
- class << self
12
- def configuration
13
- @configuration ||= Configuration.new
14
- end
15
-
16
- alias config configuration
17
-
18
- def reset_config!
19
- @configuration = nil
20
- end
21
-
22
- def configure
23
- yield configuration
24
- end
25
- end
26
- end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'solidus_webhooks/errors'
2
4
 
3
5
  module SolidusWebhooks
@@ -19,4 +21,20 @@ module SolidusWebhooks
19
21
  @handlers[id.to_sym]
20
22
  end
21
23
  end
24
+
25
+ class << self
26
+ def configuration
27
+ @configuration ||= Configuration.new
28
+ end
29
+
30
+ alias config configuration
31
+
32
+ def reset_config!
33
+ @configuration = nil
34
+ end
35
+
36
+ def configure
37
+ yield configuration
38
+ end
39
+ end
22
40
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusWebhooks
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.metadata['source_code_uri'] = 'https://github.com/solidusio-contrib/solidus_webhooks'
17
17
  spec.metadata['changelog_uri'] = 'https://github.com/solidusio-contrib/solidus_webhooks/releases'
18
18
 
19
- spec.required_ruby_version = Gem::Requirement.new('~> 2.5')
19
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.5')
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
22
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -28,8 +28,8 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
- spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 3']
32
- spec.add_dependency 'solidus_support', '~> 0.5'
31
+ spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 4']
32
+ spec.add_dependency 'solidus_support', '~> 0.6'
33
33
 
34
- spec.add_development_dependency 'solidus_dev_support', '~> 2.1'
34
+ spec.add_development_dependency 'solidus_dev_support', '~> 2.2'
35
35
  end
@@ -16,14 +16,14 @@ RSpec.feature "Can register a handler and receive Webhooks", type: :request do
16
16
  let(:method_and_user_payloads) { [] }
17
17
 
18
18
  let(:proc_handler) { ->(payload) { proc_payloads << payload } }
19
- let(:method_handler) { Struct.new(:payloads) do
20
- def call(payload) payloads << payload end
21
- end.new(method_payloads) }
19
+ let(:method_handler) {
20
+ Struct.new(:payloads) { def call(payload) payloads << payload end }.new(method_payloads)
21
+ }
22
22
  let(:user_handler) { ->(payload, user) { user_payloads << [payload, user] } }
23
23
  let(:splat_handler) { ->(*args) { splat_payloads << args } }
24
- let(:method_and_user_handler) { Struct.new(:payloads) do
25
- def call(payload, user) payloads << payload end
26
- end.new(method_and_user_payloads) }
24
+ let(:method_and_user_handler) {
25
+ Struct.new(:payloads) { def call(payload, user) payloads << [payload, user] end }.new(method_and_user_payloads)
26
+ }
27
27
 
28
28
  let(:authorized_user) { create(:admin_user, spree_api_key: "123") }
29
29
  let(:authorized_token) { authorized_user.spree_api_key }
@@ -41,7 +41,7 @@ RSpec.feature "Can register a handler and receive Webhooks", type: :request do
41
41
  post "/webhooks/method?token=#{authorized_token}", as: :json, params: { c: 789 }
42
42
  expect(response).to have_http_status(:ok)
43
43
 
44
- post "/webhooks/user?token=#{authorized_token}", as: :json, params: { d: 012 }
44
+ post "/webhooks/user?token=#{authorized_token}", as: :json, params: { d: 12 }
45
45
  expect(response).to have_http_status(:ok)
46
46
 
47
47
  post "/webhooks/splat?token=#{authorized_token}", as: :json, params: { e: 345 }
@@ -52,9 +52,9 @@ RSpec.feature "Can register a handler and receive Webhooks", type: :request do
52
52
 
53
53
  expect(proc_payloads).to eq([{ 'a' => 123 }, { 'b' => 456 }])
54
54
  expect(method_payloads).to eq([{ 'c' => 789 }])
55
- expect(user_payloads).to eq([[{ 'd' => 012 }, authorized_user]])
55
+ expect(user_payloads).to eq([[{ 'd' => 12 }, authorized_user]])
56
56
  expect(splat_payloads).to eq([[{ 'e' => 345 }, authorized_user]])
57
- expect(method_and_user_payloads).to eq([{ 'f' => 678 }])
57
+ expect(method_and_user_payloads).to eq([[{ 'f' => 678 }, authorized_user]])
58
58
  end
59
59
 
60
60
  scenario "receives a bad handler id" do
@@ -4,7 +4,7 @@ RSpec.describe SolidusWebhooks::Configuration do
4
4
  describe '#register_webhook_handler' do
5
5
  it 'only accepts callable' do
6
6
  expect{ subject.register_webhook_handler(:foo, Object.new) }.to raise_error(SolidusWebhooks::InvalidHandler)
7
- expect{ subject.register_webhook_handler(:bar, Proc.new {}) }.not_to raise_error
7
+ expect{ subject.register_webhook_handler(:bar, proc {}) }.not_to raise_error
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_webhooks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elia Schito
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-20 00:00:00.000000000 Z
11
+ date: 2021-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 2.0.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '3'
22
+ version: '4'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,35 +29,35 @@ dependencies:
29
29
  version: 2.0.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '3'
32
+ version: '4'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: solidus_support
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.5'
39
+ version: '0.6'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.5'
46
+ version: '0.6'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: solidus_dev_support
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '2.1'
53
+ version: '2.2'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '2.1'
60
+ version: '2.2'
61
61
  description:
62
62
  email: contact@solidus.io
63
63
  executables: []
@@ -71,7 +71,6 @@ files:
71
71
  - ".gitignore"
72
72
  - ".rspec"
73
73
  - ".rubocop.yml"
74
- - ".rubocop_todo.yml"
75
74
  - CHANGELOG.md
76
75
  - Gemfile
77
76
  - LICENSE
@@ -89,7 +88,6 @@ files:
89
88
  - bin/rails-sandbox
90
89
  - bin/rake
91
90
  - bin/sandbox
92
- - bin/sandbox_rails
93
91
  - bin/setup
94
92
  - config/locales/en.yml
95
93
  - config/routes.rb
@@ -121,7 +119,7 @@ require_paths:
121
119
  - lib
122
120
  required_ruby_version: !ruby/object:Gem::Requirement
123
121
  requirements:
124
- - - "~>"
122
+ - - ">="
125
123
  - !ruby/object:Gem::Version
126
124
  version: '2.5'
127
125
  required_rubygems_version: !ruby/object:Gem::Requirement
data/.rubocop_todo.yml DELETED
@@ -1,107 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2020-10-19 16:38:34 UTC using RuboCop version 0.93.1.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 6
10
- # Cop supports --auto-correct.
11
- # Configuration parameters: EnabledMethods.
12
- Capybara/FeatureMethods:
13
- Exclude:
14
- - 'spec/features/can_register_a_handler_and_receive_webhooks_spec.rb'
15
-
16
- # Offense count: 2
17
- # Cop supports --auto-correct.
18
- Layout/BlockEndNewline:
19
- Exclude:
20
- - 'spec/features/can_register_a_handler_and_receive_webhooks_spec.rb'
21
-
22
- # Offense count: 2
23
- # Cop supports --auto-correct.
24
- Layout/MultilineBlockLayout:
25
- Exclude:
26
- - 'spec/features/can_register_a_handler_and_receive_webhooks_spec.rb'
27
-
28
- # Offense count: 2
29
- # Cop supports --auto-correct.
30
- # Configuration parameters: EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
31
- # SupportedStyles: space, no_space
32
- # SupportedStylesForEmptyBraces: space, no_space
33
- Layout/SpaceInsideBlockBraces:
34
- EnforcedStyle: space
35
-
36
- # Offense count: 30
37
- # Cop supports --auto-correct.
38
- # Configuration parameters: EnforcedStyleForEmptyBraces.
39
- # SupportedStyles: space, no_space, compact
40
- # SupportedStylesForEmptyBraces: space, no_space
41
- Layout/SpaceInsideHashLiteralBraces:
42
- EnforcedStyle: space
43
-
44
- # Offense count: 1
45
- # Cop supports --auto-correct.
46
- Lint/RedundantCopDisableDirective:
47
- Exclude:
48
- - 'bin/sandbox_rails'
49
-
50
- # Offense count: 1
51
- # Cop supports --auto-correct.
52
- # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
53
- Lint/UnusedMethodArgument:
54
- Exclude:
55
- - 'spec/features/can_register_a_handler_and_receive_webhooks_spec.rb'
56
-
57
- # Offense count: 3
58
- RSpec/MultipleExpectations:
59
- Max: 11
60
-
61
- # Offense count: 1
62
- # Configuration parameters: AllowSubject.
63
- RSpec/MultipleMemoizedHelpers:
64
- Max: 14
65
-
66
- # Offense count: 2
67
- # Configuration parameters: IgnoreSharedExamples.
68
- RSpec/NamedSubject:
69
- Exclude:
70
- - 'spec/solidus_webhooks/configuration_spec.rb'
71
-
72
- # Offense count: 2
73
- # Cop supports --auto-correct.
74
- # Configuration parameters: EnforcedStyle.
75
- # SupportedStyles: nested, compact
76
- Style/ClassAndModuleChildren:
77
- Exclude:
78
- - 'app/controllers/spree/webhooks_controller.rb'
79
- - 'app/models/spree/webhook.rb'
80
-
81
- # Offense count: 4
82
- # Cop supports --auto-correct.
83
- # Configuration parameters: EnforcedStyle.
84
- # SupportedStyles: always, always_true, never
85
- Style/FrozenStringLiteralComment:
86
- Exclude:
87
- - 'spec/**/*'
88
- - 'db/migrate/**/*'
89
- - 'bin/**/*'
90
- - 'app/controllers/spree/webhooks_controller.rb'
91
- - 'app/models/spree/webhook.rb'
92
- - 'lib/solidus_webhooks/configuration.rb'
93
- - 'lib/solidus_webhooks/errors.rb'
94
-
95
- # Offense count: 2
96
- # Cop supports --auto-correct.
97
- # Configuration parameters: EnforcedOctalStyle.
98
- # SupportedOctalStyles: zero_with_o, zero_only
99
- Style/NumericLiteralPrefix:
100
- Exclude:
101
- - 'spec/features/can_register_a_handler_and_receive_webhooks_spec.rb'
102
-
103
- # Offense count: 1
104
- # Cop supports --auto-correct.
105
- Style/Proc:
106
- Exclude:
107
- - 'spec/solidus_webhooks/configuration_spec.rb'
data/bin/sandbox_rails DELETED
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # frozen_string_literal: true
4
-
5
- app_root = 'sandbox'
6
-
7
- unless File.exist? "#{app_root}/bin/rails"
8
- warn 'Creating the sandbox app...'
9
- Dir.chdir "#{__dir__}/.." do
10
- system "#{__dir__}/sandbox" or begin # rubocop:disable Style/AndOr
11
- warn 'Automatic creation of the sandbox app failed'
12
- exit 1
13
- end
14
- end
15
- end
16
-
17
- Dir.chdir app_root
18
- exec 'bin/rails', *ARGV