ashikawa-core 0.3.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,44 @@
1
+ # Contributing
2
+
3
+ When you want to write code for the project, please follow these guidelines:
4
+
5
+ 1. Claim the ticket: Tell us that you want to work on a certain ticket, we will assign it to you (We don't want two people to work on the same thing ;) )
6
+ 2. Write an Integration Test: Describe what you want to do (our integration tests touch the database)
7
+ 3. Implement it: Write a unit test, check that it fails, make the test pass – repeat (our unit tests don't touch the database)
8
+ 4. Write Documentation for it.
9
+ 5. Check with `rake` that everything is fine and send the Pull Request :)
10
+
11
+ ## How to get started developing
12
+
13
+ Getting started is easy, just follow these steps.
14
+
15
+ ### In a nutshell
16
+
17
+ * Clone the project.
18
+ * `cd` into the folder and run `bundle`
19
+ * `rake` and see all tests passing (you need to have ArangoDB installed for that)
20
+ * Happy coding!
21
+
22
+ ### Detailed description
23
+
24
+ Make sure you are running Ruby 1.9.x (or JRuby/Rubinius in 1.9 mode) and clone the latest snapshot into a directory of your choice. Also make sure ArangoDB is installed and accessible via `arangod` (for example by installing it via `brew install arangodb`).
25
+
26
+ We encourage you to use [rvm](https://rvm.io/). If you do so, a gemset for the project is created upon changing into the directory. If you do not use `rvm` nothing special will happen in this case. Don't worry about it.
27
+
28
+ Change into the project directory. Run `bundle` to get all dependencies (do a `gem install bundler` before if you don't have bundler installed).
29
+
30
+ Now you can run `rake` to see all tests passing (hopefully). Happy coding!
31
+
32
+ You can also start up yard for documentation: `rake yard:server`
33
+
34
+ ### Guard
35
+
36
+ Guard is a tool for comfortable development. If you want to use it for development, you have to first start an instance of ArangoDB and then start guard with `guard`. This will:
37
+
38
+ * Run a documentation server on `http://localhost:8808`
39
+ * Run `bundle` whenever you change the dependencies
40
+ * Run the integration and unit tests whenever you change a file in the lib or spec directory
41
+
42
+ ### Continuous Integration
43
+
44
+ Our tests are run on Travis CI, the build status is displayed above. **Please note** that it only runs the unit tests and not the integration tests, because that would require ArangoDB to be installed on the Travis CI boxes. *Therefore green doesn't neccessarily mean green* (which is unfortunate). Therefore it is important that you run the integration tests on your local machine before sending the pull requests.
data/Guardfile CHANGED
@@ -6,12 +6,12 @@ guard 'yard' do
6
6
  watch(%r{lib/.+\.rb})
7
7
  end
8
8
 
9
- guard 'rspec', :version => 2, :spec_paths => "spec/unit" do
9
+ guard 'rspec', :spec_paths => "spec/unit" do
10
10
  watch(%r{lib/.+\.rb})
11
11
  watch(%r{spec/.+\.rb})
12
12
  end
13
13
 
14
- guard 'rspec', :version => 2, :spec_paths => "spec/integration" do
14
+ guard 'rspec', :spec_paths => "spec/integration" do
15
15
  watch(%r{lib/.+\.rb})
16
16
  watch(%r{spec/.+\.rb})
17
17
  end
data/README.md CHANGED
@@ -18,47 +18,6 @@ database["my_collection"].name = "new_name"
18
18
  database["new_name"].delete
19
19
  ```
20
20
 
21
- ## How to get started developing
21
+ # Contributing
22
22
 
23
- Getting started is easy, just follow these steps.
24
-
25
- ### In a nutshell
26
-
27
- * Clone the project.
28
- * `cd` into the folder and run `bundle`
29
- * `rake` and see all tests passing (you need to have ArangoDB installed for that)
30
- * Happy coding!
31
-
32
- ### Detailed description
33
-
34
- Make sure you are running Ruby 1.9.x (or JRuby/Rubinius in 1.9 mode) and clone the latest snapshot into a directory of your choice. Also make sure ArangoDB is installed and accessible via `arangod` (for example by installing it via `brew install arangodb`).
35
-
36
- We encourage you to use [rvm](https://rvm.io/). If you do so, a gemset for the project is created upon changing into the directory. If you do not use `rvm` nothing special will happen in this case. Don't worry about it.
37
-
38
- Change into the project directory. Run `bundle` to get all dependencies (do a `gem install bundler` before if you don't have bundler installed).
39
-
40
- Now you can run `rake` to see all tests passing (hopefully). Happy coding!
41
-
42
- You can also start up yard for documentation: `rake yard:server`
43
-
44
- ### Guard
45
-
46
- Guard is a tool for comfortable development. If you want to use it for development, you have to first start an instance of ArangoDB and then start guard with `guard`. This will:
47
-
48
- * Run a documentation server on `http://localhost:8808`
49
- * Run `bundle` whenever you change the dependencies
50
- * Run the integration and unit tests whenever you change a file in the lib or spec directory
51
-
52
- ### Continuous Integration
53
-
54
- Our tests are run on Travis CI, the build status is displayed above. **Please note** that it only runs the unit tests and not the integration tests, because that would require ArangoDB to be installed on the Travis CI boxes. *Therefore green doesn't neccessarily mean green* (which is unfortunate).
55
-
56
- ## Contributing
57
-
58
- When you want to write code for the project, please follow these guidelines:
59
-
60
- 1. Claim the ticket: Tell us that you want to work on a certain ticket, we will assign it to you (We don't want two people to work on the same thing ;) )
61
- 2. Write an Integration Test: Describe what you want to do (our integration tests touch the database)
62
- 3. Implement it: Write a unit test, check that it fails, make the test pass – repeat (our unit tests don't touch the database)
63
- 4. Write Documentation for it.
64
- 5. Check with `rake` that everything is fine and send the Pull Request :)
23
+ If you want to contribute to the project, see CONTRIBUTING.md for details.
data/Rakefile CHANGED
@@ -12,12 +12,18 @@ namespace :spec do
12
12
  spec.rspec_opts = "--require integration/arango_helper.rb"
13
13
  spec.pattern = "spec/integration/*_spec.rb"
14
14
  end
15
-
15
+
16
+ desc "Run the authentication integration tests. Requires ArangoDB."
17
+ RSpec::Core::RakeTask.new(:integration_auth) do |spec|
18
+ spec.rspec_opts = "--require integration_auth/arango_helper.rb"
19
+ spec.pattern = "spec/integration_auth/*_spec.rb"
20
+ end
21
+
16
22
  desc "Run the unit tests"
17
23
  RSpec::Core::RakeTask.new(:unit) do |spec|
18
24
  spec.pattern = "spec/unit/*_spec.rb"
19
25
  end
20
-
26
+
21
27
  desc "Run all tests. Requires ArangoDB"
22
28
  task :all => [:integration, :unit]
23
29
  end
@@ -37,7 +43,7 @@ namespace :yard do
37
43
  # Yardstick::Rake::Measurement.new(:report) do |measurement|
38
44
  # measurement.output = 'report/measurement.txt'
39
45
  # end
40
-
46
+
41
47
  # Yardstick::Rake::Verify.new(:verify) do |verify|
42
48
  # verify.threshold = 100
43
49
  # end
@@ -46,12 +52,12 @@ namespace :yard do
46
52
  task :generate do
47
53
  `yard`
48
54
  end
49
-
55
+
50
56
  desc "start the documentation server on port 8808"
51
57
  task :server do
52
58
  `yard server --reload`
53
59
  end
54
-
60
+
55
61
  desc "get statistics on the yard documentation"
56
62
  task :stats do
57
63
  `yard stats`
@@ -31,18 +31,19 @@ Gem::Specification.new do |gem|
31
31
  else
32
32
  # RedCarpet is not compatible with JRuby
33
33
  # It is only needed to generate the YARD Documentation
34
- gem.add_development_dependency "redcarpet", "~> 2.1.1"
34
+ gem.add_development_dependency "redcarpet", "~> 2.2.1"
35
35
  end
36
36
 
37
37
  # Development Dependencies
38
38
  gem.add_development_dependency "rake", "~> 0.9.2.2"
39
39
  gem.add_development_dependency "rspec", "~> 2.11.0"
40
- gem.add_development_dependency "yard", "~> 0.8.2.1"
40
+ gem.add_development_dependency "yard", "~> 0.8.3"
41
41
  gem.add_development_dependency "webmock", "~> 1.8.9"
42
42
  # gem.add_development_dependency "yardstick", "~> 0.6.0"
43
43
 
44
- gem.add_development_dependency "guard", "~> 1.3.2"
45
- gem.add_development_dependency "guard-rspec", "~> 1.2.1"
44
+ gem.add_development_dependency "guard", "~> 1.4.0"
45
+ gem.add_development_dependency "guard-rspec", "~> 2.1.0"
46
46
  gem.add_development_dependency "guard-bundler", "~> 1.0.0"
47
47
  gem.add_development_dependency "guard-yard", "~> 2.0.0"
48
+ gem.add_development_dependency "rb-fsevent", "~> 0.9.1"
48
49
  end
@@ -5,14 +5,23 @@ module Ashikawa
5
5
  module Core
6
6
  # Represents a Connection via HTTP to a certain host
7
7
  class Connection
8
- # The IP of the connection
8
+ # The host part of the connection
9
9
  #
10
10
  # @return [String]
11
11
  # @api public
12
- # @example Get the IP of the connection
12
+ # @example Get the host part of the connection
13
13
  # connection = Connection.new "http://localhost:8529"
14
- # connection.ip # => "http://localhost"
15
- attr_reader :ip
14
+ # connection.host # => "localhost"
15
+ attr_reader :host
16
+
17
+ # The scheme of the connection
18
+ #
19
+ # @return [String]
20
+ # @api public
21
+ # @example Get the scheme of the connection
22
+ # connection = Connection.new "http://localhost:8529"
23
+ # connection.scheme # => "http"
24
+ attr_reader :scheme
16
25
 
17
26
  # The port of the connection
18
27
  #
@@ -23,16 +32,42 @@ module Ashikawa
23
32
  # connection.port # => 8529
24
33
  attr_reader :port
25
34
 
35
+ # Username and password of the connection
36
+ #
37
+ # Needed if the database is running with HTTP base authentication
38
+ # enabled. Username and password are sent with every request to
39
+ # authenticate against the database.
40
+ #
41
+ # You can set these properties with the `authenticate_with` method
42
+ #
43
+ # @api public
44
+ attr_reader :username, :password
45
+
26
46
  # Initialize a Connection with a given API String
27
47
  #
28
- # @param [String] api_string IP and Port as a String
48
+ # @param [String] api_string scheme, hostname and port as a String
29
49
  # @api public
30
50
  # @example Create a new Connection
31
51
  # connection = Connection.new "http://localhost:8529"
32
52
  def initialize(api_string="http://localhost:8529")
33
53
  @api_string = api_string
34
- @ip, @port = @api_string.scan(/(\S+):(\d+)/).first
35
- @port = @port.to_i
54
+
55
+ require 'uri'
56
+ uri = URI(@api_string)
57
+ @host = uri.host
58
+ @port = uri.port
59
+ @scheme = uri.scheme
60
+ end
61
+
62
+ def authenticate_with(options={})
63
+ if options.key? :username and options.key? :password
64
+ @username = options[:username]
65
+ @password = options[:password]
66
+ else
67
+ raise ArgumentError, 'missing username or password'
68
+ end
69
+
70
+ self
36
71
  end
37
72
 
38
73
  # Sends a request to a given path (Prepends the api_string automatically)
@@ -47,7 +82,7 @@ module Ashikawa
47
82
  # @return [Hash] parsed JSON response from the server
48
83
  # @api semipublic
49
84
  def send_request(path, method_params = {})
50
- path = "#{@api_string}/_api/#{path.gsub(/^\//, '')}"
85
+ path = "#{url}/_api/#{path.gsub(/^\//, '')}"
51
86
 
52
87
  answer = if method_params.has_key? :post
53
88
  RestClient.post path, method_params[:post].to_json
@@ -61,6 +96,21 @@ module Ashikawa
61
96
 
62
97
  JSON.parse answer
63
98
  end
99
+
100
+ def authentication?
101
+ !!@username
102
+ end
103
+
104
+ private
105
+
106
+ def url
107
+ if authentication?
108
+ "#{@scheme}://#{@username}:#{@password}@#{@host}:#{@port}"
109
+ else
110
+ @api_string
111
+ end
112
+ end
113
+
64
114
  end
65
115
  end
66
116
  end
@@ -9,10 +9,12 @@ module Ashikawa
9
9
  class Database
10
10
  extend Forwardable
11
11
 
12
- # Delegate sending requests and managing IP and port to the connection
12
+ # Delegate sending requests to the connection
13
13
  delegate send_request: :@connection
14
- delegate ip: :@connection
15
- delegate port: :@connection
14
+ delegate host: :@connection
15
+ delegate port: :@connection
16
+ delegate scheme: :@connection
17
+ delegate authenticate_with: :@connection
16
18
 
17
19
  # Initializes the connection to the database
18
20
  #
@@ -1,6 +1,6 @@
1
1
  module Ashikawa
2
2
  module Core
3
3
  # Current version of Ashikawa::Core
4
- VERSION = "0.3.0"
4
+ VERSION = "0.4.1"
5
5
  end
6
6
  end
@@ -0,0 +1,30 @@
1
+ RSpec.configure do |config|
2
+ raise "Could not find arangod. Please install it or check if it is in your path." if `which arangod` == ""
3
+
4
+ database_directory = "/tmp/ashikawa-integration-auth"
5
+ arango_process = false
6
+
7
+ config.before(:suite) do
8
+ puts "Generating user with password"
9
+ `arango-password --database #{database_directory} testuser testpassword`
10
+
11
+ puts "Starting ArangoDB with authentication enabled"
12
+ process_id = $$
13
+
14
+ Dir.mkdir database_directory unless Dir.exists? database_directory
15
+ arango_process = IO.popen("arangod #{database_directory} --server.http-auth yes --watch-process #{process_id}")
16
+
17
+ sleep 2 # Wait for Arango to start up
18
+ end
19
+
20
+ config.after(:suite) do
21
+ puts
22
+ puts "Shutting down ArangoDB"
23
+
24
+ Process.kill "INT", arango_process.pid
25
+ sleep 2 # Wait for Arango to shut down
26
+ arango_process.close
27
+
28
+ `rm -r #{database_directory}/*`
29
+ end
30
+ end
@@ -0,0 +1,40 @@
1
+ require 'integration/spec_helper'
2
+
3
+ describe "authenticated database" do
4
+ subject { ARANGO_HOST }
5
+
6
+ it "should have booted up an ArangoDB instance" do
7
+ expect { RestClient.get(subject) }.to raise_error RestClient::Unauthorized
8
+ end
9
+
10
+ context "authentication" do
11
+ subject { Ashikawa::Core::Database.new ARANGO_HOST }
12
+
13
+ context "without user and password" do
14
+ it "should not allow access to DB" do
15
+ expect do
16
+ subject["new_collection"]
17
+ end.to raise_error RestClient::Unauthorized
18
+ end
19
+ end
20
+
21
+ context "with user and password" do
22
+ it "should allow acces to DB" do
23
+ subject.authenticate_with username: 'testuser', password: 'testpassword'
24
+
25
+ expect do
26
+ subject["new_collection"]
27
+ subject["new_collection"].delete
28
+ end.to_not raise_error
29
+ end
30
+
31
+ it "should deny acces if username and password are wrong" do
32
+ subject.authenticate_with username: 'ruffy', password: 'three_headed_monkey'
33
+
34
+ expect do
35
+ subject["denied"]
36
+ end.to raise_error RestClient::Unauthorized
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,8 @@
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
+ ARANGO_HOST = "http://localhost:8529"
@@ -4,16 +4,19 @@ require 'ashikawa-core/connection'
4
4
  describe Ashikawa::Core::Connection do
5
5
  subject { Ashikawa::Core::Connection }
6
6
 
7
- it "should have an IP and port" do
7
+ it "should have a scheme, hostname and port" do
8
8
  connection = subject.new "http://localhost:8529"
9
9
 
10
- connection.ip.should == "http://localhost"
10
+ connection.scheme.should == "http"
11
+ connection.host.should == "localhost"
11
12
  connection.port.should == 8529
12
13
  end
13
14
 
14
- it "should default to localhost and ArangoDB port" do
15
+ it "should default to HTTP, localhost and ArangoDB port" do
15
16
  connection = subject.new
16
- connection.ip.should == "http://localhost"
17
+
18
+ connection.scheme.should == "http"
19
+ connection.host.should == "localhost"
17
20
  connection.port.should == 8529
18
21
  end
19
22
 
@@ -58,4 +61,48 @@ describe Ashikawa::Core::Connection do
58
61
  subject.send_request("/my/path").should == {"name" => "dude"}
59
62
  end
60
63
  end
64
+
65
+ describe "authentication" do
66
+ subject { Ashikawa::Core::Connection.new }
67
+
68
+ it "should authenticate with username and password" do
69
+ subject.authenticate_with username: "testuser", password: "testpassword"
70
+
71
+ subject.username.should == "testuser"
72
+ subject.password.should == "testpassword"
73
+ end
74
+
75
+ it "should have authentication turned off by default" do
76
+ subject.authentication?.should be_false
77
+ end
78
+
79
+ it "should tell if authentication is enabled" do
80
+ subject.authenticate_with username: "testuser", password: "testpassword"
81
+ subject.authentication?.should be_true
82
+ end
83
+
84
+ it "should only accept a username & password pairs" do
85
+ expect {
86
+ subject.authenticate_with username: "kitty"
87
+ }.to raise_error(ArgumentError)
88
+
89
+ expect {
90
+ subject.authenticate_with password: "cheezburger?"
91
+ }.to raise_error(ArgumentError)
92
+ end
93
+
94
+ it "should allow chaining" do
95
+ subject.authenticate_with(username: "a", password: "b").should == subject
96
+ end
97
+
98
+ it "should send the authentication data with every GET request" do
99
+ stub_request(:get, "http://user:pass@localhost:8529/_api/my/path").to_return body: '{ "name": "dude" }'
100
+
101
+ subject.authenticate_with username: "user", password: "pass"
102
+ subject.send_request "/my/path"
103
+
104
+ WebMock.should have_requested(:get, "http://user:pass@localhost:8529/_api/my/path")
105
+ end
106
+ end
107
+
61
108
  end
@@ -12,11 +12,11 @@ describe Ashikawa::Core::Database do
12
12
  end
13
13
 
14
14
  it "should initialize with a connection" do
15
- @connection.stub(:ip) { "http://localhost" }
15
+ @connection.stub(:host) { "localhost" }
16
16
  @connection.stub(:port) { 8529 }
17
17
 
18
18
  database = subject.new @connection
19
- database.ip.should == "http://localhost"
19
+ database.host.should == "localhost"
20
20
  database.port.should == 8529
21
21
  end
22
22
 
@@ -30,6 +30,12 @@ describe Ashikawa::Core::Database do
30
30
  describe "initialized database" do
31
31
  subject { Ashikawa::Core::Database.new @connection }
32
32
 
33
+ it "should delegate authentication to the connection" do
34
+ @connection.should_receive(:authenticate_with).with({ username: "user", password: "password" })
35
+
36
+ subject.authenticate_with username: "user", password: "password"
37
+ end
38
+
33
39
  it "should fetch all available collections" do
34
40
  @connection.stub(:send_request) {|path| server_response("collections/all") }
35
41
  @connection.should_receive(:send_request).with("/collection")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ashikawa-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-10 00:00:00.000000000 Z
13
+ date: 2012-10-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
@@ -35,7 +35,7 @@ dependencies:
35
35
  requirements:
36
36
  - - ~>
37
37
  - !ruby/object:Gem::Version
38
- version: 2.1.1
38
+ version: 2.2.1
39
39
  type: :development
40
40
  prerelease: false
41
41
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,7 +43,7 @@ dependencies:
43
43
  requirements:
44
44
  - - ~>
45
45
  - !ruby/object:Gem::Version
46
- version: 2.1.1
46
+ version: 2.2.1
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -83,7 +83,7 @@ dependencies:
83
83
  requirements:
84
84
  - - ~>
85
85
  - !ruby/object:Gem::Version
86
- version: 0.8.2.1
86
+ version: 0.8.3
87
87
  type: :development
88
88
  prerelease: false
89
89
  version_requirements: !ruby/object:Gem::Requirement
@@ -91,7 +91,7 @@ dependencies:
91
91
  requirements:
92
92
  - - ~>
93
93
  - !ruby/object:Gem::Version
94
- version: 0.8.2.1
94
+ version: 0.8.3
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: webmock
97
97
  requirement: !ruby/object:Gem::Requirement
@@ -115,7 +115,7 @@ dependencies:
115
115
  requirements:
116
116
  - - ~>
117
117
  - !ruby/object:Gem::Version
118
- version: 1.3.2
118
+ version: 1.4.0
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
@@ -123,7 +123,7 @@ dependencies:
123
123
  requirements:
124
124
  - - ~>
125
125
  - !ruby/object:Gem::Version
126
- version: 1.3.2
126
+ version: 1.4.0
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: guard-rspec
129
129
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +131,7 @@ dependencies:
131
131
  requirements:
132
132
  - - ~>
133
133
  - !ruby/object:Gem::Version
134
- version: 1.2.1
134
+ version: 2.1.0
135
135
  type: :development
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
@@ -139,7 +139,7 @@ dependencies:
139
139
  requirements:
140
140
  - - ~>
141
141
  - !ruby/object:Gem::Version
142
- version: 1.2.1
142
+ version: 2.1.0
143
143
  - !ruby/object:Gem::Dependency
144
144
  name: guard-bundler
145
145
  requirement: !ruby/object:Gem::Requirement
@@ -172,6 +172,22 @@ dependencies:
172
172
  - - ~>
173
173
  - !ruby/object:Gem::Version
174
174
  version: 2.0.0
175
+ - !ruby/object:Gem::Dependency
176
+ name: rb-fsevent
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ~>
181
+ - !ruby/object:Gem::Version
182
+ version: 0.9.1
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ~>
189
+ - !ruby/object:Gem::Version
190
+ version: 0.9.1
175
191
  description: Ashikawa Core is a wrapper around the ArangoDB REST API. It provides
176
192
  low level access and will be used in different ArangoDB ODMs.
177
193
  email:
@@ -184,6 +200,7 @@ files:
184
200
  - .gitignore
185
201
  - .rvmrc
186
202
  - .travis.yml
203
+ - CONTRIBUTING.md
187
204
  - Gemfile
188
205
  - Guardfile
189
206
  - LICENSE
@@ -226,6 +243,9 @@ files:
226
243
  - spec/integration/index_spec.rb
227
244
  - spec/integration/query_spec.rb
228
245
  - spec/integration/spec_helper.rb
246
+ - spec/integration_auth/arango_helper.rb
247
+ - spec/integration_auth/auth_spec.rb
248
+ - spec/integration_auth/spec_helper.rb
229
249
  - spec/unit/collection_spec.rb
230
250
  - spec/unit/connection_spec.rb
231
251
  - spec/unit/cursor_spec.rb
@@ -286,6 +306,9 @@ test_files:
286
306
  - spec/integration/index_spec.rb
287
307
  - spec/integration/query_spec.rb
288
308
  - spec/integration/spec_helper.rb
309
+ - spec/integration_auth/arango_helper.rb
310
+ - spec/integration_auth/auth_spec.rb
311
+ - spec/integration_auth/spec_helper.rb
289
312
  - spec/unit/collection_spec.rb
290
313
  - spec/unit/connection_spec.rb
291
314
  - spec/unit/cursor_spec.rb