directed-edge 0.2.1 → 0.2.2
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.
- data/VERSION +1 -1
- data/lib/directed_edge.rb +8 -3
- data/test/test_directed_edge.rb +17 -0
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
data/lib/directed_edge.rb
CHANGED
@@ -105,6 +105,7 @@ module DirectedEdge
|
|
105
105
|
values[e.text] = {}
|
106
106
|
e.attributes.each_attribute { |a| values[e.text][a.name] = a.value }
|
107
107
|
end
|
108
|
+
values['tags'] = values['tags'].split(',') if values.include?('tags')
|
108
109
|
values
|
109
110
|
end
|
110
111
|
|
@@ -128,6 +129,10 @@ module DirectedEdge
|
|
128
129
|
end
|
129
130
|
hash
|
130
131
|
end
|
132
|
+
|
133
|
+
def with_properties?(params)
|
134
|
+
params['includeProperties'] == 'true' || params['includeTags'] == 'true'
|
135
|
+
end
|
131
136
|
end
|
132
137
|
|
133
138
|
# A Database is an encapsulation of a database being accessed via the Directed
|
@@ -201,7 +206,7 @@ module DirectedEdge
|
|
201
206
|
|
202
207
|
def group_related(items=Set.new, tags=Set.new, params={})
|
203
208
|
if !items.is_a?(Array) || items.size < 1
|
204
|
-
return (params
|
209
|
+
return with_properties?(params) ? InsertOrderHash.new : []
|
205
210
|
end
|
206
211
|
params['items'] = items.to_a.join(',')
|
207
212
|
params['tags'] = tags.to_a.join(',')
|
@@ -708,7 +713,7 @@ module DirectedEdge
|
|
708
713
|
def related(tags=Set.new, params={})
|
709
714
|
normalize_params!(params)
|
710
715
|
params['tags'] = tags.to_a.join(',')
|
711
|
-
if params
|
716
|
+
if with_properties?(params)
|
712
717
|
property_hash_from_document(read_document('related', params), 'related')
|
713
718
|
else
|
714
719
|
list_from_document(read_document('related', params), 'related')
|
@@ -748,7 +753,7 @@ module DirectedEdge
|
|
748
753
|
normalize_params!(params)
|
749
754
|
params['tags'] = tags.to_a.join(',')
|
750
755
|
params.key?('excludeLinked') || params['excludeLinked'] = 'true'
|
751
|
-
if params
|
756
|
+
if with_properties?(params)
|
752
757
|
property_hash_from_document(read_document('recommended', params), 'recommended')
|
753
758
|
else
|
754
759
|
list_from_document(read_document('recommended', params), 'recommended')
|
data/test/test_directed_edge.rb
CHANGED
@@ -369,6 +369,23 @@ class TestDirectedEdge < Test::Unit::TestCase
|
|
369
369
|
assert_equal('bar', recommended['product21']['foo'])
|
370
370
|
end
|
371
371
|
|
372
|
+
def test_include_tags
|
373
|
+
item = DirectedEdge::Item.new(@database, 'product1')
|
374
|
+
item.add_preselected('product2')
|
375
|
+
item.save
|
376
|
+
|
377
|
+
related = item.related(['product'], :include_tags => true)
|
378
|
+
assert(related['product2']['tags'].include?('product'))
|
379
|
+
|
380
|
+
target = DirectedEdge::Item.new(@database, 'product2')
|
381
|
+
target.add_tag('foo')
|
382
|
+
target.save
|
383
|
+
|
384
|
+
related = item.related(['product'], :include_tags => true)
|
385
|
+
assert(related['product2']['tags'].include?('product'))
|
386
|
+
assert(related['product2']['tags'].include?('foo'))
|
387
|
+
end
|
388
|
+
|
372
389
|
def test_preselected
|
373
390
|
item = DirectedEdge::Item.new(@database, 'product1')
|
374
391
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: directed-edge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Directed Edge
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-02-17 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|