injectable 2.1.5 → 2.1.6

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: d4194ff7ca30b5d6507dd4078dd8ce98419449de63cee671806eac29e02063cd
4
- data.tar.gz: 4a6c7caf431d6de1ede6d28607a2ee6ab2f6f120b0618ed16f939c054710b04b
3
+ metadata.gz: '0769ae55179a7a487afec317c90c9a4055ecdf5c11d0508bb7a945783a1175eb'
4
+ data.tar.gz: 6798e3878d33ba59829a7a6a6c41e828a3f547abbd94682a9f9d45b0f6a15319
5
5
  SHA512:
6
- metadata.gz: d3cf6749ec5a088eb636c4cdaf82a9927c9ff04aa680738d1e7fdb54e5da2f0f663067618517e82e2a4f0680f184728448ed812a18f7308646ceb494aec393f8
7
- data.tar.gz: 4ab48a961ab48aa3b47998d15398a5073bffff43744f85066b7508c5dd8b8cc0c2620ad688e801e9b34de76f30734838bac01ec44c7a1d410b402f373aa4d662
6
+ metadata.gz: d1439febb5ae0ab7d5f0e92bdedee2d51be67cf8600daac0e40e57c699d692cc10bae1e6367e8e868d95ec84641db319a1c9d25baf1478c31687f6bc2b81bbe6
7
+ data.tar.gz: 73cb6ebc44813e3cdc5f5bdee92146e52852f4e4ec1f10c6faf20a40ec7802e184b0bc855bf95aa26f40f942356ba42273b72a099af3927f4193cdba9caba060
@@ -12,7 +12,7 @@ jobs:
12
12
  strategy:
13
13
  fail-fast: false
14
14
  matrix:
15
- ruby: ['3.2.9', '3.3.10', '3.4.7']
15
+ ruby: ['3.2.9', '3.3.10', '3.4.8', '4.0.0']
16
16
  steps:
17
17
  - uses: actions/checkout@v4
18
18
  - name: Set up Ruby ${{ matrix.ruby }}
@@ -17,7 +17,7 @@ jobs:
17
17
  - uses: actions/checkout@v4
18
18
  - uses: ruby/setup-ruby@v1
19
19
  with:
20
- ruby-version: '3.4'
20
+ ruby-version: 4.0.0
21
21
  bundler-cache: true
22
22
  - uses: reviewdog/action-rubocop@v2
23
23
  with:
@@ -16,7 +16,7 @@ jobs:
16
16
  - name: Set up Ruby
17
17
  uses: ruby/setup-ruby@v1
18
18
  with:
19
- ruby-version: 3.4.7
19
+ ruby-version: 4.0.0
20
20
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
21
21
  - name: Build and test with Rake
22
22
  run: COVERAGE=true bundle exec rake
data/.rubocop.yml CHANGED
@@ -9,7 +9,7 @@ AllCops:
9
9
  Enabled: true
10
10
  NewCops: enable
11
11
  SuggestExtensions: false
12
- TargetRubyVersion: 3.4
12
+ TargetRubyVersion: 3.2
13
13
 
14
14
  Layout/EmptyLinesAroundAttributeAccessor:
15
15
  Enabled: true
data/.rubocop_todo.yml CHANGED
@@ -1,26 +1,11 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2025-07-19 18:45:18 UTC using RuboCop version 1.78.0.
3
+ # on 2026-01-10 12:23:26 UTC using RuboCop version 1.82.1.
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
- # Offense count: 6
10
- # Configuration parameters: EnforcedStyle, AllowedGems, Include.
11
- # SupportedStyles: Gemfile, gems.rb, gemspec
12
- # Include: **/*.gemspec, **/Gemfile, **/gems.rb
13
- Gemspec/DevelopmentDependencies:
14
- Exclude:
15
- - 'injectable.gemspec'
16
-
17
- # Offense count: 1
18
- # Configuration parameters: Severity, Include.
19
- # Include: **/*.gemspec
20
- Gemspec/RequiredRubyVersion:
21
- Exclude:
22
- - 'injectable.gemspec'
23
-
24
9
  # Offense count: 4
25
10
  # Configuration parameters: AllowedMethods.
26
11
  # AllowedMethods: enums
@@ -104,8 +89,8 @@ RSpec/NamedSubject:
104
89
  - 'spec/injectable_spec.rb'
105
90
 
106
91
  # Offense count: 3
107
- # Configuration parameters: Include, CustomTransform, IgnoreMethods, IgnoreMetadata.
108
- # Include: **/*_spec.rb
92
+ # Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector.
93
+ # SupportedInflectors: default, active_support
109
94
  RSpec/SpecFilePathFormat:
110
95
  Exclude:
111
96
  - '**/spec/routing/**/*'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.7
1
+ 4.0.0
data/.simplecov ADDED
@@ -0,0 +1,14 @@
1
+ require 'simplecov-json'
2
+
3
+ SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(
4
+ [
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ SimpleCov::Formatter::JSONFormatter
7
+ ]
8
+ )
9
+
10
+ SimpleCov.start do
11
+ enable_coverage(:branch)
12
+
13
+ load_profile 'test_frameworks'
14
+ end
data/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Unreleased
2
2
 
3
- ## 2.1.5 - 2025-11-12
3
+ ## 2.1.6 - 2026-01-12
4
+
5
+ * adds Ruby 4 to the support matrix
6
+ * upgrades gemspec dependencies
7
+ * maintain and appease the authorities (Rubocop)
8
+
9
+ ## 2.1.5 - 2025-11-12
4
10
 
5
11
  * adds simplecov
6
12
 
data/Gemfile CHANGED
@@ -2,3 +2,12 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in injectable.gemspec
4
4
  gemspec
5
+
6
+ gem 'bundler', '~> 4.0'
7
+ gem 'pry-byebug', '~> 3.11'
8
+ gem 'rake', '~> 13.3'
9
+ gem 'rspec', '~> 3.13'
10
+ gem 'rubocop', '~> 1.82'
11
+ gem 'rubocop-rspec', '~> 3.9'
12
+ gem 'simplecov', '~> 0.22'
13
+ gem 'simplecov-json', '~> 0.2'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- injectable (2.1.5)
4
+ injectable (2.1.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -43,7 +43,7 @@ GEM
43
43
  diff-lcs (>= 1.2.0, < 2.0)
44
44
  rspec-support (~> 3.13.0)
45
45
  rspec-support (3.13.4)
46
- rubocop (1.81.7)
46
+ rubocop (1.82.1)
47
47
  json (~> 2.3)
48
48
  language_server-protocol (~> 3.17.0.2)
49
49
  lint_roller (~> 1.1.0)
@@ -51,15 +51,15 @@ GEM
51
51
  parser (>= 3.3.0.2)
52
52
  rainbow (>= 2.2.2, < 4.0)
53
53
  regexp_parser (>= 2.9.3, < 3.0)
54
- rubocop-ast (>= 1.47.1, < 2.0)
54
+ rubocop-ast (>= 1.48.0, < 2.0)
55
55
  ruby-progressbar (~> 1.7)
56
56
  unicode-display_width (>= 2.4.0, < 4.0)
57
57
  rubocop-ast (1.48.0)
58
58
  parser (>= 3.3.7.2)
59
59
  prism (~> 1.4)
60
- rubocop-rspec (3.7.0)
60
+ rubocop-rspec (3.9.0)
61
61
  lint_roller (~> 1.1)
62
- rubocop (~> 1.72, >= 1.72.1)
62
+ rubocop (~> 1.81)
63
63
  ruby-progressbar (1.13.0)
64
64
  simplecov (0.22.0)
65
65
  docile (~> 1.1)
@@ -72,19 +72,19 @@ GEM
72
72
  simplecov_json_formatter (0.1.4)
73
73
  unicode-display_width (3.1.4)
74
74
  unicode-emoji (~> 4.0, >= 4.0.4)
75
- unicode-emoji (4.0.4)
75
+ unicode-emoji (4.2.0)
76
76
 
77
77
  PLATFORMS
78
78
  ruby
79
79
 
80
80
  DEPENDENCIES
81
- bundler (~> 2.7)
81
+ bundler (~> 4.0)
82
82
  injectable!
83
83
  pry-byebug (~> 3.11)
84
84
  rake (~> 13.3)
85
85
  rspec (~> 3.13)
86
- rubocop (~> 1.81)
87
- rubocop-rspec (~> 3.7)
86
+ rubocop (~> 1.82)
87
+ rubocop-rspec (~> 3.9)
88
88
  simplecov (~> 0.22)
89
89
  simplecov-json (~> 0.2)
90
90
 
@@ -94,7 +94,7 @@ CHECKSUMS
94
94
  coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
95
95
  diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
96
96
  docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
97
- injectable (2.1.5)
97
+ injectable (2.1.6)
98
98
  json (2.13.0) sha256=a4bdf1ce8db5617ec6c59e021db4a398e54b57b335e1fa417ac7badc3fb7c1a0
99
99
  language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
100
100
  lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
@@ -113,16 +113,16 @@ CHECKSUMS
113
113
  rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
114
114
  rspec-mocks (3.13.5) sha256=e4338a6f285ada9fe56f5893f5457783af8194f5d08884d17a87321d5195ea81
115
115
  rspec-support (3.13.4) sha256=184b1814f6a968102b57df631892c7f1990a91c9a3b9e80ef892a0fc2a71a3f7
116
- rubocop (1.81.7) sha256=6fb5cc298c731691e2a414fe0041a13eb1beed7bab23aec131da1bcc527af094
116
+ rubocop (1.82.1) sha256=09f1a6a654a960eda767aebea33e47603080f8e9c9a3f019bf9b94c9cab5e273
117
117
  rubocop-ast (1.48.0) sha256=22df9bbf3f7a6eccde0fad54e68547ae1e2a704bf8719e7c83813a99c05d2e76
118
- rubocop-rspec (3.7.0) sha256=b7b214da112034db9c6d00f2d811a354847e870f7b6ed2482b29649c3d42058f
118
+ rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
119
119
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
120
120
  simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
121
121
  simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
122
122
  simplecov-json (0.2.3) sha256=c63823b5dfc95c85ff4cb94251765f08a166bdd68098f259368cbfe738e281f7
123
123
  simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
124
124
  unicode-display_width (3.1.4) sha256=8caf2af1c0f2f07ec89ef9e18c7d88c2790e217c482bfc78aaa65eadd5415ac1
125
- unicode-emoji (4.0.4) sha256=2c2c4ef7f353e5809497126285a50b23056cc6e61b64433764a35eff6c36532a
125
+ unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
126
126
 
127
127
  BUNDLED WITH
128
- 2.7.2
128
+ 4.0.3
data/injectable.gemspec CHANGED
@@ -24,13 +24,4 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ['lib']
26
26
  spec.required_ruby_version = '>= 3.2'
27
-
28
- spec.add_development_dependency 'bundler', '~> 2.7'
29
- spec.add_development_dependency 'pry-byebug', '~> 3.11'
30
- spec.add_development_dependency 'rake', '~> 13.3'
31
- spec.add_development_dependency 'rspec', '~> 3.13'
32
- spec.add_development_dependency 'rubocop', '~> 1.81'
33
- spec.add_development_dependency 'rubocop-rspec', '~> 3.7'
34
- spec.add_development_dependency 'simplecov', '~> 0.22'
35
- spec.add_development_dependency 'simplecov-json', '~> 0.2'
36
27
  end
@@ -28,22 +28,26 @@ module Injectable
28
28
 
29
29
  ivar = "@#{name}"
30
30
 
31
+ # Define the instance reader immediately when this attribute is declared
32
+ # so instances always respond to the reader even if the singleton
33
+ # class value has not been set yet.
34
+ if singleton_class?
35
+ class_eval do
36
+ define_method(name) do
37
+ if instance_variable_defined? ivar
38
+ instance_variable_get ivar
39
+ else
40
+ singleton_class.send name
41
+ end
42
+ end
43
+ end
44
+ end
45
+
31
46
  define_singleton_method("#{name}=") do |val|
32
47
  singleton_class.class_eval do
33
48
  define_method(name) { val }
34
49
  end
35
50
 
36
- if singleton_class?
37
- class_eval do
38
- define_method(name) do
39
- if instance_variable_defined? ivar
40
- instance_variable_get ivar
41
- else
42
- singleton_class.send name
43
- end
44
- end
45
- end
46
- end
47
51
  val
48
52
  end
49
53
  end
@@ -22,7 +22,7 @@ module Injectable
22
22
 
23
23
  def check_call_definition!
24
24
  return if (self.class.ancestors - [Injectable::InstanceMethods]).any? do |ancestor|
25
- ancestor.instance_methods(false).include?(:call)
25
+ ancestor.method_defined?(:call, false)
26
26
  end
27
27
 
28
28
  raise NoMethodError, "A #call method with zero arity must be defined in #{self.class}"
@@ -1,3 +1,3 @@
1
1
  module Injectable
2
- VERSION = '2.1.5'.freeze
2
+ VERSION = '2.1.6'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: injectable
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.5
4
+ version: 2.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Papipo
@@ -12,119 +12,7 @@ authors:
12
12
  bindir: exe
13
13
  cert_chain: []
14
14
  date: 1980-01-02 00:00:00.000000000 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: bundler
18
- requirement: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - "~>"
21
- - !ruby/object:Gem::Version
22
- version: '2.7'
23
- type: :development
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '2.7'
30
- - !ruby/object:Gem::Dependency
31
- name: pry-byebug
32
- requirement: !ruby/object:Gem::Requirement
33
- requirements:
34
- - - "~>"
35
- - !ruby/object:Gem::Version
36
- version: '3.11'
37
- type: :development
38
- prerelease: false
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - "~>"
42
- - !ruby/object:Gem::Version
43
- version: '3.11'
44
- - !ruby/object:Gem::Dependency
45
- name: rake
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - "~>"
49
- - !ruby/object:Gem::Version
50
- version: '13.3'
51
- type: :development
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: '13.3'
58
- - !ruby/object:Gem::Dependency
59
- name: rspec
60
- requirement: !ruby/object:Gem::Requirement
61
- requirements:
62
- - - "~>"
63
- - !ruby/object:Gem::Version
64
- version: '3.13'
65
- type: :development
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: '3.13'
72
- - !ruby/object:Gem::Dependency
73
- name: rubocop
74
- requirement: !ruby/object:Gem::Requirement
75
- requirements:
76
- - - "~>"
77
- - !ruby/object:Gem::Version
78
- version: '1.81'
79
- type: :development
80
- prerelease: false
81
- version_requirements: !ruby/object:Gem::Requirement
82
- requirements:
83
- - - "~>"
84
- - !ruby/object:Gem::Version
85
- version: '1.81'
86
- - !ruby/object:Gem::Dependency
87
- name: rubocop-rspec
88
- requirement: !ruby/object:Gem::Requirement
89
- requirements:
90
- - - "~>"
91
- - !ruby/object:Gem::Version
92
- version: '3.7'
93
- type: :development
94
- prerelease: false
95
- version_requirements: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - "~>"
98
- - !ruby/object:Gem::Version
99
- version: '3.7'
100
- - !ruby/object:Gem::Dependency
101
- name: simplecov
102
- requirement: !ruby/object:Gem::Requirement
103
- requirements:
104
- - - "~>"
105
- - !ruby/object:Gem::Version
106
- version: '0.22'
107
- type: :development
108
- prerelease: false
109
- version_requirements: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - "~>"
112
- - !ruby/object:Gem::Version
113
- version: '0.22'
114
- - !ruby/object:Gem::Dependency
115
- name: simplecov-json
116
- requirement: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - "~>"
119
- - !ruby/object:Gem::Version
120
- version: '0.2'
121
- type: :development
122
- prerelease: false
123
- version_requirements: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: '0.2'
15
+ dependencies: []
128
16
  email:
129
17
  - dev@rubiconmd.com
130
18
  executables: []
@@ -139,6 +27,7 @@ files:
139
27
  - ".rubocop.yml"
140
28
  - ".rubocop_todo.yml"
141
29
  - ".ruby-version"
30
+ - ".simplecov"
142
31
  - CHANGELOG.md
143
32
  - CODE_OF_CONDUCT.md
144
33
  - Gemfile
@@ -177,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
66
  - !ruby/object:Gem::Version
178
67
  version: '0'
179
68
  requirements: []
180
- rubygems_version: 3.6.9
69
+ rubygems_version: 4.0.3
181
70
  specification_version: 4
182
71
  summary: A library to help you build nice service objects with dependency injection.
183
72
  test_files: []