reality-facets 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f23339993cae2804cb73979adf965189ab5cbe37
4
- data.tar.gz: 70a5504ae8d6988cb6074bd6afdf32747ab21335
3
+ metadata.gz: aaee53f948adda58251e2f3ed1f9baba8bf9c0fb
4
+ data.tar.gz: 39e3c353a2b61b59112f1864366238e526266511
5
5
  SHA512:
6
- metadata.gz: ad45c2f079f665cd67328bb204052187d15f8c23215726f609193502c4510bea1b23c73f22e77e4018f976fb72484c679c2e370d122b928716f09dd5c419e8e0
7
- data.tar.gz: d0701c1806a08070ef1de14144449bd9350c3ae5209b18a52d9fdffdbd199767aea986d4eea5db01c5acc99f9539bc1764e6942bf1b17f20590766a12c35ea53
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
- (self.enabled_facets - keys).each do |facet_key|
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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{reality-facets}
5
- s.version = '1.0.0'
5
+ s.version = '1.1.0'
6
6
  s.platform = Gem::Platform::RUBY
7
7
 
8
8
  s.authors = ['Peter Donald']
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reality-facets
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Donald