injectable 2.1.4 → 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: 228534a67ef0559e49167d01e940e2f9a35f830533326cfa148219441c541d51
4
- data.tar.gz: 7bee6e0ef006fa1e72f1fe03d873176fdedffae59b36bd9a46155ecea0e7b00a
3
+ metadata.gz: '0769ae55179a7a487afec317c90c9a4055ecdf5c11d0508bb7a945783a1175eb'
4
+ data.tar.gz: 6798e3878d33ba59829a7a6a6c41e828a3f547abbd94682a9f9d45b0f6a15319
5
5
  SHA512:
6
- metadata.gz: 29ae900a761c98b98b6d9c859e11db8c96328b160a6a6651bbd25765a50a5ba16e1b2998ece076ee9cadca2eedf25fdcdfd2fdd087f29dba79606bbd17552f23
7
- data.tar.gz: 141d2b92ce7564c8af6e64e179863989a84df5bd9bbe6a7bcd76827dc448c4f8d029a6142290559bdb74fd9b44857b97a2730ac0af48fa61fe9a9194603d77db
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:
@@ -0,0 +1,28 @@
1
+ name: Simplecov
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ permissions:
10
+ checks: write
11
+ jobs:
12
+ code_coverage:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: 4.0.0
20
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
21
+ - name: Build and test with Rake
22
+ run: COVERAGE=true bundle exec rake
23
+ - name: SimpleCov+ Action
24
+ uses: joshmfrankel/simplecov-check-action@1.0.0
25
+ with:
26
+ minimum_suite_coverage: 90
27
+ minimum_file_coverage: 90
28
+ github_token: ${{ secrets.GITHUB_TOKEN }}
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,5 +1,15 @@
1
1
  # Unreleased
2
2
 
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
10
+
11
+ * adds simplecov
12
+
3
13
  ## 2.1.4 - 2025-11-09
4
14
 
5
15
  * Add support for Rubies up to 3.4.7
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.4)
4
+ injectable (2.1.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -10,6 +10,7 @@ GEM
10
10
  byebug (12.0.0)
11
11
  coderay (1.1.3)
12
12
  diff-lcs (1.6.2)
13
+ docile (1.4.1)
13
14
  json (2.13.0)
14
15
  language_server-protocol (3.17.0.5)
15
16
  lint_roller (1.1.0)
@@ -42,7 +43,7 @@ GEM
42
43
  diff-lcs (>= 1.2.0, < 2.0)
43
44
  rspec-support (~> 3.13.0)
44
45
  rspec-support (3.13.4)
45
- rubocop (1.81.7)
46
+ rubocop (1.82.1)
46
47
  json (~> 2.3)
47
48
  language_server-protocol (~> 3.17.0.2)
48
49
  lint_roller (~> 1.1.0)
@@ -50,38 +51,50 @@ GEM
50
51
  parser (>= 3.3.0.2)
51
52
  rainbow (>= 2.2.2, < 4.0)
52
53
  regexp_parser (>= 2.9.3, < 3.0)
53
- rubocop-ast (>= 1.47.1, < 2.0)
54
+ rubocop-ast (>= 1.48.0, < 2.0)
54
55
  ruby-progressbar (~> 1.7)
55
56
  unicode-display_width (>= 2.4.0, < 4.0)
56
57
  rubocop-ast (1.48.0)
57
58
  parser (>= 3.3.7.2)
58
59
  prism (~> 1.4)
59
- rubocop-rspec (3.7.0)
60
+ rubocop-rspec (3.9.0)
60
61
  lint_roller (~> 1.1)
61
- rubocop (~> 1.72, >= 1.72.1)
62
+ rubocop (~> 1.81)
62
63
  ruby-progressbar (1.13.0)
64
+ simplecov (0.22.0)
65
+ docile (~> 1.1)
66
+ simplecov-html (~> 0.11)
67
+ simplecov_json_formatter (~> 0.1)
68
+ simplecov-html (0.13.2)
69
+ simplecov-json (0.2.3)
70
+ json
71
+ simplecov
72
+ simplecov_json_formatter (0.1.4)
63
73
  unicode-display_width (3.1.4)
64
74
  unicode-emoji (~> 4.0, >= 4.0.4)
65
- unicode-emoji (4.0.4)
75
+ unicode-emoji (4.2.0)
66
76
 
67
77
  PLATFORMS
68
78
  ruby
69
79
 
70
80
  DEPENDENCIES
71
- bundler (~> 2.7)
81
+ bundler (~> 4.0)
72
82
  injectable!
73
83
  pry-byebug (~> 3.11)
74
84
  rake (~> 13.3)
75
85
  rspec (~> 3.13)
76
- rubocop (~> 1.81)
77
- rubocop-rspec (~> 3.7)
86
+ rubocop (~> 1.82)
87
+ rubocop-rspec (~> 3.9)
88
+ simplecov (~> 0.22)
89
+ simplecov-json (~> 0.2)
78
90
 
79
91
  CHECKSUMS
80
92
  ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
81
93
  byebug (12.0.0) sha256=d4a150d291cca40b66ec9ca31f754e93fed8aa266a17335f71bb0afa7fca1a1e
82
94
  coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
83
95
  diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
84
- injectable (2.1.4)
96
+ docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
97
+ injectable (2.1.6)
85
98
  json (2.13.0) sha256=a4bdf1ce8db5617ec6c59e021db4a398e54b57b335e1fa417ac7badc3fb7c1a0
86
99
  language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
87
100
  lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
@@ -100,12 +113,16 @@ CHECKSUMS
100
113
  rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
101
114
  rspec-mocks (3.13.5) sha256=e4338a6f285ada9fe56f5893f5457783af8194f5d08884d17a87321d5195ea81
102
115
  rspec-support (3.13.4) sha256=184b1814f6a968102b57df631892c7f1990a91c9a3b9e80ef892a0fc2a71a3f7
103
- rubocop (1.81.7) sha256=6fb5cc298c731691e2a414fe0041a13eb1beed7bab23aec131da1bcc527af094
116
+ rubocop (1.82.1) sha256=09f1a6a654a960eda767aebea33e47603080f8e9c9a3f019bf9b94c9cab5e273
104
117
  rubocop-ast (1.48.0) sha256=22df9bbf3f7a6eccde0fad54e68547ae1e2a704bf8719e7c83813a99c05d2e76
105
- rubocop-rspec (3.7.0) sha256=b7b214da112034db9c6d00f2d811a354847e870f7b6ed2482b29649c3d42058f
118
+ rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
106
119
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
120
+ simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
121
+ simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
122
+ simplecov-json (0.2.3) sha256=c63823b5dfc95c85ff4cb94251765f08a166bdd68098f259368cbfe738e281f7
123
+ simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
107
124
  unicode-display_width (3.1.4) sha256=8caf2af1c0f2f07ec89ef9e18c7d88c2790e217c482bfc78aaa65eadd5415ac1
108
- unicode-emoji (4.0.4) sha256=2c2c4ef7f353e5809497126285a50b23056cc6e61b64433764a35eff6c36532a
125
+ unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
109
126
 
110
127
  BUNDLED WITH
111
- 2.7.2
128
+ 4.0.3
data/injectable.gemspec CHANGED
@@ -24,11 +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
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.4'.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.4
4
+ version: 2.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Papipo
@@ -12,91 +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'
15
+ dependencies: []
100
16
  email:
101
17
  - dev@rubiconmd.com
102
18
  executables: []
@@ -105,11 +21,13 @@ extra_rdoc_files: []
105
21
  files:
106
22
  - ".github/workflows/rspec.yml"
107
23
  - ".github/workflows/rubocop.yml"
24
+ - ".github/workflows/simpelcov.yml"
108
25
  - ".gitignore"
109
26
  - ".rspec"
110
27
  - ".rubocop.yml"
111
28
  - ".rubocop_todo.yml"
112
29
  - ".ruby-version"
30
+ - ".simplecov"
113
31
  - CHANGELOG.md
114
32
  - CODE_OF_CONDUCT.md
115
33
  - Gemfile
@@ -148,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
66
  - !ruby/object:Gem::Version
149
67
  version: '0'
150
68
  requirements: []
151
- rubygems_version: 3.6.9
69
+ rubygems_version: 4.0.3
152
70
  specification_version: 4
153
71
  summary: A library to help you build nice service objects with dependency injection.
154
72
  test_files: []