ProtectedConstructor 2.1.6 → 3.0.0

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: a7990f247685c9fa18b298bbeb2d09204dbedfb504297c79ae7c448a8483e9a4
4
- data.tar.gz: 0bc68b9a58cf0dbd39a9f441fa9413ecb8039d79a5276ce83d4bd2fefd988c0c
3
+ metadata.gz: 33a8ab169a6775003036bf9cc5cd913ca751af29e9f8d97a39c8780e5876cd4a
4
+ data.tar.gz: 8b12876d3fde7c172ca0a9aab2d11829258918dbae6b7b0c49d658a405f21c6f
5
5
  SHA512:
6
- metadata.gz: 7d0219b9f6320c1c41a77614c0d0c48115b301e647d680989afbf0eaca58469cfaee45db508aa9ccd7cf7f4273e58a6e5613ae128aca322bb0ba6c3d4ddae6ad
7
- data.tar.gz: c66ddcdb47c8f6750d6fb05e324ac6db02a29fd721aa22ee2c26c9bf761299c3768b5b245886604a801c7922a31c5c903f3b1851068394569dde5b28fc9772f9
6
+ metadata.gz: ed6cb57adc6dd845b535db0edd1b67b83e98308781000548be06b1584b75af7e56e610af404bb5c223624f10b3c17c1707bcd0e34049ca6a1fc1f2efd1db6d10
7
+ data.tar.gz: a2309ec622d2a38f7b06eea015326eb028fd6ad6e673e4a988ce0f3407ba206dc751b94a9ec1892d35b9f952775c3def542f3b57754e30cecac2fcb504a8be04
@@ -0,0 +1,43 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: ["main"]
13
+ pull_request:
14
+ branches: ["main"]
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ jobs:
20
+ test:
21
+ runs-on: ubuntu-latest
22
+ strategy:
23
+ matrix:
24
+ # Use `rbenv install -l` and only use the latest stable
25
+ # version of ruby.
26
+ ruby-version: ["3.0.1", "3.0.6", "3.1.4", "3.2.2"]
27
+
28
+ steps:
29
+ - uses: actions/checkout@v3
30
+ - name: Set timezone
31
+ run: sudo timedatectl set-timezone 'America/New_York'
32
+ - name: Run a command
33
+ run: date
34
+ - name: Set up Ruby
35
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
36
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
37
+ # uses: ruby/setup-ruby@v1
38
+ uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
39
+ with:
40
+ ruby-version: ${{ matrix.ruby-version }}
41
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
42
+ - name: Run tests
43
+ run: bundle exec rake
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### 3.0.0 2023-12-28
2
+ * Breaking changes
3
+ * The require file for this gem is now 'protected_constructor' instead of 'ProtectedConstructor' (i.e. `require 'protected_constructor'`). Remove all references to `require 'ProtectedConstructor'` and replace with `require 'protected_constructor'`.
4
+
5
+ * changes
6
+ * Relax ruby dependency to '~> 3.0'.
7
+ * Update ruby gems.
8
+
1
9
  ### 2.1.6 2023-12-02
2
10
  * changes
3
11
  * Update ruby gems.
data/Gemfile CHANGED
@@ -4,3 +4,14 @@ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in ProtectedConstructor.gemspec
6
6
  gemspec
7
+
8
+ gem 'bundler', '~> 2.5', '>= 2.5.3'
9
+ gem 'pry-byebug', '>= 3.9', '< 4.0'
10
+ gem 'rake', '>= 13.0', '< 14.0'
11
+ gem 'redcarpet', '>= 3.5', '< 4.0'
12
+ gem 'reek', '>= 6.1', '< 7.0'
13
+ gem 'rspec', '>= 3.10', '< 4.0'
14
+ gem 'rubocop', '>= 1.35', '< 2.0'
15
+ gem 'rubocop-performance', '>= 1.14', '< 2.0'
16
+ gem 'rubocop-rspec', '>= 2.12', '< 3.0'
17
+ gem 'yard', '>= 0.9.28', '< 1.0'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ProtectedConstructor (2.1.6)
4
+ ProtectedConstructor (3.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -10,11 +10,11 @@ GEM
10
10
  byebug (11.1.3)
11
11
  coderay (1.1.3)
12
12
  diff-lcs (1.5.0)
13
- json (2.7.0)
13
+ json (2.7.1)
14
14
  kwalify (0.7.2)
15
15
  language_server-protocol (3.17.0.3)
16
16
  method_source (1.0.0)
17
- parallel (1.23.0)
17
+ parallel (1.24.0)
18
18
  parser (3.2.2.4)
19
19
  ast (~> 2.4.1)
20
20
  racc
@@ -32,7 +32,7 @@ GEM
32
32
  kwalify (~> 0.7.0)
33
33
  parser (~> 3.2.0)
34
34
  rainbow (>= 2.0, < 4.0)
35
- regexp_parser (2.8.2)
35
+ regexp_parser (2.8.3)
36
36
  rexml (3.2.6)
37
37
  rspec (3.12.0)
38
38
  rspec-core (~> 3.12.0)
@@ -47,7 +47,7 @@ GEM
47
47
  diff-lcs (>= 1.2.0, < 2.0)
48
48
  rspec-support (~> 3.12.0)
49
49
  rspec-support (3.12.1)
50
- rubocop (1.58.0)
50
+ rubocop (1.59.0)
51
51
  json (~> 2.3)
52
52
  language_server-protocol (>= 3.17.0)
53
53
  parallel (~> 1.10)
@@ -64,9 +64,9 @@ GEM
64
64
  rubocop (~> 1.41)
65
65
  rubocop-factory_bot (2.24.0)
66
66
  rubocop (~> 1.33)
67
- rubocop-performance (1.19.1)
68
- rubocop (>= 1.7.0, < 2.0)
69
- rubocop-ast (>= 0.4.0)
67
+ rubocop-performance (1.20.1)
68
+ rubocop (>= 1.48.1, < 2.0)
69
+ rubocop-ast (>= 1.30.0, < 2.0)
70
70
  rubocop-rspec (2.25.0)
71
71
  rubocop (~> 1.40)
72
72
  rubocop-capybara (~> 2.17)
@@ -82,7 +82,7 @@ PLATFORMS
82
82
 
83
83
  DEPENDENCIES
84
84
  ProtectedConstructor!
85
- bundler (>= 2.4, < 3.0)
85
+ bundler (~> 2.5, >= 2.5.3)
86
86
  pry-byebug (>= 3.9, < 4.0)
87
87
  rake (>= 13.0, < 14.0)
88
88
  redcarpet (>= 3.5, < 4.0)
@@ -94,4 +94,4 @@ DEPENDENCIES
94
94
  yard (>= 0.9.28, < 1.0)
95
95
 
96
96
  BUNDLED WITH
97
- 2.4.21
97
+ 2.5.3
@@ -18,20 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.homepage = 'https://github.com/gangelo/ProtectedConstructor'
19
19
  spec.license = 'MIT'
20
20
 
21
+ spec.required_ruby_version = Gem::Requirement.new('~> 3.0')
22
+
21
23
  spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
22
24
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
25
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
24
26
  spec.require_paths = ['lib']
25
-
26
- spec.required_ruby_version = '~> 3.0.1'
27
- spec.add_development_dependency 'bundler', '>= 2.4', '< 3.0'
28
- spec.add_development_dependency 'pry-byebug', '>= 3.9', '< 4.0'
29
- spec.add_development_dependency 'rake', '>= 13.0', '< 14.0'
30
- spec.add_development_dependency 'redcarpet', '>= 3.5', '< 4.0'
31
- spec.add_development_dependency 'reek', '>= 6.1', '< 7.0'
32
- spec.add_development_dependency 'rspec', '>= 3.10', '< 4.0'
33
- spec.add_development_dependency 'rubocop', '>= 1.35', '< 2.0'
34
- spec.add_development_dependency 'rubocop-performance', '>= 1.14', '< 2.0'
35
- spec.add_development_dependency 'rubocop-rspec', '>= 2.12', '< 3.0'
36
- spec.add_development_dependency 'yard', '>= 0.9.28', '< 1.0'
37
27
  end
data/README.md CHANGED
@@ -1,12 +1,10 @@
1
- [![GitHub version](http://badge.fury.io/gh/gangelo%2FProtectedConstructor.svg?v=2.0.0)](http://badge.fury.io/gh/gangelo%2FProtectedConstructor.svg?v=2.0.0)
2
- [![Gem Version](https://badge.fury.io/rb/ProtectedConstructor.svg)](https://badge.fury.io/rb/ProtectedConstructor.svg)
3
-
4
- ![](http://ruby-gem-downloads-badge.herokuapp.com/ProtectedConstructor?type=total)
1
+ [![Ruby](https://github.com/gangelo/ProtectedConstructor/actions/workflows/ruby.yml/badge.svg)](https://github.com/gangelo/ProtectedConstructor/actions/workflows/ruby.yml)
2
+ [![GitHub version](http://badge.fury.io/gh/gangelo%2FProtectedConstructor.svg?refresh=1)](http://badge.fury.io/gh/gangelo%2FProtectedConstructor.svg)
3
+ [![Gem Version](https://badge.fury.io/rb/ProtectedConstructor.svg?refresh=3)](https://badge.fury.io/rb/ProtectedConstructor.svg)
5
4
  [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](http://www.rubydoc.info/gems/ProtectedConstructor/)
6
-
7
5
  [![Report Issues](https://img.shields.io/badge/report-issues-red.svg)](https://github.com/gangelo/ProtectedConstructor/issues)
8
-
9
6
  [![License](http://img.shields.io/badge/license-MIT-yellowgreen.svg)](#license)
7
+
10
8
  # ProtectedConstructor
11
9
  Provides a module that may be included in a Ruby class, that protects the constructor; good for enforcing
12
10
  instantiation of classes using, for instance, a class factory. The code itself is not mine, I just wrapped it
@@ -28,15 +26,15 @@ Or install it yourself as:
28
26
 
29
27
  ## Usage
30
28
 
31
- require 'ProtectedConstructor'
32
-
29
+ require 'protected_constructor'
30
+
33
31
  class Klass
34
32
  include ProtectedConstructor
35
-
33
+
36
34
  def initialize
37
35
  end
38
36
  end
39
-
37
+
40
38
  module KlassFactory
41
39
  class << self
42
40
  public
@@ -45,20 +43,20 @@ Or install it yourself as:
45
43
  end
46
44
  end
47
45
  end
48
-
46
+
49
47
  # Constructor is protected.
50
48
  klass = Klass.new # NoMethodError
51
-
49
+
52
50
  # Example using factory...
53
51
  klass = KlassFactory::create # works
54
52
  klass.nil? # false
55
53
  klass.is_a?(Klass) # true
56
-
54
+
57
55
  # Example just using #send...
58
56
  klass = Klass.send(:new) # works
59
57
  klass.nil? # false
60
58
  klass.is_a?(Klass) # true
61
-
59
+
62
60
  ## Contributing
63
61
 
64
62
  1. Fork it
data/Rakefile CHANGED
@@ -1,15 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
4
5
 
5
- begin
6
- require 'rspec/core/rake_task'
7
- RSpec::Core::RakeTask.new(:spec)
8
- rescue LoadError => _e
9
- task 'spec' do
10
- puts "RSpec not loaded - make sure it's installed and you're using bundle exec"
11
- exit 1
12
- end
13
- end
14
-
15
- task default: :spec
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ require 'rubocop/rake_task'
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i[spec rubocop]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ProtectedConstructor
4
- VERSION = '2.1.6'
4
+ VERSION = '3.0.0'
5
5
  end
@@ -3,7 +3,7 @@
3
3
  require 'ProtectedConstructor/version'
4
4
 
5
5
  # @example
6
- # require 'ProtectedConstructor'
6
+ # require 'protected_constructor'
7
7
  #
8
8
  # class Klass
9
9
  # include ProtectedConstructor
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'pry-byebug'
4
- require_relative '../lib/ProtectedConstructor'
4
+ require_relative '../lib/protected_constructor'
5
5
 
6
6
  Dir[File.join(Dir.pwd, 'spec/support/**/*.rb')].sort.each { |f| require f }
7
7
 
metadata CHANGED
@@ -1,215 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ProtectedConstructor
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.6
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gene M. Angelo, Jr.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-02 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '2.4'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '3.0'
23
- type: :development
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: '2.4'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '3.0'
33
- - !ruby/object:Gem::Dependency
34
- name: pry-byebug
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '3.9'
40
- - - "<"
41
- - !ruby/object:Gem::Version
42
- version: '4.0'
43
- type: :development
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '3.9'
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '4.0'
53
- - !ruby/object:Gem::Dependency
54
- name: rake
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: '13.0'
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: '14.0'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: '13.0'
70
- - - "<"
71
- - !ruby/object:Gem::Version
72
- version: '14.0'
73
- - !ruby/object:Gem::Dependency
74
- name: redcarpet
75
- requirement: !ruby/object:Gem::Requirement
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: '3.5'
80
- - - "<"
81
- - !ruby/object:Gem::Version
82
- version: '4.0'
83
- type: :development
84
- prerelease: false
85
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '3.5'
90
- - - "<"
91
- - !ruby/object:Gem::Version
92
- version: '4.0'
93
- - !ruby/object:Gem::Dependency
94
- name: reek
95
- requirement: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: '6.1'
100
- - - "<"
101
- - !ruby/object:Gem::Version
102
- version: '7.0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '6.1'
110
- - - "<"
111
- - !ruby/object:Gem::Version
112
- version: '7.0'
113
- - !ruby/object:Gem::Dependency
114
- name: rspec
115
- requirement: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: '3.10'
120
- - - "<"
121
- - !ruby/object:Gem::Version
122
- version: '4.0'
123
- type: :development
124
- prerelease: false
125
- version_requirements: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: '3.10'
130
- - - "<"
131
- - !ruby/object:Gem::Version
132
- version: '4.0'
133
- - !ruby/object:Gem::Dependency
134
- name: rubocop
135
- requirement: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: '1.35'
140
- - - "<"
141
- - !ruby/object:Gem::Version
142
- version: '2.0'
143
- type: :development
144
- prerelease: false
145
- version_requirements: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: '1.35'
150
- - - "<"
151
- - !ruby/object:Gem::Version
152
- version: '2.0'
153
- - !ruby/object:Gem::Dependency
154
- name: rubocop-performance
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '1.14'
160
- - - "<"
161
- - !ruby/object:Gem::Version
162
- version: '2.0'
163
- type: :development
164
- prerelease: false
165
- version_requirements: !ruby/object:Gem::Requirement
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: '1.14'
170
- - - "<"
171
- - !ruby/object:Gem::Version
172
- version: '2.0'
173
- - !ruby/object:Gem::Dependency
174
- name: rubocop-rspec
175
- requirement: !ruby/object:Gem::Requirement
176
- requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: '2.12'
180
- - - "<"
181
- - !ruby/object:Gem::Version
182
- version: '3.0'
183
- type: :development
184
- prerelease: false
185
- version_requirements: !ruby/object:Gem::Requirement
186
- requirements:
187
- - - ">="
188
- - !ruby/object:Gem::Version
189
- version: '2.12'
190
- - - "<"
191
- - !ruby/object:Gem::Version
192
- version: '3.0'
193
- - !ruby/object:Gem::Dependency
194
- name: yard
195
- requirement: !ruby/object:Gem::Requirement
196
- requirements:
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: 0.9.28
200
- - - "<"
201
- - !ruby/object:Gem::Version
202
- version: '1.0'
203
- type: :development
204
- prerelease: false
205
- version_requirements: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- version: 0.9.28
210
- - - "<"
211
- - !ruby/object:Gem::Version
212
- version: '1.0'
11
+ date: 2023-12-28 00:00:00.000000000 Z
12
+ dependencies: []
213
13
  description: ProtectedConstructor Gem
214
14
  email:
215
15
  - public.gma@gmail.com
@@ -218,6 +18,7 @@ extensions: []
218
18
  extra_rdoc_files: []
219
19
  files:
220
20
  - ".github/dependabot.yml"
21
+ - ".github/workflows/ruby.yml"
221
22
  - ".gitignore"
222
23
  - ".rspec"
223
24
  - ".ruby-version"
@@ -228,8 +29,8 @@ files:
228
29
  - ProtectedConstructor.gemspec
229
30
  - README.md
230
31
  - Rakefile
231
- - lib/ProtectedConstructor.rb
232
32
  - lib/ProtectedConstructor/version.rb
33
+ - lib/protected_constructor.rb
233
34
  - spec/ProtectedConstructor/protected_constructor_spec.rb
234
35
  - spec/spec_helper.rb
235
36
  - spec/support/shared_klasses/klass_factory.rb
@@ -246,7 +47,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
246
47
  requirements:
247
48
  - - "~>"
248
49
  - !ruby/object:Gem::Version
249
- version: 3.0.1
50
+ version: '3.0'
250
51
  required_rubygems_version: !ruby/object:Gem::Requirement
251
52
  requirements:
252
53
  - - ">="