contracted_value 0.1.1 → 0.1.3

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: 761fdc9b4b487bb54d59724fa87a6e2e3ca1665cae0774bc2f7cdcf50d076913
4
- data.tar.gz: c051835f898ce826968eb7616fc414ffeff3677926b48d001904528432354a88
3
+ metadata.gz: 910e3c46d5bcd1d4f7bce77cc41b89468ee2a3e7fce57bd281a484eb8e114c48
4
+ data.tar.gz: 488d7ca201c5e973ae5e183154ecb917561d756af14533caa4f06b2f2889c9ac
5
5
  SHA512:
6
- metadata.gz: a6d714074711c3d1ef3856e15cf2ba4e0035f90c493cdebe485d90aef52990f8b03d0055c0a96d7f34ccbbc1b230e0f905ea7baf8258200e739ec0bdd0b3cb87
7
- data.tar.gz: 7543ae38d5eddb8b0304a7171caec91b4472b66210752c79783b481ee07b32b34924d122db46cf90442ed6127fe4055d862224b3c49b1f0c33b1d07fb53753cc
6
+ metadata.gz: 208de749d05602d4914bcd9257ff6d902c9bcb3882c1a44ee2f52aab6b5fa6a1889e5a98743a2b2a64f750aac1d15b373599616b82d810ad6798c53fa3e14c85
7
+ data.tar.gz: d89f379d4f35f69ab269713852194cf04b276db8d25ef08cc602deadcb7148dc03b240711cc9709f2d56a6b9a799ee2253e93d16d5b44f3da9cef45a115b73aa
@@ -6,11 +6,13 @@ on:
6
6
  - master
7
7
  paths-ignore:
8
8
  - 'README.md'
9
+ - 'CHANGELOG.md'
9
10
  push:
10
11
  branches:
11
12
  - master
12
13
  paths-ignore:
13
14
  - 'README.md'
15
+ - 'CHANGELOG.md'
14
16
 
15
17
  jobs:
16
18
  coverage:
@@ -24,16 +26,16 @@ jobs:
24
26
  os:
25
27
  - ubuntu-latest
26
28
  ruby:
27
- - "2.7"
29
+ - "3.2"
28
30
  gemfile:
29
- - gemfiles/contracts_16_0.gemfile
31
+ - gemfiles/contracts_17_0.gemfile
30
32
  env:
31
33
  BUNDLE_GEMFILE: ${{ matrix.gemfile }}
32
34
  COVERALLS: true
33
35
  runs-on: ${{ matrix.os }}
34
36
  steps:
35
37
  - name: Checkout
36
- uses: actions/checkout@v3
38
+ uses: actions/checkout@v4
37
39
 
38
40
  - name: Setup Ruby
39
41
  uses: ruby/setup-ruby@v1
@@ -6,11 +6,13 @@ on:
6
6
  - master
7
7
  paths-ignore:
8
8
  - 'README.md'
9
+ - 'CHANGELOG.md'
9
10
  push:
10
11
  branches:
11
12
  - master
12
13
  paths-ignore:
13
14
  - 'README.md'
15
+ - 'CHANGELOG.md'
14
16
 
15
17
  jobs:
16
18
  unit_tests:
@@ -26,15 +28,12 @@ jobs:
26
28
  ruby:
27
29
  - "3.0"
28
30
  - "3.1"
31
+ - "3.2"
29
32
  gemfile:
30
33
  - gemfiles/contracts_17_0.gemfile
31
34
  allow_failures:
32
35
  - false
33
36
  include:
34
- - os: ubuntu-latest
35
- ruby: "2.7"
36
- gemfile: gemfiles/contracts_16_0.gemfile
37
- allow_failures: false
38
37
  - os: ubuntu-latest
39
38
  ruby: "ruby-head"
40
39
  gemfile: gemfiles/contracts_17_0.gemfile
@@ -46,7 +45,7 @@ jobs:
46
45
  continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
47
46
  steps:
48
47
  - name: Checkout
49
- uses: actions/checkout@v3
48
+ uses: actions/checkout@v4
50
49
  - name: Setup Ruby
51
50
  uses: ruby/setup-ruby@v1
52
51
  with:
data/Appraisals CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- appraise "contracts_16_0" do
4
- gem "contracts", "~> 0.16.0"
3
+ appraise "contracts_17_0" do
4
+ gem "contracts", "~> 0.17.0"
5
5
  end
data/CHANGELOG.md CHANGED
@@ -3,7 +3,7 @@ All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
5
 
6
- ## [Unreleased]
6
+ ## [Unreleased] - NOW
7
7
 
8
8
  ### Added
9
9
 
@@ -18,7 +18,24 @@ This project adheres to [Semantic Versioning](http://semver.org/).
18
18
  - Nothing
19
19
 
20
20
 
21
- ## [Unreleased]
21
+ ## [0.1.3] - 2023-10-11
22
+
23
+ ### Fixed
24
+
25
+ - Revert `Make code "Object Shape friendly"`
26
+ Strange issue discovered in an app in production environment
27
+
28
+
29
+ ## [0.1.2] - 2023-10-11
30
+
31
+ ### Changed
32
+
33
+ - Requires Ruby 3.0, contracts >= 0.17 (Ruby 2.7 EOL)
34
+ - Make code "Object Shape friendly"
35
+ (https://github.com/PikachuEXE/contracted_value/pull/5)
36
+
37
+
38
+ ## [0.1.1] - 2022-09-07
22
39
 
23
40
  ### Changed
24
41
 
@@ -29,10 +46,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
29
46
  - Fix Ruby 3.x compatibility
30
47
 
31
48
 
32
- ## 0.1.0 - 2019-06-05
49
+ ## [0.1.0] - 2019-06-05
33
50
 
34
51
  ### Added
35
52
 
36
53
  - Initial release
37
54
 
38
- [Unreleased]: https://github.com/PikachuEXE/contracted_value/compare/v0.1.0...HEAD
55
+ [0.1.3]: https://github.com/PikachuEXE/contracted_value/releases/tag/v0.1.3
56
+ [0.1.2]: https://github.com/PikachuEXE/contracted_value/releases/tag/v0.1.2
57
+ [0.1.1]: https://github.com/PikachuEXE/contracted_value/releases/tag/v0.1.1
58
+ [0.1.0]: https://github.com/PikachuEXE/contracted_value/releases/tag/v0.1.0
data/README.md CHANGED
@@ -11,7 +11,7 @@ See details explanation in below sections
11
11
 
12
12
  ## Status
13
13
 
14
- [![GitHub Build Status](https://img.shields.io/github/workflow/status/PikachuEXE/contracted_value/Tests?style=flat-square)](https://github.com/PikachuEXE/contracted_value/actions?query=workflow%3ATests)
14
+ [![GitHub Build Status](https://img.shields.io/github/actions/workflow/status/PikachuEXE/contracted_value/tests.yaml?branch=master&style=flat-square)](https://github.com/PikachuEXE/contracted_value/actions/workflows/tests.yaml)
15
15
 
16
16
  [![Gem Version](http://img.shields.io/gem/v/contracted_value.svg?style=flat-square)](http://badge.fury.io/rb/contracted_value)
17
17
  [![License](https://img.shields.io/github/license/PikachuEXE/contracted_value.svg?style=flat-square)](http://badge.fury.io/rb/contracted_value)
@@ -12,9 +12,9 @@ Gem::Specification.new do |s|
12
12
  s.platform = Gem::Platform::RUBY
13
13
  s.name = gem_name
14
14
  s.version = ContractedValue::VERSION
15
- s.summary = "Some Tweaks for ActiveRecord"
15
+ s.summary = "Contracted immutable(by default) value objects"
16
16
  s.description = <<-DOC
17
- ActiveRecord is great, but could be better. Here are some tweaks for it.
17
+ Library for creating contracted immutable(by default) value objects supported by contracts.ruby & ice_nine
18
18
  DOC
19
19
 
20
20
  s.license = "MIT"
@@ -28,14 +28,14 @@ Gem::Specification.new do |s|
28
28
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
29
29
  s.require_paths = ["lib"]
30
30
 
31
- s.add_dependency "contracts", "~> 0.15"
31
+ s.add_dependency "contracts", "~> 0.17"
32
32
  s.add_dependency "ice_nine"
33
33
 
34
34
  s.add_development_dependency "bundler", ">= 1.0.0"
35
35
  s.add_development_dependency "rake", ">= 10.0", "<= 14.0"
36
36
  s.add_development_dependency "pry"
37
37
 
38
- s.add_development_dependency "appraisal", "~> 2.0"
38
+ s.add_development_dependency "appraisal", "~> 2.0", ">= 2.5.0"
39
39
 
40
40
  s.add_development_dependency "rspec", "~> 3.0"
41
41
  s.add_development_dependency "rspec-its", "~> 1.0"
@@ -49,7 +49,7 @@ Gem::Specification.new do |s|
49
49
 
50
50
  s.add_development_dependency "rubocop", ">= 0.70"
51
51
 
52
- s.required_ruby_version = ">= 2.7.0"
52
+ s.required_ruby_version = ">= 3.0.0"
53
53
 
54
54
  s.required_rubygems_version = ">= 1.4.0"
55
55
  end
@@ -182,10 +182,17 @@ module ContractedValue
182
182
  attr_reader :default_value
183
183
 
184
184
  def raise_error_if_inputs_invalid
185
+ raise_error_if_name_invalid
185
186
  raise_error_if_refrigeration_mode_invalid
186
187
  raise_error_if_default_value_invalid
187
188
  end
188
189
 
190
+ def raise_error_if_name_invalid
191
+ return if name.is_a?(Symbol)
192
+
193
+ raise NotImplementedError, "Internal error: name is not a symbol (#{name.class.name})"
194
+ end
195
+
189
196
  def raise_error_if_refrigeration_mode_invalid
190
197
  return if RefrigerationMode::Enum.all.include?(refrigeration_mode)
191
198
 
@@ -288,16 +295,19 @@ module ContractedValue
288
295
  refrigeration_mode: RefrigerationMode::Enum::DEEP,
289
296
  default_value: Private::ATTR_DEFAULT_VALUE_ABSENT_VAL
290
297
  )
298
+ # Using symbol since attribute names are limited in number
299
+ # An alternative would be using frozen string
300
+ name_in_sym = name.to_sym
291
301
 
292
302
  attr = Attribute.new(
293
- name: name,
303
+ name: name_in_sym,
294
304
  contract: contract,
295
305
  refrigeration_mode: refrigeration_mode,
296
306
  default_value: default_value,
297
307
  )
298
308
  @attribute_set = @attribute_set.add(attr)
299
309
 
300
- attr_reader(name)
310
+ attr_reader(name_in_sym)
301
311
  end
302
312
 
303
313
  # @api private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ContractedValue
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.3"
5
5
  end
@@ -10,40 +10,50 @@ require "spec_helper"
10
10
  end
11
11
 
12
12
  example "does not raise error when NOT declaring any attribute" do
13
- expect(->{ value_class }).to_not raise_error
13
+ expect { value_class }.to_not raise_error
14
14
  end
15
15
 
16
16
  example "does not raise error when declaring 1 attribute" do
17
- expect(
18
- ->{
19
- value_class.class_eval do
20
- attribute(:attribute_1)
21
- end
22
- },
23
- ).to_not raise_error
17
+ expect {
18
+ value_class.class_eval do
19
+ attribute(:attribute_1)
20
+ end
21
+ }.to_not raise_error
24
22
  end
25
23
 
26
24
  example "does not raise error when declaring N attributes with different names" do
27
- expect(
28
- ->{
29
- value_class.class_eval do
30
- attribute(:attribute_1)
31
- attribute(:attribute_2)
32
- end
33
- },
34
- ).to_not raise_error
25
+ expect {
26
+ value_class.class_eval do
27
+ attribute(:attribute_1)
28
+ attribute(:attribute_2)
29
+ end
30
+ }.to_not raise_error
35
31
  end
36
32
 
37
33
  example "does raise error when declaring N attributes with the same name" do
38
- expect(
39
- ->{
40
- value_class.class_eval do
41
- attribute(:attribute_1)
42
- attribute(:attribute_2)
43
- attribute(:attribute_1)
44
- end
45
- },
46
- ).to raise_error(::ContractedValue::Errors::DuplicateAttributeDeclaration)
34
+ expect {
35
+ value_class.class_eval do
36
+ attribute(:attribute_1)
37
+ attribute(:attribute_2)
38
+ attribute(:attribute_1)
39
+ end
40
+ }.to raise_error(::ContractedValue::Errors::DuplicateAttributeDeclaration)
41
+ end
42
+
43
+ example "does not raise error when declaring 1 attribute with string name" do
44
+ expect {
45
+ value_class.class_eval do
46
+ attribute("attribute_1")
47
+ end
48
+ }.to_not raise_error
49
+ end
50
+
51
+ example "does not raise error when declaring 1 attribute with number name" do
52
+ expect {
53
+ value_class.class_eval do
54
+ attribute(1)
55
+ end
56
+ }.to raise_error(::NoMethodError, /undefined method `to_sym'/)
47
57
  end
48
58
  end
49
59
 
@@ -79,39 +89,39 @@ require "spec_helper"
79
89
 
80
90
  it "does raise error when input is not a hash" do
81
91
  aggregate_failures do
82
- expect(
83
- ->{
84
- value_class.new(
85
- non_hash,
86
- )
87
- },
88
- ).to raise_error(::ContractedValue::Errors::InvalidInputType)
92
+ expect {
93
+ value_class.new(
94
+ non_hash,
95
+ )
96
+ }.to raise_error(::ContractedValue::Errors::InvalidInputType)
89
97
  end
90
98
  end
91
99
 
92
100
  it "does not raise error when input is a hash" do
93
101
  aggregate_failures do
94
- expect(
95
- ->{
96
- value_class.new(
97
- default_inputs,
98
- )
99
- },
100
- ).to_not raise_error
102
+ expect {
103
+ value_class.new(
104
+ default_inputs,
105
+ )
106
+ }.to_not raise_error
101
107
  end
102
108
  end
103
109
 
104
110
  it "does not raise error when input is a value" do
105
111
  aggregate_failures do
106
- expect(
107
- ->{
112
+ new_val = nil
113
+ expect {
114
+ new_val = value_class.new(
108
115
  value_class.new(
109
- value_class.new(
110
- default_inputs,
111
- ),
112
- )
113
- },
114
- ).to_not raise_error
116
+ default_inputs,
117
+ ),
118
+ )
119
+ }.to_not raise_error
120
+ if new_val
121
+ default_inputs.each_pair do |attr_name, attr_val|
122
+ expect(new_val.public_send(attr_name)).to eq(attr_val)
123
+ end
124
+ end
115
125
  end
116
126
  end
117
127
 
@@ -121,13 +131,11 @@ require "spec_helper"
121
131
  :attribute_1,
122
132
  :attribute_2,
123
133
  ].each do |attr_name|
124
- expect(
125
- ->{
126
- value_class.new(
127
- default_inputs.dup.tap{|h| h.delete(attr_name)},
128
- )
129
- },
130
- ).to raise_error(::ContractedValue::Errors::MissingAttributeInput)
134
+ expect {
135
+ value_class.new(
136
+ default_inputs.dup.tap{|h| h.delete(attr_name)},
137
+ )
138
+ }.to raise_error(::ContractedValue::Errors::MissingAttributeInput)
131
139
  end
132
140
  end
133
141
  end
@@ -138,15 +146,13 @@ require "spec_helper"
138
146
  :attribute_1,
139
147
  :attribute_2,
140
148
  ].each do |attr_name|
141
- expect(
142
- ->{
143
- value_class.new(
144
- default_inputs.each_with_object({}) do |(k, _v), h|
145
- h[k] = nil
146
- end
147
- )
148
- },
149
- ).to_not raise_error
149
+ expect {
150
+ value_class.new(
151
+ default_inputs.each_with_object({}) do |(k, _v), h|
152
+ h[k] = nil
153
+ end
154
+ )
155
+ }.to_not raise_error
150
156
  end
151
157
  end
152
158
  end
@@ -175,36 +181,30 @@ require "spec_helper"
175
181
 
176
182
 
177
183
  it "does not raise error when all values are valid according to contracts" do
178
- expect(
179
- ->{
180
- value_class.new(
181
- default_inputs
182
- )
183
- },
184
- ).to_not raise_error
184
+ expect {
185
+ value_class.new(
186
+ default_inputs
187
+ )
188
+ }.to_not raise_error
185
189
  end
186
190
 
187
191
  it "does raise error when any value is invalid according to contracts" do
188
192
  aggregate_failures do
189
- expect(
190
- ->{
191
- value_class.new(
192
- default_inputs.merge(
193
- attribute_with_contract_1: "",
194
- ),
195
- )
196
- },
197
- ).to raise_error(::ContractedValue::Errors::InvalidAttributeValue)
193
+ expect {
194
+ value_class.new(
195
+ default_inputs.merge(
196
+ attribute_with_contract_1: "",
197
+ ),
198
+ )
199
+ }.to raise_error(::ContractedValue::Errors::InvalidAttributeValue)
198
200
 
199
- expect(
200
- ->{
201
- value_class.new(
202
- default_inputs.merge(
203
- attribute_with_contract_2: 0,
204
- ),
205
- )
206
- },
207
- ).to raise_error(::ContractedValue::Errors::InvalidAttributeValue)
201
+ expect {
202
+ value_class.new(
203
+ default_inputs.merge(
204
+ attribute_with_contract_2: 0,
205
+ ),
206
+ )
207
+ }.to raise_error(::ContractedValue::Errors::InvalidAttributeValue)
208
208
  end
209
209
  end
210
210
  end
@@ -237,22 +237,18 @@ require "spec_helper"
237
237
  # Create it just before expectation
238
238
  value_object
239
239
 
240
- expect(
241
- ->{
242
- hash_as_input[:a] = nil
243
- },
244
- ).to raise_error(::RuntimeError, /can't modify frozen/)
240
+ expect {
241
+ hash_as_input[:a] = nil
242
+ }.to raise_error(::RuntimeError, /can't modify frozen/)
245
243
  end
246
244
 
247
245
  it "does deeply freeze the inputs" do
248
246
  # Create it just before expectation
249
247
  value_object
250
248
 
251
- expect(
252
- ->{
253
- hash_as_deep_nested_content[:a] = nil
254
- },
255
- ).to raise_error(::RuntimeError, /can't modify frozen/)
249
+ expect {
250
+ hash_as_deep_nested_content[:a] = nil
251
+ }.to raise_error(::RuntimeError, /can't modify frozen/)
256
252
  end
257
253
  end
258
254
 
@@ -265,22 +261,18 @@ require "spec_helper"
265
261
  # Create it just before expectation
266
262
  value_object
267
263
 
268
- expect(
269
- ->{
270
- hash_as_input[:a] = nil
271
- },
272
- ).to raise_error(::RuntimeError, /can't modify frozen/)
264
+ expect {
265
+ hash_as_input[:a] = nil
266
+ }.to raise_error(::RuntimeError, /can't modify frozen/)
273
267
  end
274
268
 
275
269
  it "does not deeply freeze the inputs" do
276
270
  # Create it just before expectation
277
271
  value_object
278
272
 
279
- expect(
280
- ->{
281
- hash_as_deep_nested_content[:a] = nil
282
- },
283
- ).to_not raise_error
273
+ expect {
274
+ hash_as_deep_nested_content[:a] = nil
275
+ }.to_not raise_error
284
276
  end
285
277
  end
286
278
 
@@ -293,22 +285,18 @@ require "spec_helper"
293
285
  # Create it just before expectation
294
286
  value_object
295
287
 
296
- expect(
297
- ->{
298
- hash_as_input[:a] = nil
299
- },
300
- ).to_not raise_error
288
+ expect {
289
+ hash_as_input[:a] = nil
290
+ }.to_not raise_error
301
291
  end
302
292
 
303
293
  it "does not deeply freeze the inputs" do
304
294
  # Create it just before expectation
305
295
  value_object
306
296
 
307
- expect(
308
- ->{
309
- hash_as_deep_nested_content[:a] = nil
310
- },
311
- ).to_not raise_error
297
+ expect {
298
+ hash_as_deep_nested_content[:a] = nil
299
+ }.to_not raise_error
312
300
  end
313
301
  end
314
302
 
@@ -533,11 +521,9 @@ require "spec_helper"
533
521
  end
534
522
 
535
523
  example "does not raise error" do
536
- expect(
537
- ->{
538
- child_value_class.new(attribute_1: "wut")
539
- },
540
- ).to_not raise_error
524
+ expect {
525
+ child_value_class.new(attribute_1: "wut")
526
+ }.to_not raise_error
541
527
  end
542
528
 
543
529
  end
@@ -559,36 +545,30 @@ require "spec_helper"
559
545
  end
560
546
 
561
547
  example "does not raise error when declaring 1 new attribute" do
562
- expect(
563
- ->{
564
- child_value_class.class_eval do
565
- attribute(:attribute_3)
566
- end
567
- },
568
- ).to_not raise_error
548
+ expect {
549
+ child_value_class.class_eval do
550
+ attribute(:attribute_3)
551
+ end
552
+ }.to_not raise_error
569
553
  end
570
554
 
571
555
  example "does not raise error when declaring N attributes with different names" do
572
- expect(
573
- ->{
574
- child_value_class.class_eval do
575
- attribute(:attribute_3)
576
- attribute(:attribute_4)
577
- end
578
- },
579
- ).to_not raise_error
556
+ expect {
557
+ child_value_class.class_eval do
558
+ attribute(:attribute_3)
559
+ attribute(:attribute_4)
560
+ end
561
+ }.to_not raise_error
580
562
  end
581
563
 
582
564
  example "does raise error when declaring N attributes with the same name" do
583
- expect(
584
- ->{
585
- child_value_class.class_eval do
586
- attribute(:attribute_3)
587
- attribute(:attribute_4)
588
- attribute(:attribute_3)
589
- end
590
- },
591
- ).to raise_error(::ContractedValue::Errors::DuplicateAttributeDeclaration)
565
+ expect {
566
+ child_value_class.class_eval do
567
+ attribute(:attribute_3)
568
+ attribute(:attribute_4)
569
+ attribute(:attribute_3)
570
+ end
571
+ }.to raise_error(::ContractedValue::Errors::DuplicateAttributeDeclaration)
592
572
  end
593
573
 
594
574
  end
@@ -632,31 +612,27 @@ require "spec_helper"
632
612
  end
633
613
 
634
614
  example "does not raise error when declaring existing attribute with different contract" do
635
- expect(
636
- ->{
637
- child_value_class.class_eval do
638
- attribute(
639
- :attribute_1,
640
- contract: ::Contracts::Builtin::NatPos
641
- )
642
- end
643
- child_value_class.new(attribute_1: "")
644
- },
645
- ).to raise_error(::ContractedValue::Errors::InvalidAttributeValue)
615
+ expect {
616
+ child_value_class.class_eval do
617
+ attribute(
618
+ :attribute_1,
619
+ contract: ::Contracts::Builtin::NatPos
620
+ )
621
+ end
622
+ child_value_class.new(attribute_1: "")
623
+ }.to raise_error(::ContractedValue::Errors::InvalidAttributeValue)
646
624
  end
647
625
 
648
626
  example "does not raise error when declaring existing attribute with different default_value" do
649
- expect(
650
- ->{
651
- child_value_class.class_eval do
652
- attribute(
653
- :attribute_1,
654
- default_value: nil,
655
- )
656
- end
657
- child_value_class.new
658
- },
659
- ).to_not raise_error
627
+ expect {
628
+ child_value_class.class_eval do
629
+ attribute(
630
+ :attribute_1,
631
+ default_value: nil,
632
+ )
633
+ end
634
+ child_value_class.new
635
+ }.to_not raise_error
660
636
  end
661
637
 
662
638
  example "does not raise error when declaring existing attribute with different refrigeration_mode" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contracted_value
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - PikachuEXE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-07 00:00:00.000000000 Z
11
+ date: 2023-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: contracts
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.15'
19
+ version: '0.17'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.15'
26
+ version: '0.17'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ice_nine
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -93,6 +93,9 @@ dependencies:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '2.0'
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 2.5.0
96
99
  type: :development
97
100
  prerelease: false
98
101
  version_requirements: !ruby/object:Gem::Requirement
@@ -100,6 +103,9 @@ dependencies:
100
103
  - - "~>"
101
104
  - !ruby/object:Gem::Version
102
105
  version: '2.0'
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 2.5.0
103
109
  - !ruby/object:Gem::Dependency
104
110
  name: rspec
105
111
  requirement: !ruby/object:Gem::Requirement
@@ -198,8 +204,8 @@ dependencies:
198
204
  - - ">="
199
205
  - !ruby/object:Gem::Version
200
206
  version: '0.70'
201
- description: " ActiveRecord is great, but could be better. Here are some tweaks
202
- for it.\n"
207
+ description: " Library for creating contracted immutable(by default) value objects
208
+ supported by contracts.ruby & ice_nine\n"
203
209
  email:
204
210
  - pikachuexe@gmail.com
205
211
  executables: []
@@ -222,7 +228,6 @@ files:
222
228
  - README.md
223
229
  - Rakefile
224
230
  - contracted_value.gemspec
225
- - gemfiles/contracts_16_0.gemfile
226
231
  - gemfiles/contracts_17_0.gemfile
227
232
  - lib/contracted_value.rb
228
233
  - lib/contracted_value/core.rb
@@ -242,17 +247,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
242
247
  requirements:
243
248
  - - ">="
244
249
  - !ruby/object:Gem::Version
245
- version: 2.7.0
250
+ version: 3.0.0
246
251
  required_rubygems_version: !ruby/object:Gem::Requirement
247
252
  requirements:
248
253
  - - ">="
249
254
  - !ruby/object:Gem::Version
250
255
  version: 1.4.0
251
256
  requirements: []
252
- rubygems_version: 3.3.21
257
+ rubygems_version: 3.4.20
253
258
  signing_key:
254
259
  specification_version: 4
255
- summary: Some Tweaks for ActiveRecord
260
+ summary: Contracted immutable(by default) value objects
256
261
  test_files:
257
262
  - spec/contracted_value/value_spec.rb
258
263
  - spec/contracted_value_spec.rb
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "contracts", "~> 0.16.0"
6
-
7
- gemspec path: "../"