bmg 0.20.2 → 0.21.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/lib/bmg/operator/autowrap.rb +21 -5
- data/lib/bmg/operator/project.rb +4 -0
- data/lib/bmg/type.rb +5 -0
- data/lib/bmg/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef6b320621feeff681bb76b804da274ae055573c
|
4
|
+
data.tar.gz: 2a119b1aa5838fbb2b657332de25fd22cc10dbb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e33cda560cb1c3f119940745c63f45884a406d7b0bce113d08a43d2f374a9a658ab47667c63919d16d5863f6867f2d29808d23a049efe9e34487a282e29c9c82
|
7
|
+
data.tar.gz: ec437125ffbf4e41633b33c6ddc5eedeccef915dd2201f7d0f2a54e8ba348f272e67195ebc57cd8a8e839b07a0fa1aacb957eacf6723d34a42b03dac1d4783ec
|
@@ -68,6 +68,20 @@ module Bmg
|
|
68
68
|
|
69
69
|
protected ### optimization
|
70
70
|
|
71
|
+
def _allbut(type, butlist)
|
72
|
+
new_roots = wrapped_roots!
|
73
|
+
separator = @options[:split]
|
74
|
+
down = operand.type.attrlist!.select { |attr|
|
75
|
+
root = attr.to_s.split(separator).map(&:to_sym).first
|
76
|
+
butlist.include?(root)
|
77
|
+
}
|
78
|
+
r = operand.allbut(down)
|
79
|
+
r = r.autowrap(options) unless (butlist & new_roots == new_roots)
|
80
|
+
r
|
81
|
+
rescue UnknownAttributesError
|
82
|
+
super
|
83
|
+
end
|
84
|
+
|
71
85
|
def _autowrap(type, opts)
|
72
86
|
if same_options?(opts)
|
73
87
|
self
|
@@ -122,11 +136,12 @@ module Bmg
|
|
122
136
|
end
|
123
137
|
|
124
138
|
def _project(type, attrlist)
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
139
|
+
separator = @options[:split]
|
140
|
+
to_keep = operand.type.attrlist!.select { |attr|
|
141
|
+
root = attr.to_s.split(separator).map(&:to_sym).first
|
142
|
+
attrlist.include?(root)
|
143
|
+
}
|
144
|
+
operand.project(to_keep).autowrap(options)
|
130
145
|
rescue UnknownAttributesError
|
131
146
|
super
|
132
147
|
end
|
@@ -169,6 +184,7 @@ module Bmg
|
|
169
184
|
|
170
185
|
def wrapped_roots_of!(r, opts)
|
171
186
|
raise UnknownAttributesError unless r.type.knows_attrlist?
|
187
|
+
|
172
188
|
Support.wrapped_roots(r.type.to_attrlist, opts[:split])
|
173
189
|
end
|
174
190
|
|
data/lib/bmg/operator/project.rb
CHANGED
data/lib/bmg/type.rb
CHANGED
data/lib/bmg/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bmg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bernard Lambeau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: predicate
|