noids_client 0.0.1 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f84c41e5fda4436621de5c0dadb9939753f4a804
4
- data.tar.gz: e43be3ae32af0efebd19f9086717ae313d95067c
2
+ SHA256:
3
+ metadata.gz: d4e277f7ca5cb6bb3a0eba3670ee692b602b81e4bcdda3d3af6dff21d9c4337b
4
+ data.tar.gz: 6485dcabc35930a63069f921bdad1737ce4c909fb8254e0c74fccf352976932d
5
5
  SHA512:
6
- metadata.gz: 9b2bb7f767b7568e7acabeadce6f245e435a9ddc568ad1791c007a74fcb9ccf4c5e7f0a155c4e7784f681edc6f6588a4dfec990c7a4591cf832f169c53539f23
7
- data.tar.gz: 0babfde7d9a137eefa87b2b1c44f62022ac9a2dacbce3e91aa1e683e9de454c9fc4260b8b0600d351555365784dcef84db625b59ae43060bab8c284c6b640cf6
6
+ metadata.gz: 7ab807c004ef88ff8b5d07837b23b6d51907f986ef7da6b59e50d67469721f26eec679eebd2834ca3beca8ad99d6d63f42582c9c89b152aab54703db0106ad1a
7
+ data.tar.gz: 478760ee3bb0ae3459bd477d811dd0ef7de27d858f3be5c6b72bb26c149f4622b273a66f2a91683b1e9c6adff63d481128f1e3087f29fc063302dac128afcded
@@ -0,0 +1 @@
1
+ 2.6.0
@@ -0,0 +1,69 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ noids_client (0.0.1)
5
+ json (~> 1.8)
6
+ rest-client (~> 2.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ addressable (2.7.0)
12
+ public_suffix (>= 2.0.2, < 5.0)
13
+ byebug (11.1.3)
14
+ crack (0.4.4)
15
+ diff-lcs (1.4.4)
16
+ domain_name (0.5.20190701)
17
+ unf (>= 0.0.5, < 1.0.0)
18
+ hashdiff (1.0.1)
19
+ http-accept (1.7.0)
20
+ http-cookie (1.0.3)
21
+ domain_name (~> 0.5)
22
+ json (1.8.6)
23
+ mime-types (3.3.1)
24
+ mime-types-data (~> 3.2015)
25
+ mime-types-data (3.2020.1104)
26
+ netrc (0.11.0)
27
+ public_suffix (4.0.6)
28
+ rake (10.5.0)
29
+ rest-client (2.1.0)
30
+ http-accept (>= 1.7.0, < 2.0)
31
+ http-cookie (>= 1.0.2, < 2.0)
32
+ mime-types (>= 1.16, < 4.0)
33
+ netrc (~> 0.8)
34
+ rspec (3.10.0)
35
+ rspec-core (~> 3.10.0)
36
+ rspec-expectations (~> 3.10.0)
37
+ rspec-mocks (~> 3.10.0)
38
+ rspec-core (3.10.0)
39
+ rspec-support (~> 3.10.0)
40
+ rspec-expectations (3.10.0)
41
+ diff-lcs (>= 1.2.0, < 2.0)
42
+ rspec-support (~> 3.10.0)
43
+ rspec-mocks (3.10.0)
44
+ diff-lcs (>= 1.2.0, < 2.0)
45
+ rspec-support (~> 3.10.0)
46
+ rspec-support (3.10.0)
47
+ unf (0.1.4)
48
+ unf_ext
49
+ unf_ext (0.0.7.7)
50
+ vcr (2.9.3)
51
+ webmock (3.10.0)
52
+ addressable (>= 2.3.6)
53
+ crack (>= 0.3.2)
54
+ hashdiff (>= 0.4.0, < 2.0.0)
55
+
56
+ PLATFORMS
57
+ ruby
58
+
59
+ DEPENDENCIES
60
+ bundler (~> 1.3)
61
+ byebug
62
+ noids_client!
63
+ rake (~> 10.3)
64
+ rspec (~> 3.0)
65
+ vcr (~> 2.8)
66
+ webmock (~> 3.0)
67
+
68
+ BUNDLED WITH
69
+ 1.17.2
data/README.md CHANGED
@@ -38,47 +38,28 @@ This limitation is imposed by the server.
38
38
 
39
39
  # Setting up a noids server
40
40
 
41
- A noids server is not provided by this repository.
42
- However, for testing or experimentation it is convinent to set up a noids server, which is not difficult.
41
+ Follow the instructions at https://github.com/ndlib/noids
43
42
 
44
- ## On a Mac with homebrew
43
+ # Running tests
45
44
 
46
- First install a golang environment.
45
+ You can run the test suite by `bundle exec rspec`. This will not hit a live noid
46
+ server. The specs instead rely on recorded HTTP request/response pairs.
47
47
 
48
- brew install go
49
- mkdir ~/gocode
50
- export GOPATH=~/gocode
51
- export PATH=$GOPATH/bin:$PATH
48
+ ## Testing Noids::Client against a live noid server
52
49
 
53
- Install the noids server:
50
+ First, you'll want to ensure that you've installed a noids server. Follow the
51
+ directions over at https://github.com/ndlib/noids.
54
52
 
55
- go get https://github.com/dbrower/noids
53
+ Then run `bundle exec rake test_client_against_server`.
56
54
 
57
- Start it, and have it keep pools in memory.
55
+ ## Upstream Integrations
58
56
 
59
- noids
60
-
61
- These pools will be lost when the server is restarted.
62
- To save the pools to disk use
63
-
64
- noids -storage directory/to/use
65
-
66
- There are other options, including saving the pools to a database.
67
- See the documentation on the [noids server](https://github.com/dbrower/noids) page.
68
-
69
- You can test the server using `curl`.
70
- Note that the default port for the server to listen on is 13001.
71
- These commands will create a pool named 'test' which will generate ids using the template `.sddd`.
72
- Then 50 ids are minted, and the pool is advanced past the id `432`, so that `432` will never be minted by this pool.
73
-
74
- curl 'http://localhost:13001/pools' -F 'name=test' -F 'template=.sddd'
75
- curl 'http://localhost:13001/pools/test/mint' -F 'n=50'
76
- curl 'http://localhost:13001/pools/test/advancePast' -F 'id=432'
77
-
78
-
79
- ## On Linux
80
-
81
- Install a golang envrionment. This should be done using your package management system.
82
- e.g. `yum install golang`.
83
- Then follow the remaining steps above.
57
+ You can incorporate a live yet local noid server in your upstream suite.
84
58
 
59
+ ```ruby
60
+ require 'noids_client/integration_test'
61
+ # Note: the block will be yielded after the server has had a chance
62
+ # to spin up
63
+ NoidsClient::IntegrationTest::NoidServerRunner.new.run do
64
+ # Code to run that requires a noid server
65
+ end
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ desc "Test the current client against a NOIDs server (see https://github.com/ndlib/noids)"
4
+ task :test_client_against_server do
5
+ require 'noids_client/integration_test'
6
+ NoidsClient::IntegrationTest.run(spawn_noids_server: true)
7
+ end
@@ -5,3 +5,5 @@ require 'noids_client/pool'
5
5
  require 'noids_client/connection'
6
6
  require 'noids_client/version'
7
7
 
8
+ # NOTE: Do not require 'noids_client/integration_test' as that is
9
+ # intended for upstream systems to leverage
@@ -0,0 +1,197 @@
1
+ require 'noids_client'
2
+
3
+ module NoidsClient
4
+ # A helper class that allows for downstream implementers of the noids_clients
5
+ # gem to run against a "live" noids server
6
+ #
7
+ # @example
8
+ # require 'noids_client/integration_test'
9
+ # NoidsClient::IntegrationTest.run
10
+ #
11
+ # @see #initialize for .run parameters
12
+ module IntegrationTest
13
+ class AssertionFailedError < RuntimeError
14
+ end
15
+ def self.default_logger
16
+ require 'logger'
17
+ Logger.new(STDOUT)
18
+ end
19
+
20
+ # @params spawn_noids_server [Boolean] rely on this script (and a configured
21
+ # machine) to launch a new noids server
22
+ # @params logger [Logger] to report all the details
23
+ #
24
+ # @see TestRunner#initialize for kwargs options
25
+ # @see NoidServerRunner#initialize for kwargs options
26
+ #
27
+ # @raises AssertionFailedError if any of the integration tests fail
28
+ # @return true if all integration tests pass
29
+ def self.run(spawn_noids_server: false, logger: default_logger, **kwargs)
30
+ if spawn_noids_server
31
+ NoidServerRunner.new(logger: logger, **kwargs).run do
32
+ TestRunner.new(logger: logger, **kwargs).run
33
+ end
34
+ else
35
+ TestRunner.new(logger: logger, **kwargs).run
36
+ end
37
+ end
38
+
39
+
40
+ # A utility class to help running a NOIDs server within the context
41
+ #
42
+ # @example
43
+ # require 'noids_client/integration_test'
44
+ # NoidsClient::IntegrationTest::NoidServerRunner.new do
45
+ # # thing that requires a noids server
46
+ # end
47
+ #
48
+ class NoidServerRunner
49
+ # @param kwargs [Hash] the configuration options for the NoidsServer. Note,
50
+ # you shouldn't need to pass parameters if you follow the noids
51
+ # documentation
52
+ # @option logger [#debug, #info]
53
+ # @option storage_dir [String]
54
+ # @option file_utils [#mkdir_p, #rm_rf] the object that will manage cleaning
55
+ # the storage_dir
56
+ # @option noids_command [String] the fully expanded to the noids command
57
+ # @option seconds_to_wait [Integer] how long to wait for the noids server to
58
+ # fully boot
59
+ def initialize(**kwargs)
60
+ @logger = kwargs.fetch(:logger) { IntegrationTest.default_logger }
61
+ logger.debug("logger: #{logger.inspect}")
62
+ @storage_dir = kwargs.fetch(:storage_dir) { default_storage_dir }
63
+ logger.debug("storage_dir: #{storage_dir.inspect}")
64
+ @file_utils = kwargs.fetch(:file_utils) { default_file_utils }
65
+ logger.debug("file_utils: #{file_utils.inspect}")
66
+ @noids_command = kwargs.fetch(:noids_command) { default_noids_command }
67
+ logger.debug("noids_command: #{noids_command.inspect}")
68
+ @seconds_to_wait = kwargs.fetch(:seconds_to_wait) { SECONDS_TO_WAIT }
69
+ logger.debug("seconds_to_wait: #{seconds_to_wait}")
70
+ end
71
+
72
+ attr_reader :storage_dir, :noids_command, :logger, :file_utils, :seconds_to_wait
73
+
74
+ private
75
+
76
+ def default_storage_dir
77
+ File.join(ENV.fetch("HOME"), "noids_pool")
78
+ end
79
+
80
+ def default_noids_command
81
+ File.join(ENV.fetch("GOPATH"), "bin/noids")
82
+ end
83
+
84
+ def default_file_utils
85
+ require 'fileutils'
86
+ FileUtils
87
+ end
88
+
89
+ public
90
+
91
+ SECONDS_TO_WAIT = 5
92
+ def run
93
+ clean_storage!
94
+ process_id = Process.spawn("#{noids_command} --storage #{storage_dir}")
95
+ Process.detach(process_id)
96
+ logger.debug("Waiting #{seconds_to_wait} seconds for noids to start")
97
+ sleep(seconds_to_wait)
98
+ yield if block_given?
99
+ ensure
100
+ stop_noids!(process_id: process_id)
101
+ end
102
+
103
+ private
104
+
105
+ def clean_storage!
106
+ logger.info("Cleaning noids: #{storage_dir}")
107
+ file_utils.rm_rf(storage_dir)
108
+ file_utils.mkdir_p(storage_dir)
109
+ end
110
+
111
+ def start_noids!
112
+ # `$GOPATH/bin/noids --storage ~/noids_pool`
113
+ logger.info("Starting noids server…")
114
+ IO.popen("#{noids_command} --storage #{storage_dir}", err: [:child, :out])
115
+ end
116
+
117
+ def stop_noids!(process_id:)
118
+ logger.info("Shutting down server…")
119
+ Process.kill(:SIGINT, process_id)
120
+ return true
121
+ end
122
+ end
123
+
124
+
125
+ class TestRunner
126
+ # @param kwargs [Hash] the configuration options for the NoidsServer. Note,
127
+ # you shouldn't need to pass parameters if you follow the noids
128
+ # documentation
129
+ # @option logger [#debug, #info]
130
+ # @option noids_url [String]
131
+ # @option connection_class [#new] a connection class that implements the
132
+ # NoidsClient::Connection object interface
133
+ def initialize(**kwargs)
134
+ @logger = kwargs.fetch(:logger) { IntegrationTest.default_logger }
135
+ logger.debug("logger: #{logger.inspect}")
136
+ @noids_url = kwargs.fetch(:noids_url) { default_noids_url }
137
+ @connection_class = kwargs.fetch(:connection_class) { default_connection_class }
138
+ connect!
139
+ end
140
+ attr_reader :noids_url, :logger, :connection, :connection_class
141
+
142
+ private
143
+
144
+ def connect!
145
+ logger.debug "Using #{noids_url} to connect via #{connection_class}"
146
+ @connection = connection_class.new(noids_url)
147
+ end
148
+
149
+ def default_noids_url
150
+ default_noids_url = "http://localhost:13001"
151
+ ENV.fetch("NOIDS_URL") do
152
+ default_noids_url
153
+ end
154
+ end
155
+
156
+ def default_logger
157
+ require 'logger'
158
+ Logger.new(STDOUT)
159
+ end
160
+
161
+ def default_connection_class
162
+ require 'noids_client'
163
+ NoidsClient::Connection
164
+ end
165
+
166
+ public
167
+
168
+ def run
169
+ assert(connection.pool_list.empty?, "Expected connection.pool_list to be empty")
170
+ new_pool = connection.new_pool("test", ".sddd")
171
+ assert(new_pool, "Expected to be able to create a pool")
172
+ assert(connection.pool_list.include?("test"), "Expected connection.pool_list to include test")
173
+ pool = connection.get_pool("test")
174
+ assert(pool.name == "test", "Expected pool to be named 'test'")
175
+ assert(pool.ids_used == 0, "Expected pool to have no used IDs")
176
+ ids = pool.mint(2)
177
+ assert(ids.size == 2, "Expected to mint 2 ids with `pool.mint(2)`")
178
+ assert(pool.close, "Expected close to be successful")
179
+ assert(pool.open, "Expected to be able to re-open the pool")
180
+ assert(pool.ids_used == 2, "Expected the previously minted ids to register as used")
181
+ return true
182
+ end
183
+
184
+ private
185
+
186
+ def assert(boolean_test, expectation_message)
187
+ if boolean_test # The test passed
188
+ logger.info expectation_message
189
+ return true
190
+ else
191
+ logger.fatal "FAILED EXPECTATION: #{expectation_message}"
192
+ raise AssertionFailedError, "FAILED EXPECTATION: #{expectation_message}"
193
+ end
194
+ end
195
+ end
196
+ end
197
+ end
@@ -1,3 +1,3 @@
1
1
  module NoidsClient
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -8,23 +8,22 @@ Gem::Specification.new do |spec|
8
8
  spec.version = NoidsClient::VERSION
9
9
  spec.summary = 'Ruby client for a NOIDS server'
10
10
  spec.description = %q{Provides an idiomatic interface to the REST API of a noids server (see https://github.com/dbrower/noids)}
11
- spec.authors = ['Don Brower']
12
- spec.email = ['dbrower@nd.edu']
11
+ spec.authors = ['Don Brower', "Jeremy Friesen"]
12
+ spec.email = ['dbrower@nd.edu', "jeremy.n.friesen@gmail.com"]
13
13
  spec.license = 'APACHE2'
14
- spec.homepage = 'https://github.com/ndlib/noids_client'
15
14
 
16
15
  spec.files = `git ls-files`.split($/)
17
16
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
18
  spec.require_paths = ["lib"]
20
19
 
21
- spec.add_dependency 'rest-client', '~> 1.6'
20
+ spec.add_dependency 'rest-client', '~> 2.0'
22
21
  spec.add_dependency 'json', '~> 1.8'
23
22
 
24
23
  spec.add_development_dependency 'bundler', '~> 1.3'
25
24
  spec.add_development_dependency 'rake', '~> 10.3'
26
25
  spec.add_development_dependency 'rspec', '~> 3.0'
27
26
  spec.add_development_dependency 'vcr', '~> 2.8'
28
- spec.add_development_dependency 'webmock', '~> 1.17'
27
+ spec.add_development_dependency 'webmock', '~> 3.0'
28
+ spec.add_development_dependency 'byebug'
29
29
  end
30
-
@@ -4,6 +4,9 @@ require 'vcr'
4
4
 
5
5
  require 'noids_client'
6
6
 
7
+ require 'webmock'
8
+ WebMock.enable!
9
+
7
10
  VCR.configure do |c|
8
11
  c.cassette_library_dir = 'spec/cassettes'
9
12
  c.hook_into :webmock
metadata CHANGED
@@ -1,127 +1,146 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noids_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Brower
8
+ - Jeremy Friesen
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-08-20 00:00:00.000000000 Z
12
+ date: 2020-12-03 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: rest-client
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - ~>
18
+ - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
+ version: '2.0'
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
- - - ~>
25
+ - - "~>"
25
26
  - !ruby/object:Gem::Version
26
- version: '1.6'
27
+ version: '2.0'
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: json
29
30
  requirement: !ruby/object:Gem::Requirement
30
31
  requirements:
31
- - - ~>
32
+ - - "~>"
32
33
  - !ruby/object:Gem::Version
33
34
  version: '1.8'
34
35
  type: :runtime
35
36
  prerelease: false
36
37
  version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
- - - ~>
39
+ - - "~>"
39
40
  - !ruby/object:Gem::Version
40
41
  version: '1.8'
41
42
  - !ruby/object:Gem::Dependency
42
43
  name: bundler
43
44
  requirement: !ruby/object:Gem::Requirement
44
45
  requirements:
45
- - - ~>
46
+ - - "~>"
46
47
  - !ruby/object:Gem::Version
47
48
  version: '1.3'
48
49
  type: :development
49
50
  prerelease: false
50
51
  version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
- - - ~>
53
+ - - "~>"
53
54
  - !ruby/object:Gem::Version
54
55
  version: '1.3'
55
56
  - !ruby/object:Gem::Dependency
56
57
  name: rake
57
58
  requirement: !ruby/object:Gem::Requirement
58
59
  requirements:
59
- - - ~>
60
+ - - "~>"
60
61
  - !ruby/object:Gem::Version
61
62
  version: '10.3'
62
63
  type: :development
63
64
  prerelease: false
64
65
  version_requirements: !ruby/object:Gem::Requirement
65
66
  requirements:
66
- - - ~>
67
+ - - "~>"
67
68
  - !ruby/object:Gem::Version
68
69
  version: '10.3'
69
70
  - !ruby/object:Gem::Dependency
70
71
  name: rspec
71
72
  requirement: !ruby/object:Gem::Requirement
72
73
  requirements:
73
- - - ~>
74
+ - - "~>"
74
75
  - !ruby/object:Gem::Version
75
76
  version: '3.0'
76
77
  type: :development
77
78
  prerelease: false
78
79
  version_requirements: !ruby/object:Gem::Requirement
79
80
  requirements:
80
- - - ~>
81
+ - - "~>"
81
82
  - !ruby/object:Gem::Version
82
83
  version: '3.0'
83
84
  - !ruby/object:Gem::Dependency
84
85
  name: vcr
85
86
  requirement: !ruby/object:Gem::Requirement
86
87
  requirements:
87
- - - ~>
88
+ - - "~>"
88
89
  - !ruby/object:Gem::Version
89
90
  version: '2.8'
90
91
  type: :development
91
92
  prerelease: false
92
93
  version_requirements: !ruby/object:Gem::Requirement
93
94
  requirements:
94
- - - ~>
95
+ - - "~>"
95
96
  - !ruby/object:Gem::Version
96
97
  version: '2.8'
97
98
  - !ruby/object:Gem::Dependency
98
99
  name: webmock
99
100
  requirement: !ruby/object:Gem::Requirement
100
101
  requirements:
101
- - - ~>
102
+ - - "~>"
102
103
  - !ruby/object:Gem::Version
103
- version: '1.17'
104
+ version: '3.0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '3.0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: byebug
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
104
119
  type: :development
105
120
  prerelease: false
106
121
  version_requirements: !ruby/object:Gem::Requirement
107
122
  requirements:
108
- - - ~>
123
+ - - ">="
109
124
  - !ruby/object:Gem::Version
110
- version: '1.17'
125
+ version: '0'
111
126
  description: Provides an idiomatic interface to the REST API of a noids server (see
112
127
  https://github.com/dbrower/noids)
113
128
  email:
114
129
  - dbrower@nd.edu
130
+ - jeremy.n.friesen@gmail.com
115
131
  executables: []
116
132
  extensions: []
117
133
  extra_rdoc_files: []
118
134
  files:
135
+ - ".ruby-version"
119
136
  - Gemfile
137
+ - Gemfile.lock
120
138
  - LICENSE
121
139
  - README.md
122
140
  - Rakefile
123
141
  - lib/noids_client.rb
124
142
  - lib/noids_client/connection.rb
143
+ - lib/noids_client/integration_test.rb
125
144
  - lib/noids_client/pool.rb
126
145
  - lib/noids_client/version.rb
127
146
  - noids_client.gemspec
@@ -129,7 +148,7 @@ files:
129
148
  - spec/lib/integration_spec.rb
130
149
  - spec/lib/pool_spec.rb
131
150
  - spec/spec_helper.rb
132
- homepage: https://github.com/ndlib/noids_client
151
+ homepage:
133
152
  licenses:
134
153
  - APACHE2
135
154
  metadata: {}
@@ -139,17 +158,16 @@ require_paths:
139
158
  - lib
140
159
  required_ruby_version: !ruby/object:Gem::Requirement
141
160
  requirements:
142
- - - '>='
161
+ - - ">="
143
162
  - !ruby/object:Gem::Version
144
163
  version: '0'
145
164
  required_rubygems_version: !ruby/object:Gem::Requirement
146
165
  requirements:
147
- - - '>='
166
+ - - ">="
148
167
  - !ruby/object:Gem::Version
149
168
  version: '0'
150
169
  requirements: []
151
- rubyforge_project:
152
- rubygems_version: 2.1.11
170
+ rubygems_version: 3.0.1
153
171
  signing_key:
154
172
  specification_version: 4
155
173
  summary: Ruby client for a NOIDS server
@@ -158,4 +176,3 @@ test_files:
158
176
  - spec/lib/integration_spec.rb
159
177
  - spec/lib/pool_spec.rb
160
178
  - spec/spec_helper.rb
161
- has_rdoc: