ProtectedConstructor 2.1.5 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="