ashikawa-core 0.7.1 → 0.7.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/Gemfile.devtools +14 -21
- data/README.md +1 -0
- data/ashikawa-core.gemspec +1 -1
- data/config/{site.reek → reek.yml} +1 -0
- data/config/yardstick.yml +1 -1
- data/lib/ashikawa-core/cursor.rb +25 -2
- data/lib/ashikawa-core/query.rb +1 -2
- data/lib/ashikawa-core/version.rb +1 -1
- data/spec/acceptance/query_spec.rb +6 -0
- data/spec/unit/query_spec.rb +1 -1
- data/tasks/adjustments.rake +2 -3
- metadata +73 -89
data/Gemfile.devtools
CHANGED
@@ -1,27 +1,26 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
group :development do
|
4
|
-
gem 'rake', '~> 10.0.
|
4
|
+
gem 'rake', '~> 10.0.4'
|
5
5
|
gem 'rspec', '~> 2.13.0'
|
6
|
-
gem 'yard', '~> 0.8.
|
6
|
+
gem 'yard', '~> 0.8.6'
|
7
7
|
end
|
8
8
|
|
9
9
|
group :yard do
|
10
|
-
gem 'kramdown', '~> 0.
|
10
|
+
gem 'kramdown', '~> 1.0.1'
|
11
11
|
end
|
12
12
|
|
13
13
|
group :guard do
|
14
|
-
gem 'guard', '~> 1.
|
14
|
+
gem 'guard', '~> 1.7.0'
|
15
15
|
gem 'guard-bundler', '~> 1.0.0'
|
16
|
-
gem 'guard-rspec', '~> 2.
|
16
|
+
gem 'guard-rspec', '~> 2.5.3'
|
17
17
|
|
18
18
|
# file system change event handling
|
19
|
+
gem 'listen', '~> 0.7.3'
|
19
20
|
gem 'rb-fchange', '~> 0.0.6', :require => false
|
20
21
|
gem 'rb-fsevent', '~> 0.9.3', :require => false
|
21
22
|
gem 'rb-inotify', '~> 0.9.0', :require => false
|
22
23
|
|
23
|
-
gem 'listen', '~> 0.7.3'
|
24
|
-
|
25
24
|
# notification handling
|
26
25
|
gem 'libnotify', '~> 0.8.0', :require => false
|
27
26
|
gem 'rb-notifu', '~> 0.0.4', :require => false
|
@@ -29,25 +28,19 @@ group :guard do
|
|
29
28
|
end
|
30
29
|
|
31
30
|
group :metrics do
|
32
|
-
gem '
|
33
|
-
gem '
|
31
|
+
gem 'backports', '~> 3.3', '>= 3.3.0'
|
32
|
+
gem 'coveralls', '~> 0.6.5'
|
33
|
+
gem 'flay', '~> 2.2.0'
|
34
|
+
gem 'flog', '~> 3.2.3'
|
34
35
|
gem 'reek', '~> 1.3.1', :git => 'https://github.com/troessner/reek.git'
|
35
|
-
gem '
|
36
|
-
gem 'yardstick', '~> 0.9.
|
37
|
-
|
38
|
-
platforms :ruby_18, :ruby_19 do
|
39
|
-
# this indirectly depends on ffi which does not build on ruby-head
|
40
|
-
gem 'yard-spellcheck', '~> 0.1.5'
|
41
|
-
end
|
36
|
+
gem 'simplecov', '~> 0.7.1'
|
37
|
+
gem 'yardstick', '~> 0.9.6'
|
38
|
+
gem 'yard-spellcheck', '~> 0.1.5'
|
42
39
|
|
43
40
|
platforms :mri_19, :rbx do
|
44
41
|
gem 'mutant', '~> 0.2.20'
|
45
42
|
end
|
46
43
|
|
47
|
-
platforms :mri_19 do
|
48
|
-
gem 'simplecov', '~> 0.7.1'
|
49
|
-
end
|
50
|
-
|
51
44
|
platforms :rbx do
|
52
45
|
gem 'pelusa', '~> 0.2.2'
|
53
46
|
end
|
@@ -59,6 +52,6 @@ end
|
|
59
52
|
|
60
53
|
platform :jruby do
|
61
54
|
group :jruby do
|
62
|
-
gem 'jruby-openssl', '~> 0.8.
|
55
|
+
gem 'jruby-openssl', '~> 0.8.5'
|
63
56
|
end
|
64
57
|
end
|
data/README.md
CHANGED
@@ -62,3 +62,4 @@ If you want to contribute to the project, see CONTRIBUTING.md for details. It co
|
|
62
62
|
* Lucas Dohmen ([@moonglum](https://github.com/moonglum)): Developer
|
63
63
|
* Tobias Eilert ([@EinLama](https://github.com/EinLama)): Contributor
|
64
64
|
* Markus Schirp ([@mbj](https://github.com/mbj)): Contributor
|
65
|
+
* Ettore Berardi ([@ettomatic](https://github.com/ettomatic)): Contributor
|
data/ashikawa-core.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |gem|
|
|
22
22
|
gem.require_paths = ["lib"]
|
23
23
|
|
24
24
|
gem.add_dependency "faraday", "~> 0.8.6"
|
25
|
-
gem.add_dependency "multi_json", "~> 1.
|
25
|
+
gem.add_dependency "multi_json", "~> 1.7.2"
|
26
26
|
gem.add_dependency "null_logger", "~> 0.0.1"
|
27
27
|
gem.add_dependency "backports", [ '~> 3.0', '>= 3.0.3' ]
|
28
28
|
end
|
data/config/yardstick.yml
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
---
|
2
|
-
threshold: 98.
|
2
|
+
threshold: 98.2
|
data/lib/ashikawa-core/cursor.rb
CHANGED
@@ -80,11 +80,34 @@ module Ashikawa
|
|
80
80
|
def parse_raw_cursor(raw_cursor)
|
81
81
|
@id = raw_cursor['id']
|
82
82
|
@has_more = raw_cursor['hasMore']
|
83
|
-
|
84
|
-
|
83
|
+
if raw_cursor['result']
|
84
|
+
parse_documents_cursor(raw_cursor)
|
85
|
+
elsif raw_cursor['document']
|
86
|
+
parse_document_cursor(raw_cursor)
|
87
|
+
end
|
85
88
|
self
|
86
89
|
end
|
87
90
|
|
91
|
+
# Parse the cursor for multiple documents
|
92
|
+
#
|
93
|
+
# @param [Hash] raw_cursor
|
94
|
+
# @return self
|
95
|
+
# @api private
|
96
|
+
def parse_documents_cursor(raw_cursor)
|
97
|
+
@current = raw_cursor['result']
|
98
|
+
@length = raw_cursor['count'].to_i if raw_cursor.has_key?('count')
|
99
|
+
end
|
100
|
+
|
101
|
+
# Parse the cursor for a single document
|
102
|
+
#
|
103
|
+
# @param [Hash] raw_cursor
|
104
|
+
# @return self
|
105
|
+
# @api private
|
106
|
+
def parse_document_cursor(raw_cursor)
|
107
|
+
@current = [raw_cursor['document']]
|
108
|
+
@length = 1
|
109
|
+
end
|
110
|
+
|
88
111
|
# Get a new batch from the server
|
89
112
|
#
|
90
113
|
# @return [Boolean] Is there a next batch?
|
data/lib/ashikawa-core/query.rb
CHANGED
@@ -71,10 +71,9 @@ module Ashikawa
|
|
71
71
|
# query = Ashikawa::Core::Query.new(collection)
|
72
72
|
# query.first_example({ "color" => "red"}) # => #<Document id=2444 color="red">
|
73
73
|
def first_example(example = {})
|
74
|
-
|
74
|
+
simple_query_request("simple/first-example",
|
75
75
|
{ :example => example },
|
76
76
|
[:example])
|
77
|
-
response.first
|
78
77
|
end
|
79
78
|
|
80
79
|
# Looks for documents in a collection based on location
|
@@ -55,6 +55,12 @@ describe "Queries" do
|
|
55
55
|
result.length.should == 1
|
56
56
|
end
|
57
57
|
|
58
|
+
it "should be possible to query first document by example" do
|
59
|
+
subject << { "name" => "Single Document" }
|
60
|
+
result = subject.query.first_example :name => "Single Document"
|
61
|
+
result.length.should == 1
|
62
|
+
end
|
63
|
+
|
58
64
|
describe "query by geo coordinates" do
|
59
65
|
before :each do
|
60
66
|
subject.add_index :geo, :on => [:latitude, :longitude]
|
data/spec/unit/query_spec.rb
CHANGED
@@ -52,7 +52,7 @@ describe Ashikawa::Core::Query do
|
|
52
52
|
collection.should_receive(:send_request).with("simple/first-example", :put =>
|
53
53
|
{"collection" => "example_1", "example" => { :hello => "world"}})
|
54
54
|
|
55
|
-
Ashikawa::Core::
|
55
|
+
Ashikawa::Core::Cursor.should_receive(:new)
|
56
56
|
|
57
57
|
subject.first_example example
|
58
58
|
end
|
data/tasks/adjustments.rake
CHANGED
@@ -10,7 +10,6 @@ Rake::Task["ci"].clear
|
|
10
10
|
# * Acceptance, no integration tests
|
11
11
|
# * Special Case: ArangoDB needed for Acceptance Tests
|
12
12
|
|
13
|
-
|
14
13
|
desc 'Run all specs'
|
15
14
|
task :spec => %w[ spec:unit spec:acceptance ]
|
16
15
|
|
@@ -39,8 +38,8 @@ end
|
|
39
38
|
# * On the CI, ArangoDB is already running so use the special acceptance task
|
40
39
|
|
41
40
|
namespace :ci do
|
42
|
-
desc 'Run all metrics except mutant'
|
43
|
-
task :metrics => %w[ metrics:
|
41
|
+
desc 'Run all metrics except mutant and reek'
|
42
|
+
task :metrics => %w[ metrics:coverage spec:integration metrics:yardstick:verify metrics:flog metrics:flay ]
|
44
43
|
end
|
45
44
|
|
46
45
|
desc 'Run all metrics and specs'
|
metadata
CHANGED
@@ -1,105 +1,96 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ashikawa-core
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.7.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 7
|
9
|
-
- 1
|
10
|
-
version: 0.7.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- moonglum
|
14
9
|
- EinLama
|
15
10
|
autorequire:
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
13
|
+
date: 2013-04-19 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
23
16
|
name: faraday
|
24
|
-
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
25
18
|
none: false
|
26
|
-
requirements:
|
19
|
+
requirements:
|
27
20
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 51
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
- 8
|
33
|
-
- 6
|
21
|
+
- !ruby/object:Gem::Version
|
34
22
|
version: 0.8.6
|
35
23
|
type: :runtime
|
36
|
-
requirement: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
24
|
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 0.8.6
|
31
|
+
- !ruby/object:Gem::Dependency
|
39
32
|
name: multi_json
|
40
|
-
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
41
34
|
none: false
|
42
|
-
requirements:
|
35
|
+
requirements:
|
43
36
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
segments:
|
47
|
-
- 1
|
48
|
-
- 6
|
49
|
-
- 1
|
50
|
-
version: 1.6.1
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 1.7.2
|
51
39
|
type: :runtime
|
52
|
-
requirement: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
40
|
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 1.7.2
|
47
|
+
- !ruby/object:Gem::Dependency
|
55
48
|
name: null_logger
|
56
|
-
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
57
50
|
none: false
|
58
|
-
requirements:
|
51
|
+
requirements:
|
59
52
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 29
|
62
|
-
segments:
|
63
|
-
- 0
|
64
|
-
- 0
|
65
|
-
- 1
|
53
|
+
- !ruby/object:Gem::Version
|
66
54
|
version: 0.0.1
|
67
55
|
type: :runtime
|
68
|
-
requirement: *id003
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
56
|
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.0.1
|
63
|
+
- !ruby/object:Gem::Dependency
|
71
64
|
name: backports
|
72
|
-
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
73
66
|
none: false
|
74
|
-
requirements:
|
67
|
+
requirements:
|
75
68
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
- 0
|
81
|
-
version: "3.0"
|
82
|
-
- - ">="
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
hash: 1
|
85
|
-
segments:
|
86
|
-
- 3
|
87
|
-
- 0
|
88
|
-
- 3
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '3.0'
|
71
|
+
- - ! '>='
|
72
|
+
- !ruby/object:Gem::Version
|
89
73
|
version: 3.0.3
|
90
74
|
type: :runtime
|
91
|
-
|
92
|
-
|
93
|
-
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ~>
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '3.0'
|
82
|
+
- - ! '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 3.0.3
|
85
|
+
description: Ashikawa Core is a wrapper around the ArangoDB REST API. It provides
|
86
|
+
low level access and will be used in different ArangoDB ODMs and other tools.
|
87
|
+
email:
|
94
88
|
- me@moonglum.net
|
95
89
|
- tobias.eilert@me.com
|
96
90
|
executables: []
|
97
|
-
|
98
91
|
extensions: []
|
99
|
-
|
100
92
|
extra_rdoc_files: []
|
101
|
-
|
102
|
-
files:
|
93
|
+
files:
|
103
94
|
- .gitignore
|
104
95
|
- .rspec
|
105
96
|
- .rvmrc
|
@@ -115,8 +106,8 @@ files:
|
|
115
106
|
- config/flay.yml
|
116
107
|
- config/flog.yml
|
117
108
|
- config/mutant.yml
|
109
|
+
- config/reek.yml
|
118
110
|
- config/roodi.yml
|
119
|
-
- config/site.reek
|
120
111
|
- config/yardstick.yml
|
121
112
|
- lib/ashikawa-core.rb
|
122
113
|
- lib/ashikawa-core/collection.rb
|
@@ -190,40 +181,33 @@ files:
|
|
190
181
|
- tasks/adjustments.rake
|
191
182
|
homepage: http://triagens.github.com/ashikawa-core
|
192
183
|
licenses: []
|
193
|
-
|
194
184
|
post_install_message:
|
195
185
|
rdoc_options: []
|
196
|
-
|
197
|
-
require_paths:
|
186
|
+
require_paths:
|
198
187
|
- lib
|
199
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
188
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
200
189
|
none: false
|
201
|
-
requirements:
|
202
|
-
- -
|
203
|
-
- !ruby/object:Gem::Version
|
204
|
-
hash: 57
|
205
|
-
segments:
|
206
|
-
- 1
|
207
|
-
- 8
|
208
|
-
- 7
|
190
|
+
requirements:
|
191
|
+
- - ! '>='
|
192
|
+
- !ruby/object:Gem::Version
|
209
193
|
version: 1.8.7
|
210
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
195
|
none: false
|
212
|
-
requirements:
|
213
|
-
- -
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
|
216
|
-
segments:
|
196
|
+
requirements:
|
197
|
+
- - ! '>='
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '0'
|
200
|
+
segments:
|
217
201
|
- 0
|
218
|
-
|
219
|
-
requirements:
|
202
|
+
hash: 1495105476276020209
|
203
|
+
requirements:
|
220
204
|
- ArangoDB, v1.2
|
221
205
|
rubyforge_project: ashikawa-core
|
222
206
|
rubygems_version: 1.8.25
|
223
207
|
signing_key:
|
224
208
|
specification_version: 3
|
225
209
|
summary: Ashikawa Core is a wrapper around the ArangoDB REST API
|
226
|
-
test_files:
|
210
|
+
test_files:
|
227
211
|
- spec/acceptance/arango_helper.rb
|
228
212
|
- spec/acceptance/basic_spec.rb
|
229
213
|
- spec/acceptance/index_spec.rb
|