attr_extras 7.0.0 → 7.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/attr_extras/explicit.rb +4 -4
- data/lib/attr_extras/version.rb +1 -1
- data/spec/attr_extras/method_object_spec.rb +14 -0
- data/spec/attr_extras/static_facade_spec.rb +14 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 466f80d1e0d81139ee5eeb996a584fb26b7ae69062e5bce75a901095e1b3ff82
|
4
|
+
data.tar.gz: a8e7b0a9ef95e1375d5a928d65f0c76371c8796c1cca813a4c27a897e32cadbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68c0d15374bd6a9a3eeaecd3d7b7458ed874e99f05927ac3a07b2c9d6d11c63d7c230347191eb1c06d2501fca387cb032c5d67e580422833afb4967bdc09fb74
|
7
|
+
data.tar.gz: c1012ecd9b537608b382eec96a8a449fc85d8f32dd2ad6380ae6a246cf5d44d3b61c00a7c8be21b32a7a0f4d22afcf7c7a0ca0870877a84dbb587c433b6355e6
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [7.1.0](https://github.com/barsoom/attr_extras/releases/tag/v7.1.0)
|
4
|
+
|
5
|
+
- Make `static_facade` and `method_object` take a block for initalization.
|
6
|
+
|
3
7
|
## [7.0.0](https://github.com/barsoom/attr_extras/releases/tag/v7.0.0)
|
4
8
|
|
5
9
|
- Drop end-of-lifed Ruby 2.5 and 2.6.
|
data/lib/attr_extras/explicit.rb
CHANGED
@@ -60,7 +60,7 @@ module AttrExtras
|
|
60
60
|
|
61
61
|
alias_method :attr_accessor_initialize, :aattr_initialize
|
62
62
|
|
63
|
-
def static_facade(method_name_or_names, *names)
|
63
|
+
def static_facade(method_name_or_names, *names, &block)
|
64
64
|
if names.any? { |name| name.is_a?(Array) }
|
65
65
|
Array(method_name_or_names).each do |method_name|
|
66
66
|
define_singleton_method(method_name) do |*args, **opts, &block|
|
@@ -75,11 +75,11 @@ module AttrExtras
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
-
pattr_initialize(*names)
|
78
|
+
pattr_initialize(*names, &block)
|
79
79
|
end
|
80
80
|
|
81
|
-
def method_object(*names)
|
82
|
-
static_facade :call, *names
|
81
|
+
def method_object(*names, &block)
|
82
|
+
static_facade :call, *names, &block
|
83
83
|
end
|
84
84
|
|
85
85
|
def attr_query(*names)
|
data/lib/attr_extras/version.rb
CHANGED
@@ -26,6 +26,20 @@ describe Object, ".method_object" do
|
|
26
26
|
assert klass.call
|
27
27
|
end
|
28
28
|
|
29
|
+
it "accepts a block for initialization" do
|
30
|
+
klass = Class.new do
|
31
|
+
method_object :value do
|
32
|
+
@copy = @value
|
33
|
+
end
|
34
|
+
|
35
|
+
attr_reader :copy
|
36
|
+
end
|
37
|
+
|
38
|
+
example = klass.new("expected")
|
39
|
+
|
40
|
+
_(example.copy).must_equal "expected"
|
41
|
+
end
|
42
|
+
|
29
43
|
it "passes along any block" do
|
30
44
|
klass = Class.new do
|
31
45
|
method_object
|
@@ -45,6 +45,20 @@ describe Object, ".static_facade" do
|
|
45
45
|
assert klass.barable?(false)
|
46
46
|
end
|
47
47
|
|
48
|
+
it "accepts a block for initialization" do
|
49
|
+
klass = Class.new do
|
50
|
+
static_facade :foo, :value do
|
51
|
+
@copy = @value
|
52
|
+
end
|
53
|
+
|
54
|
+
attr_reader :copy
|
55
|
+
end
|
56
|
+
|
57
|
+
example = klass.new("expected")
|
58
|
+
|
59
|
+
_(example.copy).must_equal "expected"
|
60
|
+
end
|
61
|
+
|
48
62
|
it "passes along any block to the instance method" do
|
49
63
|
klass = Class.new do
|
50
64
|
static_facade :foo
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attr_extras
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrik Nyh
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2023-02-09 00:00:00.000000000 Z
|
16
16
|
dependencies: []
|
17
17
|
description:
|
18
18
|
email:
|
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '0'
|
81
81
|
requirements: []
|
82
|
-
rubygems_version: 3.3
|
82
|
+
rubygems_version: 3.4.3
|
83
83
|
signing_key:
|
84
84
|
specification_version: 4
|
85
85
|
summary: Takes some boilerplate out of Ruby with methods like attr_initialize.
|