immutable_struct_ex 0.2.1 → 0.2.2

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: 0ffcdbe2613240712bb17679f5399a1caa3253c264cf0c9c10a678a4caa4a3f7
4
- data.tar.gz: 29ff8adba1c95169aa7552fb0f4eff84345c5f602ef2f9f1f79d1e2323bc2e37
3
+ metadata.gz: 0aff76841f6be70d98d0b150ee0334721f37d0f598f5f2f095a3f0c4159a98da
4
+ data.tar.gz: ddfcfb2280e4255712c8dbfaced27e59bd0006ee554acc79026f9bf5e11ba3ab
5
5
  SHA512:
6
- metadata.gz: be076b0ffa994a1ad8a5b351017cf4e7b1f82d2b67dc1b582d80cc96e2c2465ae1c381a957b8868751de2699ba5f9eec60336dc9b9d5f679061d7189ef2335fd
7
- data.tar.gz: 19bbbbd8d226a8808546e89897060166bd7c74a8fa10a40ce1e1f0289a08e9b0b72fa99830f473d918ccb872446f782a014f86124cb9fc8f32487f13a56e87e3
6
+ metadata.gz: 5e3569f44e71381289d244966efd8661b90f8356d134bc3771dce22613ec96b111f799a4716a1b4f46981e4525391a502203965ecb18a6ec05214c40ef8ae07e
7
+ data.tar.gz: 130965db745cdcc4f9f18d47aa5773ca86dda87ede80c0022263ab0311297082b3106726102b5e2e54d6fd4a840889b8b05eba4f3db77d7bb9bb5471e632c371
data/.gitignore CHANGED
@@ -13,6 +13,7 @@
13
13
  # rspec failure tracking
14
14
  .rspec_status
15
15
 
16
+ /.vscode/
16
17
  *.code-workspace
17
18
 
18
19
  scratch.rb
data/CHANGELOG.md CHANGED
@@ -1,12 +1,20 @@
1
+ ### 0.2.2
2
+ * Changes
3
+ * Restructure modules under lib/immutable_structure_ex folder.
4
+ * Make codez to create struct a little cleaner/tighter.
5
+ * Ignore .vscode folder in .gitignore file.
6
+ * Update gems and especially rake gem version to squash CVE-2020-8130, see https://github.com/advisories/GHSA-jppv-gw3r-w3q8.
7
+ * Fix rubocop violations.
8
+
1
9
  ### 0.2.1
2
10
  * Enhancements
3
- * General refactors/cleanup
11
+ * General refactors/cleanup.
4
12
  * Added Immutable module; when extended on a struct, makes it immutable.
5
13
  * Added Comparable module; when extended on a struct, makes it comparable to other structs and hashes.
6
14
 
7
15
  ### 0.1.1
8
16
  * Enhancements
9
- * Added this CHANGELOG.md
17
+ * Added this CHANGELOG.md.
10
18
  * Bug fix
11
19
  * Equality method #== did not work when comparing objects whose underlying hashes were equal.
12
20
  * Added #== method to compare underlying hashes by calling a.to_h == b.to_h.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- immutable_struct_ex (0.2.1)
4
+ immutable_struct_ex (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -11,6 +11,7 @@ GEM
11
11
  coderay (1.1.3)
12
12
  diff-lcs (1.5.0)
13
13
  docile (1.4.0)
14
+ json (2.6.2)
14
15
  kwalify (0.7.2)
15
16
  method_source (1.0.0)
16
17
  parallel (1.22.1)
@@ -23,7 +24,7 @@ GEM
23
24
  byebug (~> 11.0)
24
25
  pry (~> 0.13.0)
25
26
  rainbow (3.1.1)
26
- rake (10.5.0)
27
+ rake (13.0.6)
27
28
  reek (6.1.1)
28
29
  kwalify (~> 0.7.0)
29
30
  parser (~> 3.1.0)
@@ -43,13 +44,14 @@ GEM
43
44
  diff-lcs (>= 1.2.0, < 2.0)
44
45
  rspec-support (~> 3.11.0)
45
46
  rspec-support (3.11.0)
46
- rubocop (1.9.1)
47
+ rubocop (1.35.0)
48
+ json (~> 2.3)
47
49
  parallel (~> 1.10)
48
- parser (>= 3.0.0.0)
50
+ parser (>= 3.1.2.1)
49
51
  rainbow (>= 2.2.2, < 4.0)
50
52
  regexp_parser (>= 1.8, < 3.0)
51
- rexml
52
- rubocop-ast (>= 1.2.0, < 2.0)
53
+ rexml (>= 3.2.5, < 4.0)
54
+ rubocop-ast (>= 1.20.1, < 2.0)
53
55
  ruby-progressbar (~> 1.7)
54
56
  unicode-display_width (>= 1.4.0, < 3.0)
55
57
  rubocop-ast (1.21.0)
@@ -57,9 +59,8 @@ GEM
57
59
  rubocop-performance (1.14.3)
58
60
  rubocop (>= 1.7.0, < 2.0)
59
61
  rubocop-ast (>= 0.4.0)
60
- rubocop-rspec (2.4.0)
61
- rubocop (~> 1.0)
62
- rubocop-ast (>= 1.1.0)
62
+ rubocop-rspec (2.12.1)
63
+ rubocop (~> 1.31)
63
64
  ruby-progressbar (1.11.0)
64
65
  simplecov (0.21.2)
65
66
  docile (~> 1.1)
@@ -73,15 +74,15 @@ PLATFORMS
73
74
  x86_64-darwin-19
74
75
 
75
76
  DEPENDENCIES
76
- bundler (~> 2.3.0)
77
+ bundler (~> 2.2, >= 2.2.17)
77
78
  immutable_struct_ex!
78
79
  pry-byebug (~> 3.9)
79
- rake (~> 10.0)
80
- reek (~> 6.0, >= 6.0.4)
81
- rspec (~> 3.0)
82
- rubocop (~> 1.9.1)
83
- rubocop-performance (~> 1.11, >= 1.11.3)
84
- rubocop-rspec (~> 2.3)
80
+ rake (~> 13.0, >= 13.0.6)
81
+ reek (~> 6.1, >= 6.1.1)
82
+ rspec (>= 3.10)
83
+ rubocop (~> 1.35)
84
+ rubocop-performance (~> 1.14, >= 1.14.3)
85
+ rubocop-rspec (~> 2.12, >= 2.12.1)
85
86
  simplecov (~> 0.21.2)
86
87
 
87
88
  BUNDLED WITH
@@ -32,16 +32,13 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ['lib']
34
34
 
35
+ spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.17'
35
36
  spec.add_development_dependency 'pry-byebug', '~> 3.9'
36
- spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.4'
37
- # This verson of rubocop is returning errors.
38
- # spec.add_development_dependency 'rubocop', '~> 1.14'
39
- spec.add_development_dependency 'rubocop', '~> 1.9.1'
40
- spec.add_development_dependency 'rubocop-performance', '~> 1.11', '>= 1.11.3'
41
- spec.add_development_dependency 'rubocop-rspec', '~> 2.3'
37
+ spec.add_development_dependency 'reek', '~> 6.1', '>= 6.1.1'
38
+ spec.add_development_dependency 'rspec', '>= 3.10'
39
+ spec.add_development_dependency 'rubocop', '~> 1.35'
40
+ spec.add_development_dependency 'rubocop-performance', '~> 1.14', '>= 1.14.3'
41
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.12', '>= 2.12.1'
42
42
  spec.add_development_dependency 'simplecov', '~> 0.21.2'
43
-
44
- spec.add_development_dependency 'bundler', '~> 2.3.0'
45
- spec.add_development_dependency 'rake', '~> 10.0'
46
- spec.add_development_dependency 'rspec', '~> 3.0'
43
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
47
44
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ImmutableStructEx
4
- VERSION = '0.2.1'
4
+ VERSION = '0.2.2'
5
5
  end
@@ -1,17 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'immutable_struct_ex/version'
4
- require 'comparable'
5
- require 'immutable'
4
+ require 'immutable_struct_ex/comparable'
5
+ require 'immutable_struct_ex/immutable'
6
6
 
7
7
  # Defines the methods used to create/manage the ImmutableStructEx struct.
8
8
  module ImmutableStructEx
9
9
  class << self
10
10
  def new(**hash, &block)
11
- options_struct = Struct.new(*hash.keys, keyword_init: true, &block)
12
- options_struct.new(**hash).tap do |struct|
13
- struct.extend Comparable
14
- struct.extend Immutable
11
+ Struct.new(*hash.keys, keyword_init: true, &block).tap do |struct|
12
+ return struct.new(**hash).tap do |struct_object|
13
+ struct_object.extend Comparable
14
+ struct_object.extend Immutable
15
+ end
15
16
  end
16
17
  end
17
18
  end
metadata CHANGED
@@ -1,153 +1,171 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: immutable_struct_ex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gene M. Angelo, Jr.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-13 00:00:00.000000000 Z
11
+ date: 2022-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: pry-byebug
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.9'
19
+ version: '2.2'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.2.17
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: '3.9'
29
+ version: '2.2'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.2.17
27
33
  - !ruby/object:Gem::Dependency
28
- name: reek
34
+ name: pry-byebug
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '6.0'
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 6.0.4
39
+ version: '3.9'
37
40
  type: :development
38
41
  prerelease: false
39
42
  version_requirements: !ruby/object:Gem::Requirement
40
43
  requirements:
41
44
  - - "~>"
42
45
  - !ruby/object:Gem::Version
43
- version: '6.0'
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 6.0.4
46
+ version: '3.9'
47
47
  - !ruby/object:Gem::Dependency
48
- name: rubocop
48
+ name: reek
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 1.9.1
53
+ version: '6.1'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 6.1.1
54
57
  type: :development
55
58
  prerelease: false
56
59
  version_requirements: !ruby/object:Gem::Requirement
57
60
  requirements:
58
61
  - - "~>"
59
62
  - !ruby/object:Gem::Version
60
- version: 1.9.1
63
+ version: '6.1'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 6.1.1
61
67
  - !ruby/object:Gem::Dependency
62
- name: rubocop-performance
68
+ name: rspec
63
69
  requirement: !ruby/object:Gem::Requirement
64
70
  requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '1.11'
68
71
  - - ">="
69
72
  - !ruby/object:Gem::Version
70
- version: 1.11.3
73
+ version: '3.10'
71
74
  type: :development
72
75
  prerelease: false
73
76
  version_requirements: !ruby/object:Gem::Requirement
74
77
  requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '1.11'
78
78
  - - ">="
79
79
  - !ruby/object:Gem::Version
80
- version: 1.11.3
80
+ version: '3.10'
81
81
  - !ruby/object:Gem::Dependency
82
- name: rubocop-rspec
82
+ name: rubocop
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
85
  - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: '2.3'
87
+ version: '1.35'
88
88
  type: :development
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: '2.3'
94
+ version: '1.35'
95
95
  - !ruby/object:Gem::Dependency
96
- name: simplecov
96
+ name: rubocop-performance
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: 0.21.2
101
+ version: '1.14'
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 1.14.3
102
105
  type: :development
103
106
  prerelease: false
104
107
  version_requirements: !ruby/object:Gem::Requirement
105
108
  requirements:
106
109
  - - "~>"
107
110
  - !ruby/object:Gem::Version
108
- version: 0.21.2
111
+ version: '1.14'
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 1.14.3
109
115
  - !ruby/object:Gem::Dependency
110
- name: bundler
116
+ name: rubocop-rspec
111
117
  requirement: !ruby/object:Gem::Requirement
112
118
  requirements:
113
119
  - - "~>"
114
120
  - !ruby/object:Gem::Version
115
- version: 2.3.0
121
+ version: '2.12'
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 2.12.1
116
125
  type: :development
117
126
  prerelease: false
118
127
  version_requirements: !ruby/object:Gem::Requirement
119
128
  requirements:
120
129
  - - "~>"
121
130
  - !ruby/object:Gem::Version
122
- version: 2.3.0
131
+ version: '2.12'
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 2.12.1
123
135
  - !ruby/object:Gem::Dependency
124
- name: rake
136
+ name: simplecov
125
137
  requirement: !ruby/object:Gem::Requirement
126
138
  requirements:
127
139
  - - "~>"
128
140
  - !ruby/object:Gem::Version
129
- version: '10.0'
141
+ version: 0.21.2
130
142
  type: :development
131
143
  prerelease: false
132
144
  version_requirements: !ruby/object:Gem::Requirement
133
145
  requirements:
134
146
  - - "~>"
135
147
  - !ruby/object:Gem::Version
136
- version: '10.0'
148
+ version: 0.21.2
137
149
  - !ruby/object:Gem::Dependency
138
- name: rspec
150
+ name: rake
139
151
  requirement: !ruby/object:Gem::Requirement
140
152
  requirements:
141
153
  - - "~>"
142
154
  - !ruby/object:Gem::Version
143
- version: '3.0'
155
+ version: '13.0'
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 13.0.6
144
159
  type: :development
145
160
  prerelease: false
146
161
  version_requirements: !ruby/object:Gem::Requirement
147
162
  requirements:
148
163
  - - "~>"
149
164
  - !ruby/object:Gem::Version
150
- version: '3.0'
165
+ version: '13.0'
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 13.0.6
151
169
  description: Creates an immutable struct in one step.
152
170
  email:
153
171
  - public.gma@gmail.com
@@ -171,9 +189,9 @@ files:
171
189
  - bin/console
172
190
  - bin/setup
173
191
  - immutable_struct_ex.gemspec
174
- - lib/comparable.rb
175
- - lib/immutable.rb
176
192
  - lib/immutable_struct_ex.rb
193
+ - lib/immutable_struct_ex/comparable.rb
194
+ - lib/immutable_struct_ex/immutable.rb
177
195
  - lib/immutable_struct_ex/version.rb
178
196
  homepage: https://github.com/gangelo/immutable_struct_ex
179
197
  licenses: