directed-edge 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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