use_case_pattern 1.0.2 → 1.0.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
- SHA1:
3
- metadata.gz: f74c46a1d5c18649404532a86ea70c7ba63dde0d
4
- data.tar.gz: e1046c5314c1dab0b4c04e08a585e5c2da881ad2
2
+ SHA256:
3
+ metadata.gz: ef2111b93b4eecb2f180089ccbf385065b8c06bd18b70563fae574541e86d8e8
4
+ data.tar.gz: 1a314d56a065a398b4ad5043f58a05f3383ac071ff6c17b2e93e4bc6c0575f85
5
5
  SHA512:
6
- metadata.gz: e42a61577dea606c5f1fae60e3d27468b186b82a56553dfed439c6f0bafafc51ee7413299bb8a4e0ac83cac291cef64e8cb67b00bf3417a2a63804155d4c3593
7
- data.tar.gz: 7193bd695b9f59cff1cf3584152e8cf2a741aa81b41e6356e792892f3dfacce07102e6e466bd71cefc52bd4473cf50d55fa63d76e9ce3eb85b14fd0f47fb1ecb
6
+ metadata.gz: 5b9e7b6a74a22f0e123253e82a3275486d98b8660c41b552d5b9e78efde8567f4b468d056741d6a1c1049af3729cbb73728d10d3004a105e83fe6537eb41cf12
7
+ data.tar.gz: ab9156f09ba1c4adb83be4939cfb68099af1c46bfd26412ca2e87144a5809a1a61f395fd05fab8f1819bc1e765c18ac953433a4e0297d6ae132f266654a5eb8f
@@ -1,6 +1,9 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.2.5
5
- - 2.3.1
6
- before_install: gem install bundler -v 1.13.1
4
+ - 2.3
5
+ - 2.4
6
+ - 2.5
7
+ - 2.6
8
+ - 2.7
9
+ before_install: gem install bundler -v 2.1.4
@@ -1,3 +1,9 @@
1
+ # AddressFinder 1.0.3 (May 27, 2020)
2
+
3
+ * Add support for Ruby 2.7
4
+ * Drop support for Ruby 2.2
5
+ * Ruby 2.7 deprecated the use of hashes in the last argument of a method call. We added a check to handle that deprecation. Read more here: https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
6
+
1
7
  # AddressFinder 1.0.2 (November 22, 2016) #
2
8
 
3
9
  * Raise a ValidationError when #perform! fails rather that call the Rails 5
@@ -9,7 +9,7 @@ module UseCasePattern
9
9
  module ClassMethods
10
10
  # The perform method of a UseCase should always return itself
11
11
  def perform(*args)
12
- new(*args).tap do |use_case|
12
+ use_case(*args).tap do |use_case|
13
13
  if use_case.valid?
14
14
  use_case.perform
15
15
  end
@@ -18,7 +18,20 @@ module UseCasePattern
18
18
 
19
19
  # Raise a validation error if perform has created any errors
20
20
  def perform!(*args)
21
- new(*args).tap { |use_case| use_case.perform! }
21
+ use_case(*args).tap { |use_case| use_case.perform! }
22
+ end
23
+
24
+ private
25
+
26
+ # initialises the use_case, making sure that any keyword arguments are
27
+ # dealt with appropriately: https://piechowski.io/post/last-arg-keyword-deprecated-ruby-2-7/
28
+ def use_case(*args)
29
+ if args.last.is_a?(Hash)
30
+ keyword_arguments = args.pop
31
+ new(*args, **keyword_arguments)
32
+ else
33
+ new(*args)
34
+ end
22
35
  end
23
36
  end
24
37
 
@@ -1,3 +1,3 @@
1
1
  module UseCasePattern
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -20,12 +20,12 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.required_ruby_version = '~> 2.2'
23
+ spec.required_ruby_version = '~> 2.3'
24
24
 
25
25
  spec.add_runtime_dependency "activemodel", [">= 4.0.0"]
26
26
  spec.add_runtime_dependency "activesupport", [">= 4.0.0"]
27
27
 
28
- spec.add_development_dependency "bundler", "~> 1.13"
28
+ spec.add_development_dependency "bundler", "~> 2.1.4"
29
29
  spec.add_development_dependency "rake", "~> 10.0"
30
30
  spec.add_development_dependency "rspec", "~> 3.0"
31
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: use_case_pattern
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nigel Ramsay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-21 00:00:00.000000000 Z
11
+ date: 2020-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.13'
47
+ version: 2.1.4
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.13'
54
+ version: 2.1.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -114,15 +114,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '2.2'
117
+ version: '2.3'
118
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  requirements:
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  requirements: []
124
- rubyforge_project:
125
- rubygems_version: 2.5.1
124
+ rubygems_version: 3.1.2
126
125
  signing_key:
127
126
  specification_version: 4
128
127
  summary: A module that helps you to implement the Use Case design pattern