ashikawa-core 0.13.0 → 0.13.1

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: 1415f79ce912907851e91f4f1810668fb0a83024
4
- data.tar.gz: 4076c3f55aecd6f194057cfbc6a7f0e0c671b774
3
+ metadata.gz: 5174468b7c49a72458d5d91bf9939caf77023f2c
4
+ data.tar.gz: dc22ceaaacccfd9133638c4707eac3581b71e56d
5
5
  SHA512:
6
- metadata.gz: cbca0fdac8f1f59c2597d684b58bd1c3f6cfdf28fa5df3cf7aecda655cb9430e1117ab72bd56b7bcaa88751fa23915ac48e86157e5f06f1adfebb71f6f8325f9
7
- data.tar.gz: 98687992409d83cb2c894156019e0c4ebb539ad2eb94e2d036815c5d935b07320abf6ce24d69829726d3244e45ec0d4c9d66a5a6b25eabf9dafb1f9dd58baa65
6
+ metadata.gz: 690e9a24ebd4757b14992231d2601b314a9c27c3e7dcb85ceee47b571252cfdb9dcdc30f3b001b17b8ec81a94c25f807bf0acafc86418072bf4644753ecab9bf
7
+ data.tar.gz: 458b6482db0c04a39b3616901765991f398801ea0db65978b921d439be91603c70f728b566ccaf81c5902394bbd2c75c7a6f8aee880f7b78a26b510209e4c61c
@@ -1,14 +1,17 @@
1
1
  language: ruby
2
2
  before_script:
3
- - ./spec/setup/arangodb.sh
3
+ - "./spec/setup/arangodb.sh"
4
4
  rvm:
5
- - 1.9.3
6
- - 2.0.0
7
- - 2.1.2
8
- - jruby-1.7.12
5
+ - 1.9.3
6
+ - 2.0.0
7
+ - 2.1.2
8
+ - jruby-1.7.12
9
9
  env:
10
- - ARANGODB_DISABLE_AUTHENTIFICATION=false VERSION=2.2
11
- script: "bundle exec rake ci"
10
+ - ARANGODB_DISABLE_AUTHENTIFICATION=false VERSION=2.2
11
+ script: bundle exec rake ci
12
12
  addons:
13
13
  code_climate:
14
14
  repo_token: 4d49e70568a106875f85f2918698df75118b4a83af20ad57317b10f5fc40d5e0
15
+ notifications:
16
+ slack:
17
+ secure: qx+GdQL63v5xCKi9m+GcEoX8XER9xbRUw7lJVn1CI1tcKLeTerEYoPknUoroCj9IpR3ebXa666L51pMaU0ZCIazefr7YPDTm3gdAIDcPyEUWr2ym2AONzBDpNAQE8o9AF3FAiFI6oZ7VRTxd1KcmvZAwONepyQSZ7tsUC08JfPY=
@@ -1,3 +1,8 @@
1
+ # Version 0.13.1
2
+
3
+ * **Important Bugfix: Please update immediately**
4
+ * Fixes associating documents with the graph if loaded through a `VertexCollection` (#137)
5
+
1
6
  # Version 0.13.0
2
7
 
3
8
  **Codename: Galadriel**
@@ -392,7 +392,7 @@ module Ashikawa
392
392
  def create_document(attributes)
393
393
  raise "Can't create a document in an edge collection" if @content_type == :edge
394
394
  response = send_request_for_content(post: attributes)
395
- Document.new(@database, response, attributes)
395
+ build_content_class(response, attributes)
396
396
  end
397
397
 
398
398
  # Create a new edge between two documents with certain attributes
@@ -492,10 +492,11 @@ module Ashikawa
492
492
  # Builds an instance for the content class
493
493
  #
494
494
  # @param [Hash] data The raw data to be used to instatiate the class
495
+ # @param [Hash] additional_attributes Initial attributes to be passed to the underlying content class
495
496
  # @return [Document] The instatiated document
496
497
  # @api private
497
- def build_content_class(data)
498
- @content_class.new(@database, data)
498
+ def build_content_class(data, additional_attributes = {})
499
+ @content_class.new(@database, data, additional_attributes)
499
500
  end
500
501
 
501
502
  private
@@ -70,10 +70,11 @@ module Ashikawa
70
70
  # Builds a new edge object and passes the current graph to it
71
71
  #
72
72
  # @param [Hash] data The raw data to be used to instatiate the class
73
+ # @param [Hash] additional_atttributes Initial attributes to be passed to the Edge
73
74
  # @return [Edge] The instatiated edge
74
75
  # @api private
75
- def build_content_class(data)
76
- Edge.new(@database, data, graph: graph)
76
+ def build_content_class(data, additional_atttributes = {})
77
+ Edge.new(@database, data, additional_atttributes.merge(graph: graph))
77
78
  end
78
79
 
79
80
  private
@@ -2,7 +2,7 @@
2
2
  module Ashikawa
3
3
  module Core
4
4
  # Current version of Ashikawa::Core
5
- VERSION = '0.13.0'
5
+ VERSION = '0.13.1'
6
6
 
7
7
  # The lowest supported ArangoDB major version
8
8
  ARANGODB_MAJOR_VERSION = 2
@@ -30,6 +30,16 @@ module Ashikawa
30
30
 
31
31
  raise CollectionNotInGraphException unless @graph.has_vertex_collection?(name)
32
32
  end
33
+
34
+ # Builds a new document object and passes the current graph to it
35
+ #
36
+ # @param [Hash] data The raw data to be used to instatiate the class
37
+ # @param [Hash] additional_atttributes Initial attributes to be passed to the document
38
+ # @return [Edge] The instatiated edge
39
+ # @api private
40
+ def build_content_class(data, additional_atttributes = {})
41
+ Document.new(@database, data, additional_atttributes.merge(graph: graph))
42
+ end
33
43
  end
34
44
  end
35
45
  end
@@ -236,12 +236,21 @@ describe Ashikawa::Core::Collection do
236
236
  its(:content_type) { should be(:document) }
237
237
 
238
238
  context 'building the content classes' do
239
+ let(:additional_attributes) { double('Hash') }
240
+
239
241
  it 'should build documents' do
240
242
  expect(Ashikawa::Core::Document).to receive(:new)
241
- .with(database, raw_document)
243
+ .with(database, raw_document, {})
242
244
 
243
245
  subject.build_content_class(raw_document)
244
246
  end
247
+
248
+ it 'should accept additional attributes to be passed to the content class' do
249
+ expect(Ashikawa::Core::Document).to receive(:new)
250
+ .with(database, raw_document, additional_attributes)
251
+
252
+ subject.build_content_class(raw_document, additional_attributes)
253
+ end
245
254
  end
246
255
 
247
256
  context 'when using the key' do
@@ -301,8 +310,8 @@ describe Ashikawa::Core::Collection do
301
310
  allow(database).to receive(:send_request)
302
311
  .with('document?collection=60768679', post: raw_document)
303
312
  .and_return(response)
304
- expect(Ashikawa::Core::Document).to receive(:new)
305
- .with(database, response, raw_document)
313
+ expect(subject).to receive(:build_content_class)
314
+ .with(response, raw_document)
306
315
  .and_return(document)
307
316
 
308
317
  subject.create_document(raw_document)
@@ -329,7 +338,7 @@ describe Ashikawa::Core::Collection do
329
338
  context 'building the content classes' do
330
339
  it 'should build documents' do
331
340
  expect(Ashikawa::Core::Edge).to receive(:new)
332
- .with(database, raw_document)
341
+ .with(database, raw_document, {})
333
342
 
334
343
  subject.build_content_class(raw_document)
335
344
  end
@@ -94,12 +94,24 @@ describe Ashikawa::Core::EdgeCollection do
94
94
  subject.send(:send_request_for_this_collection, 'edge_key')
95
95
  end
96
96
 
97
- it 'should overwrite the #build_content_class to create edges with the graph attached' do
98
- expect(Ashikawa::Core::Edge).to receive(:new)
99
- .with(database, raw_edge, graph: graph)
100
- .and_return(new_edge)
97
+ context 'building edge documents' do
98
+ let(:additional_attributes) { { moar: 'data' } }
101
99
 
102
- subject.build_content_class(raw_edge)
100
+ it 'should overwrite the #build_content_class to create edges with the graph attached' do
101
+ expect(Ashikawa::Core::Edge).to receive(:new)
102
+ .with(database, raw_edge, graph: graph)
103
+ .and_return(new_edge)
104
+
105
+ subject.build_content_class(raw_edge)
106
+ end
107
+
108
+ it 'should overwrite the #build_content_class to create edges with the graph attached' do
109
+ expect(Ashikawa::Core::Edge).to receive(:new)
110
+ .with(database, raw_edge, graph: graph, moar: 'data')
111
+ .and_return(new_edge)
112
+
113
+ subject.build_content_class(raw_edge, additional_attributes)
114
+ end
103
115
  end
104
116
  end
105
117
  end
@@ -2,6 +2,7 @@
2
2
  require 'unit/spec_helper'
3
3
  require 'ashikawa-core/vertex_collection'
4
4
  require 'ashikawa-core/graph'
5
+ require 'ashikawa-core/document'
5
6
  require 'ashikawa-core/database'
6
7
 
7
8
  describe Ashikawa::Core::VertexCollection do
@@ -17,6 +18,8 @@ describe Ashikawa::Core::VertexCollection do
17
18
  }
18
19
  end
19
20
  let(:graph) { instance_double('Ashikawa::Core::Graph') }
21
+ let(:new_document) { instance_double('Ashikawa::Core::Document') }
22
+ let(:raw_document) { double('RawDocument') }
20
23
 
21
24
  context 'building a vertex collection' do
22
25
  before do
@@ -44,5 +47,25 @@ describe Ashikawa::Core::VertexCollection do
44
47
  it 'should have a reference to its graph' do
45
48
  expect(subject.graph).to eq graph
46
49
  end
50
+
51
+ context 'building documents' do
52
+ let(:additional_attributes) { { moar: 'data' } }
53
+
54
+ it 'should overwrite the #build_content_class to create documents with the graph attached' do
55
+ expect(Ashikawa::Core::Document).to receive(:new)
56
+ .with(database, raw_document, graph: graph)
57
+ .and_return(new_document)
58
+
59
+ subject.build_content_class(raw_document)
60
+ end
61
+
62
+ it 'should overwrite the #build_content_class to create edges with the graph attached' do
63
+ expect(Ashikawa::Core::Document).to receive(:new)
64
+ .with(database, raw_document, graph: graph, moar: 'data')
65
+ .and_return(new_document)
66
+
67
+ subject.build_content_class(raw_document, additional_attributes)
68
+ end
69
+ end
47
70
  end
48
71
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ashikawa-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - moonglum
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-19 00:00:00.000000000 Z
11
+ date: 2014-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday