ashikawa-core 0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+
4
+ require "rest-client"
5
+ require "json"
6
+ require "ashikawa-core"
7
+
8
+ RSpec.configure do |config|
9
+ raise "Could not find arangod. Please install it or check if it is in your path." if `which arangod` == ""
10
+
11
+ database_directory = "/tmp/ashikawa-integration"
12
+ arango_process = false
13
+
14
+ config.before(:suite) do
15
+ puts "Starting ArangoDB"
16
+ process_id = $$
17
+
18
+ Dir.mkdir database_directory unless Dir.exists? database_directory
19
+ arango_process = IO.popen("arangod #{database_directory} --watch-process #{process_id}")
20
+
21
+ sleep 2 # Wait for Arango to start up
22
+ end
23
+
24
+ config.after(:suite) do
25
+ puts
26
+ puts "Shutting down ArangoDB"
27
+
28
+ Process.kill "INT", arango_process.pid
29
+ sleep 2 # Wait for Arango to shut down
30
+ arango_process.close
31
+
32
+ `rm -r #{database_directory}/*`
33
+ end
34
+ end
@@ -0,0 +1,228 @@
1
+ require 'unit/spec_helper'
2
+ require 'ashikawa-core/collection'
3
+
4
+ describe Ashikawa::Core::Collection do
5
+ subject { Ashikawa::Core::Collection }
6
+
7
+ before :each do
8
+ @database = double()
9
+ end
10
+
11
+ it "should have a name" do
12
+ my_collection = subject.new @database, server_response("/collections/4588")
13
+ my_collection.name.should == "example_1"
14
+ end
15
+
16
+ it "should accept an ID" do
17
+ my_collection = subject.new @database, server_response("/collections/4588")
18
+ my_collection.id.should == 4588
19
+ end
20
+
21
+ describe "the status code" do
22
+ it "should know if the collection is new born" do
23
+ my_collection = subject.new @database, { "status" => "1" }
24
+ my_collection.new_born?.should == true
25
+
26
+ my_collection = subject.new @database, { "status" => "200" }
27
+ my_collection.new_born?.should == false
28
+ end
29
+
30
+ it "should know if the collection is unloaded" do
31
+ my_collection = subject.new @database, { "status" => "2" }
32
+ my_collection.unloaded?.should == true
33
+
34
+ my_collection = subject.new @database, { "status" => "200" }
35
+ my_collection.unloaded?.should == false
36
+ end
37
+
38
+ it "should know if the collection is loaded" do
39
+ my_collection = subject.new @database, { "status" => "3" }
40
+ my_collection.loaded?.should == true
41
+
42
+ my_collection = subject.new @database, { "status" => "200" }
43
+ my_collection.loaded?.should == false
44
+ end
45
+
46
+ it "should know if the collection is being unloaded" do
47
+ my_collection = subject.new @database, { "status" => "4" }
48
+ my_collection.being_unloaded?.should == true
49
+
50
+ my_collection = subject.new @database, { "status" => "200" }
51
+ my_collection.being_unloaded?.should == false
52
+ end
53
+
54
+ it "should know if the collection is corrupted" do
55
+ my_collection = subject.new @database, { "status" => "6" }
56
+ my_collection.corrupted?.should == true
57
+ end
58
+ end
59
+
60
+ describe "attributes of a collection" do
61
+ it "should check if the collection waits for sync" do
62
+ @database.stub(:send_request).with("/collection/4590/properties").and_return { server_response("/collections/4590") }
63
+ @database.should_receive(:send_request).with("/collection/4590/properties")
64
+
65
+ my_collection = subject.new @database, { "id" => "4590" }
66
+ my_collection.wait_for_sync?.should be_true
67
+ end
68
+
69
+ it "should know how many documents the collection has" do
70
+ @database.stub(:send_request).with("/collection/4590/count").and_return { server_response("/collections/4590-properties") }
71
+ @database.should_receive(:send_request).with("/collection/4590/count")
72
+
73
+ my_collection = subject.new @database, { "id" => "4590" }
74
+ my_collection.length.should == 54
75
+ end
76
+
77
+ it "should check for the figures" do
78
+ @database.stub(:send_request).with("/collection/73482/figures").and_return { server_response("/collections/73482-figures") }
79
+ @database.should_receive(:send_request).with("/collection/73482/figures")
80
+
81
+ my_collection = subject.new @database, { "id" => "73482" }
82
+ my_collection.figure(:datafiles_count).should == 1
83
+ my_collection.figure(:alive_size).should == 0
84
+ my_collection.figure(:alive_count).should == 0
85
+ my_collection.figure(:dead_size).should == 2384
86
+ my_collection.figure(:dead_count).should == 149
87
+ end
88
+ end
89
+
90
+ describe "an initialized collection" do
91
+ subject { Ashikawa::Core::Collection.new @database, { "id" => "4590", "name" => "example_1" } }
92
+
93
+ it "should get deleted" do
94
+ @database.stub(:send_request).with("/collection/4590", delete: {})
95
+ @database.should_receive(:send_request).with("/collection/4590", delete: {})
96
+
97
+ subject.delete
98
+ end
99
+
100
+ it "should get loaded" do
101
+ @database.stub(:send_request).with("/collection/4590/load", put: {})
102
+ @database.should_receive(:send_request).with("/collection/4590/load", put: {})
103
+
104
+ subject.load
105
+ end
106
+
107
+ it "should get unloaded" do
108
+ @database.stub(:send_request).with("/collection/4590/unload", put: {})
109
+ @database.should_receive(:send_request).with("/collection/4590/unload", put: {})
110
+
111
+ subject.unload
112
+ end
113
+
114
+ it "should get truncated" do
115
+ @database.stub(:send_request).with("/collection/4590/truncate", put: {})
116
+ @database.should_receive(:send_request).with("/collection/4590/truncate", put: {})
117
+
118
+ subject.truncate!
119
+ end
120
+
121
+ it "should change if it waits for sync" do
122
+ @database.stub(:send_request).with("/collection/4590/properties", put: {"waitForSync" => true})
123
+ @database.should_receive(:send_request).with("/collection/4590/properties", put: {"waitForSync" => true})
124
+
125
+ subject.wait_for_sync = true
126
+ end
127
+
128
+ it "should change its name" do
129
+ @database.stub(:send_request).with("/collection/4590/rename", put: {"name" => "my_new_name"})
130
+ @database.should_receive(:send_request).with("/collection/4590/rename", put: {"name" => "my_new_name"})
131
+
132
+ subject.name = "my_new_name"
133
+ end
134
+
135
+ describe "working with documents" do
136
+
137
+ describe "list all" do
138
+ it "should list all documents" do
139
+ @database.stub(:send_request).with("/simple/all", put: {"collection" => "example_1"}).and_return { server_response('simple-queries/all') }
140
+ @database.should_receive(:send_request).with("/simple/all", put: {"collection" => "example_1"})
141
+
142
+ # Documents need to get initialized:
143
+ Ashikawa::Core::Document.should_receive(:new).with("12345/57463", 57463)
144
+ Ashikawa::Core::Document.should_receive(:new).with("12346/3872", 3872)
145
+
146
+ subject.all
147
+ end
148
+
149
+ it "should limit to a certain amount" do
150
+ @database.stub(:send_request).with("/simple/all", put: {"collection" => "example_1", "limit" => 1}).and_return { server_response('simple-queries/all_skip') }
151
+ @database.should_receive(:send_request).with("/simple/all", put: {"collection" => "example_1", "limit" => 1})
152
+
153
+ Ashikawa::Core::Document.should_receive(:new).with("12346/3872", 3872)
154
+
155
+ subject.all :limit => 1
156
+ end
157
+
158
+ it "should skip documents" do
159
+ @database.stub(:send_request).with("/simple/all", put: {"collection" => "example_1", "skip" => 1}).and_return { server_response('simple-queries/all_limit') }
160
+ @database.should_receive(:send_request).with("/simple/all", put: {"collection" => "example_1", "skip" => 1})
161
+
162
+ Ashikawa::Core::Document.should_receive(:new).with("12345/57463", 57463)
163
+
164
+ subject.all :skip => 1
165
+ end
166
+ end
167
+
168
+ describe "by example" do
169
+ before(:each) do
170
+ @search_params = { :hello => "world" }
171
+ end
172
+
173
+ it "should find documents by example" do
174
+ @database.stub(:send_request).with("/simple/by-example", put: {"collection" => "example_1", "example" => { :hello => "world"}}).and_return { server_response('simple-queries/example') }
175
+ @database.should_receive(:send_request).with("/simple/by-example", put: {"collection" => "example_1", "example" => { :hello => "world"}})
176
+
177
+ Ashikawa::Core::Document.should_receive(:new).with("12345/57463", 57463)
178
+
179
+ subject.by_example(@search_params)
180
+ end
181
+
182
+ it "should skip documents" do
183
+ @database.stub(:send_request).with("/simple/by-example", put: {"collection" => "example_1", "skip" => 1, "example" => { :hello => "world"}}).and_return { server_response('simple-queries/example') }
184
+ @database.should_receive(:send_request).with("/simple/by-example", put: {"collection" => "example_1", "skip" => 1, "example" => { :hello => "world"}})
185
+
186
+ Ashikawa::Core::Document.should_receive(:new).with("12345/57463", 57463)
187
+
188
+ subject.by_example @search_params, :skip => 1
189
+ end
190
+
191
+ it "should limit documents" do
192
+ @database.stub(:send_request).with("/simple/by-example", put: {"collection" => "example_1", "limit" => 2, "example" => { :hello => "world"}}).and_return { server_response('simple-queries/example') }
193
+ @database.should_receive(:send_request).with("/simple/by-example", put: {"collection" => "example_1", "limit" => 2, "example" => { :hello => "world"}})
194
+
195
+ Ashikawa::Core::Document.should_receive(:new).with("12345/57463", 57463)
196
+
197
+ subject.by_example @search_params, :limit => 2
198
+ end
199
+
200
+ end
201
+
202
+ describe "near" do
203
+ it "should look for documents based on latitude/longitude" do
204
+ @database.stub(:send_request).with("/simple/near", put: { "collection" => "example_1", "latitude" => 0, "longitude" => 0 }).and_return { server_response('simple-queries/near') }
205
+ @database.should_receive(:send_request).with("/simple/near", put: { "collection" => "example_1", "latitude" => 0, "longitude" => 0 })
206
+
207
+ Ashikawa::Core::Document.should_receive(:new).with("12345/57463", 57463)
208
+ Ashikawa::Core::Document.should_receive(:new).with("12346/2938", 2938)
209
+ Ashikawa::Core::Document.should_receive(:new).with("12347/23737", 23737)
210
+
211
+ subject.near :latitude => 0, :longitude => 0
212
+ end
213
+ end
214
+
215
+ describe "within" do
216
+ it "should look for documents within a certain radius" do
217
+ @database.stub(:send_request).with("/simple/within", put: { "collection" => "example_1", "latitude" => 0, "longitude" => 0, "radius" => 2 }).and_return { server_response('simple-queries/within') }
218
+ @database.should_receive(:send_request).with("/simple/within" , put: { "collection" => "example_1", "latitude" => 0, "longitude" => 0, "radius" => 2 })
219
+
220
+ Ashikawa::Core::Document.should_receive(:new).with("12345/57463", 57463)
221
+
222
+ subject.within :latitude => 0, :longitude => 0, :radius => 2
223
+ end
224
+ end
225
+
226
+ end
227
+ end
228
+ end
@@ -0,0 +1,55 @@
1
+ require 'unit/spec_helper'
2
+ require 'ashikawa-core/connection'
3
+
4
+ describe Ashikawa::Core::Connection do
5
+ subject { Ashikawa::Core::Connection }
6
+
7
+ it "should have an IP and port" do
8
+ connection = subject.new "http://localhost:8529"
9
+
10
+ connection.ip.should == "http://localhost"
11
+ connection.port.should == 8529
12
+ end
13
+
14
+ describe "initialized connection" do
15
+ subject { Ashikawa::Core::Connection.new "http://localhost:8529" }
16
+
17
+ it "should send a get request" do
18
+ stub_request(:get, "http://localhost:8529/_api/my/path").to_return body: '{ "name": "dude" }'
19
+
20
+ subject.send_request "/my/path"
21
+
22
+ WebMock.should have_requested(:get, "http://localhost:8529/_api/my/path")
23
+ end
24
+
25
+ it "should send a post request" do
26
+ stub_request(:post, "http://localhost:8529/_api/my/path").with(:body => '{"name":"new_collection"}').to_return body: '{ "name": "dude" }'
27
+
28
+ subject.send_request "/my/path", post: { :name => 'new_collection' }
29
+
30
+ WebMock.should have_requested(:post, "http://localhost:8529/_api/my/path").with :body => '{"name":"new_collection"}'
31
+ end
32
+
33
+ it "should send a put request" do
34
+ stub_request(:put, "http://localhost:8529/_api/my/path").with(:body => '{"name":"new_collection"}').to_return body: '{ "name": "dude" }'
35
+
36
+ subject.send_request "/my/path", put: { :name => 'new_collection' }
37
+
38
+ WebMock.should have_requested(:put, "http://localhost:8529/_api/my/path").with :body => '{"name":"new_collection"}'
39
+ end
40
+
41
+ it "should send a delete request" do
42
+ stub_request(:delete, "http://localhost:8529/_api/my/path").to_return body: '{ "name": "dude" }'
43
+
44
+ subject.send_request "/my/path", delete: { }
45
+
46
+ WebMock.should have_requested(:delete, "http://localhost:8529/_api/my/path")
47
+ end
48
+
49
+ it "should parse JSON" do
50
+ stub_request(:get, "http://localhost:8529/_api/my/path").to_return body: '{ "name": "dude" }'
51
+
52
+ subject.send_request("/my/path").should == {"name" => "dude"}
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,73 @@
1
+ require 'unit/spec_helper'
2
+ require 'ashikawa-core/database'
3
+
4
+ describe Ashikawa::Core::Database do
5
+ subject { Ashikawa::Core::Database }
6
+
7
+ before :each do
8
+ mock(Ashikawa::Core::Connection)
9
+ mock(Ashikawa::Core::Collection)
10
+ @connection = double()
11
+ end
12
+
13
+ it "should initialize with a connection" do
14
+ @connection.stub(:ip) { "http://localhost" }
15
+ @connection.stub(:port) { 8529 }
16
+
17
+ database = subject.new @connection
18
+ database.ip.should == "http://localhost"
19
+ database.port.should == 8529
20
+ end
21
+
22
+ it "should initialize with a connection string" do
23
+ Ashikawa::Core::Connection.stub(:new).with("http://localhost:8529").and_return(double())
24
+ Ashikawa::Core::Connection.should_receive(:new).with("http://localhost:8529")
25
+
26
+ database = subject.new "http://localhost:8529"
27
+ end
28
+
29
+ describe "initialized database" do
30
+ subject { Ashikawa::Core::Database.new @connection }
31
+
32
+ it "should fetch all available collections" do
33
+ @connection.stub(:send_request) {|path| server_response("collections/all") }
34
+ @connection.should_receive(:send_request).with("/collection")
35
+
36
+ Ashikawa::Core::Collection.should_receive(:new).with(subject, server_response("/collections/all")["collections"][0])
37
+ Ashikawa::Core::Collection.should_receive(:new).with(subject, server_response("/collections/all")["collections"][1])
38
+
39
+ subject.collections.length.should == 2
40
+ end
41
+
42
+ it "should fetch a single collection if it exists" do
43
+ @connection.stub(:send_request) { |path| server_response("collections/4588") }
44
+ @connection.should_receive(:send_request).with("/collection/4588")
45
+
46
+ Ashikawa::Core::Collection.should_receive(:new).with(subject, server_response("/collections/4588"))
47
+
48
+ subject[4588]
49
+ end
50
+
51
+ it "should create a single collection if it doesn't exist" do
52
+ @connection.stub :send_request do |path, method = {}|
53
+ if method.has_key? :post
54
+ server_response("collections/4590")
55
+ else
56
+ raise RestClient::ResourceNotFound
57
+ end
58
+ end
59
+ @connection.should_receive(:send_request).with("/collection/new_collection")
60
+ @connection.should_receive(:send_request).with("/collection", post: { name: "new_collection"} )
61
+
62
+ Ashikawa::Core::Collection.should_receive(:new).with(subject, server_response("/collections/4590"))
63
+
64
+ subject['new_collection']
65
+ end
66
+
67
+ it "should send a request via the connection object" do
68
+ @connection.should_receive(:send_request).with("/my/path", post: { data: "mydata" })
69
+
70
+ subject.send_request "/my/path", post: { data: "mydata" }
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,13 @@
1
+ require 'unit/spec_helper'
2
+ require 'ashikawa-core/document'
3
+
4
+ describe Ashikawa::Core::Document do
5
+ subject { Ashikawa::Core::Document }
6
+
7
+ it "should initialize with an id and revision" do
8
+ document = subject.new "189990/1631782", 1631782
9
+ document.id.should == "189990/1631782"
10
+ document.revision.should == 1631782
11
+ end
12
+
13
+ end
@@ -0,0 +1,11 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
+
4
+ # For HTTP Testing
5
+ require 'webmock/rspec'
6
+ require 'json'
7
+
8
+ # Helper to simulate Server Responses. Parses the fixtures in the spec folder
9
+ def server_response(path)
10
+ return JSON.parse(File.readlines("spec/fixtures/#{path}.json").join)
11
+ end
metadata ADDED
@@ -0,0 +1,199 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ashikawa-core
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - moonglum
9
+ - EinLama
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-08-21 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rest-client
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 1.6.7
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 1.6.7
31
+ - !ruby/object:Gem::Dependency
32
+ name: rake
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: 0.9.2.2
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 0.9.2.2
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.11.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 2.11.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: yard
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 0.8.2.1
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 0.8.2.1
79
+ - !ruby/object:Gem::Dependency
80
+ name: webmock
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 1.8.9
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 1.8.9
95
+ - !ruby/object:Gem::Dependency
96
+ name: redcarpet
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: 2.1.1
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 2.1.1
111
+ description: Ashikawa Core is a Wrapper around the ArangoDB Rest API. It provides
112
+ low level access and will be used in different ArangoDB ODMs.
113
+ email:
114
+ - me@moonglum.net
115
+ - tobias.eilert@me.com
116
+ executables: []
117
+ extensions: []
118
+ extra_rdoc_files: []
119
+ files:
120
+ - .gitignore
121
+ - .rvmrc
122
+ - .travis.yml
123
+ - Gemfile
124
+ - README.md
125
+ - Rakefile
126
+ - ashikawa-core.gemspec
127
+ - lib/ashikawa-core.rb
128
+ - lib/ashikawa-core/collection.rb
129
+ - lib/ashikawa-core/connection.rb
130
+ - lib/ashikawa-core/database.rb
131
+ - lib/ashikawa-core/document.rb
132
+ - lib/ashikawa-core/version.rb
133
+ - spec/fixtures/collections/4588.json
134
+ - spec/fixtures/collections/4590-properties.json
135
+ - spec/fixtures/collections/4590.json
136
+ - spec/fixtures/collections/73482-figures.json
137
+ - spec/fixtures/collections/all.json
138
+ - spec/fixtures/collections/not_found.json
139
+ - spec/fixtures/documents/4590-333.json
140
+ - spec/fixtures/simple-queries/all.json
141
+ - spec/fixtures/simple-queries/all_limit.json
142
+ - spec/fixtures/simple-queries/all_skip.json
143
+ - spec/fixtures/simple-queries/example.json
144
+ - spec/fixtures/simple-queries/near.json
145
+ - spec/fixtures/simple-queries/within.json
146
+ - spec/integration/basic_spec.rb
147
+ - spec/integration/spec_helper.rb
148
+ - spec/unit/collection_spec.rb
149
+ - spec/unit/connection_spec.rb
150
+ - spec/unit/database_spec.rb
151
+ - spec/unit/document_spec.rb
152
+ - spec/unit/spec_helper.rb
153
+ homepage: ''
154
+ licenses: []
155
+ post_install_message:
156
+ rdoc_options: []
157
+ require_paths:
158
+ - lib
159
+ required_ruby_version: !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: 1.9.2
165
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements:
172
+ - ArangoDB
173
+ rubyforge_project: ashikawa-core
174
+ rubygems_version: 1.8.24
175
+ signing_key:
176
+ specification_version: 3
177
+ summary: Ashikawa Core is a Wrapper around the ArangoDB Rest API
178
+ test_files:
179
+ - spec/fixtures/collections/4588.json
180
+ - spec/fixtures/collections/4590-properties.json
181
+ - spec/fixtures/collections/4590.json
182
+ - spec/fixtures/collections/73482-figures.json
183
+ - spec/fixtures/collections/all.json
184
+ - spec/fixtures/collections/not_found.json
185
+ - spec/fixtures/documents/4590-333.json
186
+ - spec/fixtures/simple-queries/all.json
187
+ - spec/fixtures/simple-queries/all_limit.json
188
+ - spec/fixtures/simple-queries/all_skip.json
189
+ - spec/fixtures/simple-queries/example.json
190
+ - spec/fixtures/simple-queries/near.json
191
+ - spec/fixtures/simple-queries/within.json
192
+ - spec/integration/basic_spec.rb
193
+ - spec/integration/spec_helper.rb
194
+ - spec/unit/collection_spec.rb
195
+ - spec/unit/connection_spec.rb
196
+ - spec/unit/database_spec.rb
197
+ - spec/unit/document_spec.rb
198
+ - spec/unit/spec_helper.rb
199
+ has_rdoc: