uri_service 0.5.6 → 0.6.0
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 +5 -5
- data/README.md +7 -5
- data/lib/tasks/uri_service/ci.rake +31 -58
- data/lib/tasks/uri_service/docker.rake +127 -0
- data/lib/uri_service/client.rb +1 -1
- data/lib/uri_service/version.rb +5 -5
- data/lib/uri_service.rb +10 -8
- metadata +46 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2a5e8309e33cf98f187e5f1dc39e5b0c52ea9098146cec6d417c7b4304b7cadc
|
4
|
+
data.tar.gz: d05d94ac0bbb449c1492a93fe4ad121dc8399a07843179899794ebdd8293b000
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 419b95b61f9acd1f729543b49ba530f8f1112a3b5d22aebb1a9ea1308e2fd64057dfbd5a674ab65b2d617d04fc7158ab4367c8dac7e626b66264ad09969f86b6
|
7
|
+
data.tar.gz: 6de069fd580769f921b9ca9780a201bc2410f3e7b0f908740b93b37c1935b4b205db662b29c11e8e3d8faf381bfa6d44821f0d6299f21996d06a3a95d54f195c
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
A database-backed and Solr-cached lookup/creation service for URIs. Works with or without Rails.
|
4
4
|
|
5
|
+
Note: Version 0.6.x and later are meant for use with Solr 8.
|
6
|
+
|
5
7
|
### Major Concepts:
|
6
8
|
|
7
9
|
**External Term (UriService::TermType::EXTERNAL)**
|
@@ -31,7 +33,7 @@ UriService::init({
|
|
31
33
|
'local_uri_base' => 'http://id.example.com/term/',
|
32
34
|
'temporary_uri_base' => 'com:example:id:temporary:',
|
33
35
|
'solr' => {
|
34
|
-
'url' => 'http://localhost:8983/solr/
|
36
|
+
'url' => 'http://localhost:8983/solr/uri_service',
|
35
37
|
'pool_size' => 5,
|
36
38
|
'pool_timeout' => 5000
|
37
39
|
}
|
@@ -53,7 +55,7 @@ client = UriService::Client.new({
|
|
53
55
|
'local_uri_base' => 'http://id.example.com/term/',
|
54
56
|
'temporary_uri_base' => 'com:example:id:temporary:',
|
55
57
|
'solr' => {
|
56
|
-
'url' => 'http://localhost:8983/solr/
|
58
|
+
'url' => 'http://localhost:8983/solr/uri_service',
|
57
59
|
'pool_size' => 5,
|
58
60
|
'pool_timeout' => 5000
|
59
61
|
}
|
@@ -83,7 +85,7 @@ development:
|
|
83
85
|
local_uri_base: 'http://id.example.com/term/'
|
84
86
|
temporary_uri_base: 'com:example:id:temporary:'
|
85
87
|
solr:
|
86
|
-
url: 'http://localhost:8983/solr/
|
88
|
+
url: 'http://localhost:8983/solr/uri_service'
|
87
89
|
pool_size: 5
|
88
90
|
pool_timeout: 5000
|
89
91
|
database:
|
@@ -96,7 +98,7 @@ test:
|
|
96
98
|
local_uri_base: 'http://id.example.com/term/'
|
97
99
|
temporary_uri_base: 'com:example:id:temporary:'
|
98
100
|
solr:
|
99
|
-
url: 'http://localhost:
|
101
|
+
url: 'http://localhost:9983/solr/uri_service'
|
100
102
|
pool_size: 5
|
101
103
|
pool_timeout: 5000
|
102
104
|
database:
|
@@ -109,7 +111,7 @@ production:
|
|
109
111
|
local_uri_base: 'http://id.example.com/term/'
|
110
112
|
temporary_uri_base: 'com:example:id:temporary:'
|
111
113
|
solr:
|
112
|
-
url: 'http://localhost:
|
114
|
+
url: 'http://localhost:8983/solr/uri_service_prod'
|
113
115
|
pool_size: 5
|
114
116
|
pool_timeout: 5000
|
115
117
|
database:
|
@@ -19,13 +19,15 @@ namespace :uri_service do
|
|
19
19
|
puts "[Warning] Exception creating rspec rake tasks. This message can be ignored in environments that intentionally do not pull in the RSpec gem (i.e. production)."
|
20
20
|
puts e
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
desc "CI build"
|
24
24
|
task :ci do
|
25
|
-
|
26
|
-
|
25
|
+
ENV['APP_ENV'] = 'test'
|
26
|
+
Rake::Task["uri_service:ci_prepare"].invoke
|
27
|
+
Rake::Task["uri_service:docker:setup_config_files"].invoke
|
28
|
+
Rake::Task["uri_service:ci_impl"].invoke
|
27
29
|
end
|
28
|
-
|
30
|
+
|
29
31
|
desc "Preparation steps for the CI run"
|
30
32
|
task :ci_prepare do
|
31
33
|
# Delete existing test database
|
@@ -36,65 +38,36 @@ namespace :uri_service do
|
|
36
38
|
client.create_required_tables
|
37
39
|
FileUtils.mkdir_p('tmp')
|
38
40
|
end
|
39
|
-
|
40
|
-
desc
|
41
|
-
task
|
42
|
-
|
43
|
-
|
44
|
-
FileUtils.rm_rf(instance_dir)
|
45
|
-
|
46
|
-
puts "Unpacking and starting solr...\n"
|
47
|
-
SolrWrapper.wrap({
|
48
|
-
port: 9983,
|
49
|
-
version: solr_version,
|
50
|
-
verbose: false,
|
51
|
-
mirror_url: 'http://lib-solr-mirror.princeton.edu/dist/',
|
52
|
-
managed: true,
|
53
|
-
download_path: File.join('tmp', "solr-#{solr_version}.zip"),
|
54
|
-
instance_dir: instance_dir,
|
55
|
-
}) do |solr_wrapper_instance|
|
56
|
-
|
57
|
-
# Create collection
|
58
|
-
solr_wrapper_instance.with_collection(name: 'uri_service_test', dir: File.join('spec/fixtures', 'uri_service_test_cores/uri_service_test-solr6-conf')) do |collection_name|
|
41
|
+
|
42
|
+
desc 'CI build just running specs'
|
43
|
+
task :ci_impl do
|
44
|
+
docker_wrapper do
|
45
|
+
duration = Benchmark.realtime do
|
59
46
|
Rake::Task["uri_service:rspec"].invoke
|
60
47
|
end
|
61
|
-
|
62
|
-
puts 'Stopping solr...'
|
48
|
+
puts "\nCI run finished in #{duration} seconds."
|
63
49
|
end
|
64
50
|
end
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
Jettywrapper.url = "https://github.com/cul/hydra-jetty/archive/solr-only.zip"
|
70
|
-
Jettywrapper.jetty_dir = File.join('tmp', 'jetty-test')
|
71
|
-
|
72
|
-
unless File.exists?(Jettywrapper.jetty_dir)
|
73
|
-
puts "\n" + 'No test jetty found. Will download / unzip a copy now.' + "\n"
|
51
|
+
|
52
|
+
def docker_wrapper(&block)
|
53
|
+
unless ENV['APP_ENV'] == 'test'
|
54
|
+
raise 'This task should only be run in the test environment (because it clears docker volumes)'
|
74
55
|
end
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
#
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
jetty_port: 9983,
|
90
|
-
java_version: '>= 1.8',
|
91
|
-
java_opts: ["-XX:MaxPermSize=128m", "-Xmx256m"]
|
92
|
-
})
|
93
|
-
error = Jettywrapper.wrap(jetty_params) do
|
94
|
-
Rake::Task["uri_service:rspec"].invoke
|
56
|
+
|
57
|
+
# Stop docker if it's currently running (so we can delete any old volumes)
|
58
|
+
Rake::Task['uri_service:docker:stop'].invoke
|
59
|
+
# Rake tasks must be re-enabled if you want to call them again later during the same run
|
60
|
+
Rake::Task['uri_service:docker:stop'].reenable
|
61
|
+
|
62
|
+
ENV['app_env_confirmation'] = ENV['APP_ENV'] # setting this to skip prompt in volume deletion task
|
63
|
+
Rake::Task['uri_service:docker:delete_volumes'].invoke
|
64
|
+
|
65
|
+
Rake::Task['uri_service:docker:start'].invoke
|
66
|
+
begin
|
67
|
+
block.call
|
68
|
+
ensure
|
69
|
+
Rake::Task['uri_service:docker:stop'].invoke
|
95
70
|
end
|
96
|
-
raise "test failures: #{error}" if error
|
97
|
-
|
98
71
|
end
|
99
72
|
|
100
|
-
end
|
73
|
+
end
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'open3'
|
3
|
+
require 'net/http'
|
4
|
+
require 'rainbow'
|
5
|
+
|
6
|
+
namespace :uri_service do
|
7
|
+
namespace :docker do
|
8
|
+
def docker_compose_file_path
|
9
|
+
UriService.root.join("docker/docker-compose.#{ENV['APP_ENV']}.yml")
|
10
|
+
end
|
11
|
+
|
12
|
+
def docker_compose_config
|
13
|
+
YAML.load_file(docker_compose_file_path)
|
14
|
+
end
|
15
|
+
|
16
|
+
def wait_for_solr_cores_to_load
|
17
|
+
expected_port = docker_compose_config['services']['solr']['ports'][0].split(':')[0]
|
18
|
+
url_to_check = "http://localhost:#{expected_port}/solr/uri_service/admin/system"
|
19
|
+
puts "Waiting for Solr to become available (at #{url_to_check})..."
|
20
|
+
Timeout.timeout(20, Timeout::Error, 'Timed out during Solr startup check.') do
|
21
|
+
loop do
|
22
|
+
begin
|
23
|
+
sleep 0.25
|
24
|
+
status_code = Net::HTTP.get_response(URI(url_to_check)).code
|
25
|
+
if status_code == '200' # Solr is ready to receive requests
|
26
|
+
puts 'Solr is available.'
|
27
|
+
break
|
28
|
+
end
|
29
|
+
rescue EOFError, Errno::ECONNRESET => e
|
30
|
+
# Try again in response to the above error types
|
31
|
+
next
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def running?
|
38
|
+
status = `docker compose -f #{UriService.root.join(docker_compose_file_path)} ps`
|
39
|
+
status.split("n").count > 1
|
40
|
+
end
|
41
|
+
|
42
|
+
task :setup_config_files do
|
43
|
+
docker_compose_template_dir = UriService.root.join('docker/templates')
|
44
|
+
docker_compose_dest_dir = UriService.root.join('docker')
|
45
|
+
Dir.foreach(docker_compose_template_dir) do |entry|
|
46
|
+
next unless entry.end_with?('.yml')
|
47
|
+
src_path = File.join(docker_compose_template_dir, entry)
|
48
|
+
dst_path = File.join(docker_compose_dest_dir, entry.gsub('.template', ''))
|
49
|
+
if File.exist?(dst_path)
|
50
|
+
puts Rainbow("File already exists (skipping): #{dst_path}").blue.bright + "\n"
|
51
|
+
else
|
52
|
+
FileUtils.cp(src_path, dst_path)
|
53
|
+
puts Rainbow("Created file at: #{dst_path}").green
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
task :start do
|
59
|
+
puts "Starting...\n"
|
60
|
+
if running?
|
61
|
+
puts "\nAlready running."
|
62
|
+
else
|
63
|
+
# NOTE: This command rebuilds the container images before each run, to ensure they're
|
64
|
+
# always up to date. In most cases, the overhead is minimal if the Dockerfile for an image
|
65
|
+
# hasn't changed since the last build.
|
66
|
+
`docker compose -f #{docker_compose_file_path} up --build --detach --wait`
|
67
|
+
wait_for_solr_cores_to_load
|
68
|
+
puts "\nStarted."
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
task :stop do
|
73
|
+
puts "Stopping...\n"
|
74
|
+
if running?
|
75
|
+
puts "\n"
|
76
|
+
`docker compose -f #{UriService.root.join(docker_compose_file_path)} down`
|
77
|
+
puts "\nStopped"
|
78
|
+
else
|
79
|
+
puts "Already stopped."
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
task :restart do
|
84
|
+
Rake::Task['uri_service:docker:stop'].invoke
|
85
|
+
Rake::Task['uri_service:docker:start'].invoke
|
86
|
+
end
|
87
|
+
|
88
|
+
task :status do
|
89
|
+
puts running? ? 'Running.' : 'Not running.'
|
90
|
+
end
|
91
|
+
|
92
|
+
task :delete_volumes do
|
93
|
+
if running?
|
94
|
+
puts 'Error: The volumes are currently in use. Please stop the docker services before deleting the volumes.'
|
95
|
+
next
|
96
|
+
end
|
97
|
+
|
98
|
+
puts Rainbow("This will delete ALL Solr data for the selected app "\
|
99
|
+
"environment (#{ENV['APP_ENV']}) and cannot be undone. Please confirm that you want to continue "\
|
100
|
+
"by typing the name of the selected Rails environment (#{ENV['APP_ENV']}):").red.bright
|
101
|
+
print '> '
|
102
|
+
response = ENV['app_env_confirmation'] || $stdin.gets.chomp
|
103
|
+
|
104
|
+
puts ""
|
105
|
+
|
106
|
+
if response != ENV['APP_ENV']
|
107
|
+
puts "Aborting because \"#{ENV['APP_ENV']}\" was not entered."
|
108
|
+
next
|
109
|
+
end
|
110
|
+
|
111
|
+
config = docker_compose_config
|
112
|
+
volume_prefix = config['name']
|
113
|
+
full_volume_names = config['volumes'].keys.map { |short_name| "#{volume_prefix}_#{short_name}" }
|
114
|
+
|
115
|
+
full_volume_names.map do |full_volume_name|
|
116
|
+
if JSON.parse(Open3.capture3("docker volume inspect '#{full_volume_name}'")[0]).length.positive?
|
117
|
+
`docker volume rm '#{full_volume_name}'`
|
118
|
+
puts Rainbow("Deleted: #{full_volume_name}").green
|
119
|
+
else
|
120
|
+
puts Rainbow("Skipped: #{full_volume_name} (already deleted)").blue.bright
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
puts 'Done.'
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
data/lib/uri_service/client.rb
CHANGED
@@ -96,7 +96,7 @@ class UriService::Client
|
|
96
96
|
def test_connection
|
97
97
|
@db.test_connection # Raises Sequel::DatabaseConnectionError if connection didn't work
|
98
98
|
@rsolr_pool.with do |rsolr|
|
99
|
-
rsolr.get('admin/
|
99
|
+
rsolr.get('admin/system') # Raises Errno::ECONNREFUSED if connection didn't work
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
data/lib/uri_service/version.rb
CHANGED
data/lib/uri_service.rb
CHANGED
@@ -6,36 +6,35 @@ require 'uri'
|
|
6
6
|
require 'yaml'
|
7
7
|
|
8
8
|
module UriService
|
9
|
-
|
10
9
|
# Constants
|
11
10
|
VOCABULARY = :vocabulary
|
12
11
|
VOCABULARIES = :vocabularies
|
13
12
|
TERM = :term
|
14
13
|
TERMS = :terms
|
15
14
|
VALID_URI_REGEX = /\A#{URI::regexp}\z/
|
16
|
-
|
15
|
+
|
17
16
|
# Initialize the main instance of UriService::Client
|
18
17
|
# opts format: { 'local_uri_base' => 'http://id.example.com/term/', temporary_uri_base: 'temporary:', 'solr' => {...solr config...}, 'database' => {...database config...} }
|
19
18
|
def self.init(opts)
|
20
19
|
if @client && @client.connected?
|
21
20
|
@client.disconnect!
|
22
21
|
end
|
23
|
-
|
22
|
+
|
24
23
|
@client = UriService::Client.new(opts)
|
25
24
|
end
|
26
25
|
|
27
26
|
def self.client
|
28
27
|
return @client
|
29
28
|
end
|
30
|
-
|
29
|
+
|
31
30
|
def self.version
|
32
31
|
return UriService::VERSION
|
33
32
|
end
|
34
|
-
|
33
|
+
|
35
34
|
def self.required_tables
|
36
35
|
return [UriService::VOCABULARIES, UriService::TERMS]
|
37
36
|
end
|
38
|
-
|
37
|
+
|
39
38
|
# Wrapper around escape method for different versions of RSolr
|
40
39
|
def self.solr_escape(str)
|
41
40
|
if RSolr.respond_to?(:solr_escape)
|
@@ -44,11 +43,14 @@ module UriService
|
|
44
43
|
return RSolr.escape(str) # Fall back to older method
|
45
44
|
end
|
46
45
|
end
|
47
|
-
|
46
|
+
|
47
|
+
def self.root
|
48
|
+
Pathname.new(File.dirname(__dir__))
|
49
|
+
end
|
48
50
|
end
|
49
51
|
|
50
52
|
require "uri_service/version"
|
51
53
|
require "uri_service/term_type"
|
52
54
|
require "uri_service/client"
|
53
55
|
|
54
|
-
require 'uri_service/railtie' if defined?(Rails)
|
56
|
+
require 'uri_service/railtie' if defined?(Rails)
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uri_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric O'Hanlon
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2015-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
@@ -25,21 +25,21 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: connection_pool
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rdf
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rsolr
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,89 +67,89 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: sequel
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 4.26.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 4.26.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: jettywrapper
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rainbow
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '3.
|
103
|
+
version: '3.0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '3.
|
110
|
+
version: '3.0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: mysql2
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 0.3.18
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 0.3.18
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: rake
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '10.1'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '10.1'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: rspec
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: '3.1'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: '3.1'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: solr_wrapper
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +164,20 @@ dependencies:
|
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: sqlite3
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "<"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '1.6'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "<"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '1.6'
|
167
181
|
description: A service for registering local URIs and performing both local and remote
|
168
182
|
URI lookups.
|
169
183
|
email: elo2112@columbia.edu
|
@@ -175,6 +189,7 @@ files:
|
|
175
189
|
- lib/tasks/uri_service.rake
|
176
190
|
- lib/tasks/uri_service/ci.rake
|
177
191
|
- lib/tasks/uri_service/db.rake
|
192
|
+
- lib/tasks/uri_service/docker.rake
|
178
193
|
- lib/tasks/uri_service/solr.rake
|
179
194
|
- lib/uri_service.rb
|
180
195
|
- lib/uri_service/client.rb
|
@@ -185,7 +200,7 @@ homepage: https://github.com/cul/uri_service
|
|
185
200
|
licenses:
|
186
201
|
- MIT
|
187
202
|
metadata: {}
|
188
|
-
post_install_message:
|
203
|
+
post_install_message:
|
189
204
|
rdoc_options: []
|
190
205
|
require_paths:
|
191
206
|
- lib
|
@@ -200,9 +215,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
215
|
- !ruby/object:Gem::Version
|
201
216
|
version: '0'
|
202
217
|
requirements: []
|
203
|
-
|
204
|
-
|
205
|
-
signing_key:
|
218
|
+
rubygems_version: 3.0.3.1
|
219
|
+
signing_key:
|
206
220
|
specification_version: 4
|
207
221
|
summary: A service for registering local URIs and performing both local and remote
|
208
222
|
URI lookups.
|