ProtectedConstructor 2.1.5 → 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: 7fcea281decb106532bed7dfe865d4e0a5173fbaf6bc4f9bd4e3269901c79059
4
- data.tar.gz: 0ce5c6543a8910f708af840eacab0483c0cfdaa086349d153161ba43cf40d0a5
3
+ metadata.gz: 33a8ab169a6775003036bf9cc5cd913ca751af29e9f8d97a39c8780e5876cd4a
4
+ data.tar.gz: 8b12876d3fde7c172ca0a9aab2d11829258918dbae6b7b0c49d658a405f21c6f
5
5
  SHA512:
6
- metadata.gz: e5cafc5d30de8d2cc089cb2d3359f3498a9344584438b7a60ccc1af5adeaa35a56da65e2163c9df832e977de211098bd74f0a773585efb6bc5c92282d55c333d
7
- data.tar.gz: a26a89f79275ff169dcc3b15d3212a6d8182106afaf1cd3be44604126054427bfcae78fb84bc1b5eac7119b9667dcaf69f952d5b2f14ce0d2fb1a0705472efe7
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,15 @@
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
+
9
+ ### 2.1.6 2023-12-02
10
+ * changes
11
+ * Update ruby gems.
12
+
1
13
  ### 2.1.5 2023-10-30
2
14
  * changes
3
15
  * 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.5)
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.6.3)
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
@@ -24,7 +24,7 @@ GEM
24
24
  pry-byebug (3.10.1)
25
25
  byebug (~> 11.0)
26
26
  pry (>= 0.13, < 0.15)
27
- racc (1.7.1)
27
+ racc (1.7.3)
28
28
  rainbow (3.1.1)
29
29
  rake (13.1.0)
30
30
  redcarpet (3.6.0)
@@ -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.57.2)
50
+ rubocop (1.59.0)
51
51
  json (~> 2.3)
52
52
  language_server-protocol (>= 3.17.0)
53
53
  parallel (~> 1.10)
@@ -55,7 +55,7 @@ GEM
55
55
  rainbow (>= 2.2.2, < 4.0)
56
56
  regexp_parser (>= 1.8, < 3.0)
57
57
  rexml (>= 3.2.5, < 4.0)
58
- rubocop-ast (>= 1.28.1, < 2.0)
58
+ rubocop-ast (>= 1.30.0, < 2.0)
59
59
  ruby-progressbar (~> 1.7)
60
60
  unicode-display_width (>= 2.4.0, < 3.0)
61
61
  rubocop-ast (1.30.0)
@@ -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,16 +82,16 @@ PLATFORMS
82
82
 
83
83
  DEPENDENCIES
84
84
  ProtectedConstructor!
85
- bundler (~> 2.4, >= 2.4.21)
86
- pry-byebug (~> 3.9)
87
- rake (~> 13.0, >= 13.0.6)
88
- redcarpet (~> 3.5, >= 3.5.1)
89
- reek (~> 6.1, >= 6.1.1)
90
- rspec (>= 3.10)
91
- rubocop (~> 1.35)
92
- rubocop-performance (~> 1.14, >= 1.14.3)
93
- rubocop-rspec (~> 2.12, >= 2.12.1)
94
- yard (~> 0.9.28)
85
+ bundler (~> 2.5, >= 2.5.3)
86
+ pry-byebug (>= 3.9, < 4.0)
87
+ rake (>= 13.0, < 14.0)
88
+ redcarpet (>= 3.5, < 4.0)
89
+ reek (>= 6.1, < 7.0)
90
+ rspec (>= 3.10, < 4.0)
91
+ rubocop (>= 1.35, < 2.0)
92
+ rubocop-performance (>= 1.14, < 2.0)
93
+ rubocop-rspec (>= 2.12, < 3.0)
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', '>= 2.4.21'
28
- spec.add_development_dependency 'pry-byebug', '~> 3.9'
29
- spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
30
- spec.add_development_dependency 'redcarpet', '~> 3.5', '>= 3.5.1'
31
- spec.add_development_dependency 'reek', '~> 6.1', '>= 6.1.1'
32
- spec.add_development_dependency 'rspec', '>= 3.10'
33
- spec.add_development_dependency 'rubocop', '~> 1.35'
34
- spec.add_development_dependency 'rubocop-performance', '~> 1.14', '>= 1.14.3'
35
- spec.add_development_dependency 'rubocop-rspec', '~> 2.12', '>= 2.12.1'
36
- spec.add_development_dependency 'yard', '~> 0.9.28'
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.5'
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,191 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ProtectedConstructor
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.5
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-10-30 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: 2.4.21
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: 2.4.21
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
- type: :development
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '3.9'
47
- - !ruby/object:Gem::Dependency
48
- name: rake
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '13.0'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 13.0.6
57
- type: :development
58
- prerelease: false
59
- version_requirements: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - "~>"
62
- - !ruby/object:Gem::Version
63
- version: '13.0'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 13.0.6
67
- - !ruby/object:Gem::Dependency
68
- name: redcarpet
69
- requirement: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - "~>"
72
- - !ruby/object:Gem::Version
73
- version: '3.5'
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: 3.5.1
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: '3.5'
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: 3.5.1
87
- - !ruby/object:Gem::Dependency
88
- name: reek
89
- requirement: !ruby/object:Gem::Requirement
90
- requirements:
91
- - - "~>"
92
- - !ruby/object:Gem::Version
93
- version: '6.1'
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 6.1.1
97
- type: :development
98
- prerelease: false
99
- version_requirements: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '6.1'
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- version: 6.1.1
107
- - !ruby/object:Gem::Dependency
108
- name: rspec
109
- requirement: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: '3.10'
114
- type: :development
115
- prerelease: false
116
- version_requirements: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- version: '3.10'
121
- - !ruby/object:Gem::Dependency
122
- name: rubocop
123
- requirement: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - "~>"
126
- - !ruby/object:Gem::Version
127
- version: '1.35'
128
- type: :development
129
- prerelease: false
130
- version_requirements: !ruby/object:Gem::Requirement
131
- requirements:
132
- - - "~>"
133
- - !ruby/object:Gem::Version
134
- version: '1.35'
135
- - !ruby/object:Gem::Dependency
136
- name: rubocop-performance
137
- requirement: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: '1.14'
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: 1.14.3
145
- type: :development
146
- prerelease: false
147
- version_requirements: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '1.14'
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- version: 1.14.3
155
- - !ruby/object:Gem::Dependency
156
- name: rubocop-rspec
157
- requirement: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - "~>"
160
- - !ruby/object:Gem::Version
161
- version: '2.12'
162
- - - ">="
163
- - !ruby/object:Gem::Version
164
- version: 2.12.1
165
- type: :development
166
- prerelease: false
167
- version_requirements: !ruby/object:Gem::Requirement
168
- requirements:
169
- - - "~>"
170
- - !ruby/object:Gem::Version
171
- version: '2.12'
172
- - - ">="
173
- - !ruby/object:Gem::Version
174
- version: 2.12.1
175
- - !ruby/object:Gem::Dependency
176
- name: yard
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: 0.9.28
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: 0.9.28
11
+ date: 2023-12-28 00:00:00.000000000 Z
12
+ dependencies: []
189
13
  description: ProtectedConstructor Gem
190
14
  email:
191
15
  - public.gma@gmail.com
@@ -194,6 +18,7 @@ extensions: []
194
18
  extra_rdoc_files: []
195
19
  files:
196
20
  - ".github/dependabot.yml"
21
+ - ".github/workflows/ruby.yml"
197
22
  - ".gitignore"
198
23
  - ".rspec"
199
24
  - ".ruby-version"
@@ -204,8 +29,8 @@ files:
204
29
  - ProtectedConstructor.gemspec
205
30
  - README.md
206
31
  - Rakefile
207
- - lib/ProtectedConstructor.rb
208
32
  - lib/ProtectedConstructor/version.rb
33
+ - lib/protected_constructor.rb
209
34
  - spec/ProtectedConstructor/protected_constructor_spec.rb
210
35
  - spec/spec_helper.rb
211
36
  - spec/support/shared_klasses/klass_factory.rb
@@ -222,7 +47,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
222
47
  requirements:
223
48
  - - "~>"
224
49
  - !ruby/object:Gem::Version
225
- version: 3.0.1
50
+ version: '3.0'
226
51
  required_rubygems_version: !ruby/object:Gem::Requirement
227
52
  requirements:
228
53
  - - ">="