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 CHANGED
@@ -1 +1 @@
1
- 0.2.1
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['includeProperties'] == 'true') ? InsertOrderHash.new : []
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['includeProperties'] == 'true'
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['includeProperties'] == 'true'
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')
@@ -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: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 1
10
- version: 0.2.1
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: 2010-11-19 00:00:00 +01:00
18
+ date: 2011-02-17 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency