reality-facets 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aaee53f948adda58251e2f3ed1f9baba8bf9c0fb
|
4
|
+
data.tar.gz: 39e3c353a2b61b59112f1864366238e526266511
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4bd237fe33ec7553bf813dbd25e8b1295597fa166378798c3b20c09a9ee32dd8168f0ec2c3f68f6c4a03d9e2deeb766354f49e46602d7b31a74aeb704802ab2
|
7
|
+
data.tar.gz: 5c7c1be235ed4455bbdc9bfd92e50df41d7fb8a9e159284da00f677b4012ae494b18971b120d22a84b8ef46498fa80538e4b9a9d4419b38df49d70ae4e1bc74a
|
@@ -56,6 +56,23 @@ module Reality #nodoc
|
|
56
56
|
self.const_get(:FacetDefinitions)
|
57
57
|
end
|
58
58
|
|
59
|
+
def dependent_facets(*facet_keys)
|
60
|
+
facet_keys = facet_keys[0] if facet_keys.size == 1 && facet_keys[0].is_a?(Array)
|
61
|
+
to_process = facet_keys.dup
|
62
|
+
results = []
|
63
|
+
until to_process.empty?
|
64
|
+
facet_key = to_process.pop
|
65
|
+
results << facet_key
|
66
|
+
facet = facet_by_name(facet_key)
|
67
|
+
facet.required_facets.each do |required_facet_key|
|
68
|
+
if !results.include?(required_facet_key) && !to_process.include?(required_facet_key)
|
69
|
+
to_process << required_facet_key
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
results
|
74
|
+
end
|
75
|
+
|
59
76
|
def activate_facet(object, facet_key)
|
60
77
|
return if object.facet_enabled?(facet_key)
|
61
78
|
|
@@ -71,9 +71,10 @@ module Reality #nodoc
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
-
def disable_facets_not_in(keys)
|
74
|
+
def disable_facets_not_in(*keys)
|
75
75
|
keys = keys[0] if keys.size == 1 && keys[0].is_a?(Array)
|
76
|
-
|
76
|
+
facets_to_disable = self.enabled_facets - facet_container.dependent_facets(keys)
|
77
|
+
facets_to_disable.each do |facet_key|
|
77
78
|
self.disable_facet(facet_key) if self.facet_enabled?(facet_key)
|
78
79
|
end
|
79
80
|
end
|
data/reality-facets.gemspec
CHANGED
@@ -61,4 +61,16 @@ class Reality::Facets::TestFacetContainer < Reality::TestCase
|
|
61
61
|
|
62
62
|
assert_raise_message("Unknown definition form '{:x=>:y, :z=>1}'") { TestFacetContainer.facet(:x => :y, :z => 1) }
|
63
63
|
end
|
64
|
+
|
65
|
+
def test_dependent_facets
|
66
|
+
TestFacetContainer.facet(:gwt)
|
67
|
+
TestFacetContainer.facet(:gwt_rpc => [:gwt])
|
68
|
+
TestFacetContainer.facet(:imit => [:gwt_rpc, :jpa])
|
69
|
+
TestFacetContainer.facet(:ee)
|
70
|
+
TestFacetContainer.facet(:jpa => [:ee])
|
71
|
+
|
72
|
+
assert_equal [:gwt], TestFacetContainer.dependent_facets(:gwt)
|
73
|
+
assert_equal [:imit, :jpa, :ee, :gwt_rpc, :gwt].sort, TestFacetContainer.dependent_facets(:imit).sort
|
74
|
+
assert_equal [:jpa, :ee].sort, TestFacetContainer.dependent_facets(:jpa).sort
|
75
|
+
end
|
64
76
|
end
|
@@ -167,6 +167,18 @@ class Reality::Facets::TestFacetedModel < Reality::TestCase
|
|
167
167
|
assert_equal [:gwt, :gwt_rpc, :jpa, :imit, :json], entity2.enabled_facets
|
168
168
|
assert_equal [:jpa, :gwt, :gwt_rpc, :imit, :json], attribute1.enabled_facets
|
169
169
|
assert_equal [:jpa, :gwt, :gwt_rpc, :imit, :json], attribute2.enabled_facets
|
170
|
+
|
171
|
+
attribute2.disable_facets_not_in(:json)
|
172
|
+
|
173
|
+
assert_equal [:json], attribute2.enabled_facets
|
174
|
+
|
175
|
+
attribute1.disable_facets_not_in([:imit])
|
176
|
+
|
177
|
+
assert_equal [:gwt, :gwt_rpc, :imit], attribute1.enabled_facets
|
178
|
+
|
179
|
+
entity2.disable_facets_not_in([:gwt_rpc, :jpa])
|
180
|
+
|
181
|
+
assert_equal [:gwt, :gwt_rpc, :jpa], entity2.enabled_facets
|
170
182
|
end
|
171
183
|
|
172
184
|
def test_extension_point
|