dry-struct 1.7.0 → 1.8.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 +4 -4
- data/CHANGELOG.md +59 -0
- data/dry-struct.gemspec +1 -1
- data/lib/dry/struct/extensions/pretty_print.rb +1 -1
- data/lib/dry/struct/extensions/super_diff.rb +10 -0
- data/lib/dry/struct/extensions.rb +4 -0
- data/lib/dry/struct/struct_builder.rb +2 -2
- data/lib/dry/struct/sum.rb +2 -2
- data/lib/dry/struct/version.rb +1 -1
- data/lib/dry/struct.rb +2 -2
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca7dd75ba219a6860a4532f8ede515b598b70e32ef8f0e07d4f42d99ea429111
|
4
|
+
data.tar.gz: 37c2870ddde97c4da85845f2f5118c13443eb9dcec600588542bab6ef7a8960e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9848e0d45c5031418374744045f6866d5a991398376f17524d8326b41abd22b9109f0476d641a680cd5f5acab76d5493262d40cae335dc0ee7864f7958080992
|
7
|
+
data.tar.gz: 974e9069e93e5a16d57fe5f9744ba24339fa0a30d26487d5f2ade5a0a7ae07c79d995160f380e45838b83b8e4851e52c4705c7d7cea9634ab4404a8816ebf6da
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,64 @@
|
|
1
1
|
<!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
|
2
2
|
|
3
|
+
## 1.8.0 2025-03-09
|
4
|
+
|
5
|
+
|
6
|
+
### Added
|
7
|
+
|
8
|
+
- Added super_diff extension for improved struct diffing in RSpec tests (@flash-gordon in #197)
|
9
|
+
|
10
|
+
Add this to your Gemfile:
|
11
|
+
```ruby
|
12
|
+
gem 'super_diff', group: :test
|
13
|
+
```
|
14
|
+
|
15
|
+
Then activate the extension in your spec_helper:
|
16
|
+
```ruby
|
17
|
+
Dry::Struct.load_extensions(:super_diff)
|
18
|
+
```
|
19
|
+
|
20
|
+
Now this
|
21
|
+
|
22
|
+
```ruby
|
23
|
+
expected: #<Test::User name="Jane" age=22>
|
24
|
+
got: #<Test::User name="Jane" age=21>
|
25
|
+
|
26
|
+
(compared using eql?)
|
27
|
+
|
28
|
+
Diff:
|
29
|
+
@@ -1 +1 @@
|
30
|
+
-#<Test::User name="Jane" age=22>
|
31
|
+
+#<Test::User name="Jane" age=21>
|
32
|
+
```
|
33
|
+
|
34
|
+
will become this:
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
expected: #<Test::User name: "Jane", age: 22>
|
38
|
+
got: #<Test::User name: "Jane", age: 21>
|
39
|
+
|
40
|
+
(compared using eql?)
|
41
|
+
|
42
|
+
#<Test::User {
|
43
|
+
name: "Jane",
|
44
|
+
- age: 22
|
45
|
+
+ age: 21
|
46
|
+
}>
|
47
|
+
```
|
48
|
+
|
49
|
+
|
50
|
+
[Compare v1.7.1...v1.8.0](https://github.com/dry-rb/dry-struct/compare/v1.7.1...v1.8.0)
|
51
|
+
|
52
|
+
## 1.7.1 2025-01-31
|
53
|
+
|
54
|
+
|
55
|
+
### Fixed
|
56
|
+
|
57
|
+
- Syntax errors on 3.3.0 (@flash-gordon, see https://github.com/dry-rb/dry-types/issues/478)
|
58
|
+
|
59
|
+
|
60
|
+
[Compare v1.7.0...v1.7.1](https://github.com/dry-rb/dry-struct/compare/v1.7.0...v1.7.1)
|
61
|
+
|
3
62
|
## 1.7.0 2025-01-06
|
4
63
|
|
5
64
|
|
data/dry-struct.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
|
32
32
|
# to update dependencies edit project.yml
|
33
33
|
spec.add_dependency "dry-core", "~> 1.1"
|
34
|
-
spec.add_dependency "dry-types", "~> 1.8"
|
34
|
+
spec.add_dependency "dry-types", "~> 1.8", ">= 1.8.2"
|
35
35
|
spec.add_dependency "ice_nine", "~> 0.11"
|
36
36
|
spec.add_dependency "zeitwerk", "~> 2.6"
|
37
37
|
end
|
@@ -15,7 +15,7 @@ module Dry
|
|
15
15
|
# @param [Dry::Struct,Dry::Types::Type::Array,Undefined] type the superclass
|
16
16
|
# of the nested struct
|
17
17
|
# @yield the body of the nested struct
|
18
|
-
def call(attr_name, type, &)
|
18
|
+
def call(attr_name, type, &block)
|
19
19
|
const_name = const_name(type, attr_name)
|
20
20
|
check_name(const_name)
|
21
21
|
|
@@ -27,7 +27,7 @@ module Dry
|
|
27
27
|
schema builder.struct.schema.clear
|
28
28
|
end
|
29
29
|
|
30
|
-
class_exec(&)
|
30
|
+
class_exec(&block)
|
31
31
|
end
|
32
32
|
|
33
33
|
struct.const_set(const_name, new_type)
|
data/lib/dry/struct/sum.rb
CHANGED
data/lib/dry/struct/version.rb
CHANGED
data/lib/dry/struct.rb
CHANGED
@@ -27,10 +27,10 @@ module Dry
|
|
27
27
|
# Test = Dry.Struct(expected: Types::String) { schema(schema.strict) }
|
28
28
|
# Test[expected: "foo", unexpected: "bar"]
|
29
29
|
# #=> Dry::Struct::Error: [Test.new] unexpected keys [:unexpected] in Hash input
|
30
|
-
def self.Struct(attributes = Dry::Core::Constants::EMPTY_HASH, &)
|
30
|
+
def self.Struct(attributes = Dry::Core::Constants::EMPTY_HASH, &block)
|
31
31
|
Class.new(Dry::Struct) do
|
32
32
|
attributes.each { |a, type| attribute a, type }
|
33
|
-
module_eval(&) if block_given?
|
33
|
+
module_eval(&block) if block_given?
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-struct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Solnica
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-core
|
@@ -31,6 +31,9 @@ dependencies:
|
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.8'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 1.8.2
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -38,6 +41,9 @@ dependencies:
|
|
38
41
|
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
43
|
version: '1.8'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.8.2
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: ice_nine
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -85,6 +91,7 @@ files:
|
|
85
91
|
- lib/dry/struct/errors.rb
|
86
92
|
- lib/dry/struct/extensions.rb
|
87
93
|
- lib/dry/struct/extensions/pretty_print.rb
|
94
|
+
- lib/dry/struct/extensions/super_diff.rb
|
88
95
|
- lib/dry/struct/hashify.rb
|
89
96
|
- lib/dry/struct/printer.rb
|
90
97
|
- lib/dry/struct/struct_builder.rb
|