solr_cloud-connection 0.4.0 → 0.5.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 +4 -4
- data/README.md +146 -45
- data/lib/solr_cloud/collection.rb +22 -1
- data/lib/solr_cloud/configset.rb +2 -0
- data/lib/solr_cloud/connection/version.rb +1 -1
- data/lib/solr_cloud/errors.rb +2 -0
- data/readme.rb +168 -0
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d4b1ea9a7eade492c2e88434c38dadc43bcbb5a28084c4be797ce2c77eb70ce
|
4
|
+
data.tar.gz: 5531b66702ac408e0631239568035f2693cbda02b06e5401b858caa3bd633d9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6fcb28bcf8a42191ce737b4c5ae431d669a66e92b3a2d947e26c7901f3a9b5ec0afd4353d00bf6db4ae397a10c4c8aee629c366fbb6976595170b47b7cf1e2a
|
7
|
+
data.tar.gz: c8689a6b34f2ba3307ac1bfd19adf2c5fff13ecfd7b6aa2fc934754c9667569b369fddfcb4f796528d3594d5babf3213c603a9871cb92edbbb28a6f78e45e006
|
data/README.md
CHANGED
@@ -22,7 +22,7 @@ a collections that's pointed to by an alias.
|
|
22
22
|
## Caveats
|
23
23
|
|
24
24
|
* At this point the API is unstable
|
25
|
-
*
|
25
|
+
* Solr has no sense of an atomic action and plenty of other ways
|
26
26
|
(e.g, the admin interface) to mess with things, so nothing is cached.
|
27
27
|
This means that individual actions can involve several round-trips to solr. If you're doing so much admin
|
28
28
|
that this becomes a bottleneck, you're well outside this gem's target case.
|
@@ -34,70 +34,170 @@ a collections that's pointed to by an alias.
|
|
34
34
|
The code below covers all the basics. See the docs for full sets of parameters, which errors are
|
35
35
|
thrown, etc.
|
36
36
|
|
37
|
+
|
38
|
+
### Create a connection to the server
|
39
|
+
|
37
40
|
```ruby
|
41
|
+
url = "http://localhost:9090/"
|
42
|
+
user = "solr"
|
43
|
+
password = "SolrRocks"
|
44
|
+
config_directory = "/path/to/myconfig/conf" # Directory 'conf' contains solrconfig.xml
|
45
|
+
|
46
|
+
server = SolrCloud::Connection.new(url: url, user: user, password: pass)
|
47
|
+
#=> <SolrCloud::Connection http://localhost:9090>
|
38
48
|
|
39
|
-
|
49
|
+
# or bring your own Faraday object
|
50
|
+
# server2 = SolrCloud::Connection.new_with_faraday(faraday_connection)
|
40
51
|
|
41
|
-
|
42
|
-
|
52
|
+
### Get some basic info
|
53
|
+
|
54
|
+
server.version_string #=> "8.11.2"
|
55
|
+
server.cloud? #=> true
|
56
|
+
server.mode #=> "solrcloud"
|
57
|
+
```
|
43
58
|
|
44
|
-
|
45
|
-
|
59
|
+
### Configsets
|
60
|
+
```ruby
|
61
|
+
# List the configsets
|
62
|
+
server.configsets #=> [<SolrCloud::Configset '_default' at http://localhost:9090>]
|
46
63
|
|
64
|
+
# Sometimes you just want the names.
|
47
65
|
server.configset_names #=> ["_default"]
|
48
|
-
default = server.get_configset("_default") #=> <SolrCloud::Configset '_default' at http://localhost:8983>
|
49
66
|
|
50
|
-
# Create a new
|
51
|
-
|
52
|
-
server.
|
67
|
+
# Create a new configset by taking a conf directory, zipping it up,
|
68
|
+
# and sending it to solr
|
69
|
+
cset = server.create_configset(name: "horseless", confdir: config_directory) #=> <SolrCloud::Configset 'horseless' at http://localhost:9090>
|
70
|
+
server.configset_names #=> ["_default", "horseless"]
|
53
71
|
|
54
|
-
# That's a dumb name.
|
55
|
-
cset.delete!
|
56
|
-
cset = server.create_configset(name: "
|
72
|
+
# That's a dumb name for a config set. Delete it and try again.
|
73
|
+
cset.delete! #=> <SolrCloud::Connection http://localhost:9090>
|
74
|
+
cset = server.create_configset(name: "cars_cfg", confdir: config_directory) #=> <SolrCloud::Configset 'cars_cfg' at http://localhost:9090>
|
75
|
+
server.configsets #=> [<SolrCloud::Configset '_default' at http://localhost:9090>, <SolrCloud::Configset 'cars_cfg' at http://localhost:9090>]
|
57
76
|
|
58
|
-
#
|
59
|
-
server.
|
60
|
-
server.only_collection_names #=> ["cars_v1", "cars_v2"]
|
61
|
-
server.alias_names #=> ["cars"]
|
77
|
+
# Can't be overwritten by accident
|
78
|
+
server.create_configset(name: "cars_cfg", confdir: config_directory) #=> raised #<SolrCloud::WontOverwriteError: Won't replace configset cars_cfg unless 'force: true' passed >
|
62
79
|
|
63
|
-
|
64
|
-
|
80
|
+
# But you can force it
|
81
|
+
server.create_configset(name: "cars_cfg", confdir: config_directory, force: true) #=> <SolrCloud::Configset 'cars_cfg' at http://localhost:9090>
|
65
82
|
|
66
|
-
|
67
|
-
|
83
|
+
cfg = server.get_configset("cars_cfg") #=> <SolrCloud::Configset 'cars_cfg' at http://localhost:9090>
|
84
|
+
cfg.in_use? #=> false
|
68
85
|
|
86
|
+
```
|
69
87
|
|
70
|
-
|
71
|
-
cars_v2.alias? #=> false. It's a true collection
|
72
|
-
cars_v2.aliased? #=> true
|
73
|
-
cars_v2.aliases #=> [<SolrCloud::Alias "cars" (alias of "cars_v2")> ]
|
74
|
-
cars_v2.has_alias?("cars") #=> true
|
88
|
+
### Collections
|
75
89
|
|
76
|
-
|
90
|
+
```ruby
|
91
|
+
# Now create a collection based on an already-existing configset
|
92
|
+
cars_v1 = server.create_collection(name: "cars_v1", configset: "cars_cfg")
|
93
|
+
#=> <SolrCloud::Collection 'cars_v1'>
|
94
|
+
server.collections #=> [<SolrCloud::Collection 'cars_v1'>]
|
95
|
+
server.collection_names #=> ["cars_v1"]
|
77
96
|
|
78
|
-
#
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
cars_v3.configset #=> <SolrCloud::Configset 'cars_config' at http://localhost:8023>
|
97
|
+
# Check it out quick
|
98
|
+
cars_v1.alive? #=> "OK"
|
99
|
+
cars_v1.healthy? #=> true
|
100
|
+
cars_v1.count #=> 0
|
83
101
|
|
84
|
-
#
|
85
|
-
|
86
|
-
|
102
|
+
# Any aliases
|
103
|
+
cars_v1.aliased? #=> false
|
104
|
+
cars_v1.aliases #=> []
|
105
|
+
|
106
|
+
# Its configset
|
107
|
+
cars_v1.configset #=> <SolrCloud::Configset 'cars_cfg' at http://localhost:9090>
|
108
|
+
|
109
|
+
# Commit anything that's been added
|
110
|
+
cars_v1.commit #=> <SolrCloud::Collection 'cars_v1'>
|
111
|
+
|
112
|
+
# Solr knows when a configset is in use, and won't delete it
|
113
|
+
|
114
|
+
cfg.delete!
|
115
|
+
#=> raised #<SolrCloud::ConfigSetInUseError: Can not delete ConfigSet
|
116
|
+
# as it is currently being used by collection [cars_v1]>
|
117
|
+
|
118
|
+
```
|
119
|
+
|
120
|
+
### Aliases
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
# We'll want to alias it so we can just use 'cars'
|
124
|
+
cars = cars_v1.alias_as("cars") #=> <SolrCloud::Alias 'cars' (alias of 'cars_v1')>
|
125
|
+
cars_v1.alias? #=> false
|
126
|
+
cars_v1.aliased? #=> true
|
127
|
+
|
128
|
+
cars_v1.has_alias?("cars") #=> true
|
129
|
+
cars_v1.alias_as("autos") #=> <SolrCloud::Alias 'autos' (alias of 'cars_v1')>
|
130
|
+
cars_v1.aliases #=> [<SolrCloud::Alias 'cars' (alias of 'cars_v1')>, <SolrCloud::Alias 'autos' (alias of 'cars_v1')>]
|
131
|
+
|
132
|
+
cars_v1.get_alias("autos").delete! #=> <SolrCloud::Connection http://localhost:9090>
|
133
|
+
cars_v1.aliases #=> [<SolrCloud::Alias 'cars' (alias of 'cars_v1')>]
|
134
|
+
|
135
|
+
# There's syntactic sugar for switching out aliases
|
136
|
+
cars_v2 = server.create_collection(name: "cars_v2", configset: "cars_cfg") #=> <SolrCloud::Collection 'cars_v2'>
|
137
|
+
cars = server.get_alias("cars") #=> <SolrCloud::Alias 'cars' (alias of 'cars_v1')>
|
138
|
+
|
139
|
+
cars.collection #=> <SolrCloud::Collection 'cars_v1' (aliased by 'cars')>
|
140
|
+
cars.switch_collection_to("cars_v2") #=> <SolrCloud::Alias 'cars' (alias of 'cars_v2')>
|
87
141
|
cars.collection #=> <SolrCloud::Collection 'cars_v2' (aliased by 'cars')>
|
142
|
+
cars_v1.aliases #=> []
|
143
|
+
cars_v2.aliases #=> [<SolrCloud::Alias 'cars' (alias of 'cars_v2')>]
|
144
|
+
|
145
|
+
# Aliases will swap from collection to collection without warning
|
146
|
+
cars_v1.alias_as("cars") #=> <SolrCloud::Alias 'cars' (alias of 'cars_v1')>
|
147
|
+
|
148
|
+
# ...unless you use the bang(!) version
|
149
|
+
cars_v2.alias_as!("cars") #=> raised #<SolrCloud::AliasAlreadyDefinedError: Alias cars already points to cars_v1>
|
150
|
+
|
151
|
+
# You can also just switch it from the alias itself.
|
152
|
+
cars.switch_collection_to("cars_v1") #=> <SolrCloud::Alias 'cars' (alias of 'cars_v1')>
|
153
|
+
|
154
|
+
# Aliases show up as "collections" so you can just use them interchangeably
|
155
|
+
server.collection_names #=> ["cars_v1", "cars_v2", "cars"]
|
156
|
+
|
157
|
+
# They even == to each other
|
158
|
+
cars #=> <SolrCloud::Alias 'cars' (alias of 'cars_v1')>
|
159
|
+
cars == cars_v1 #=> true
|
160
|
+
cars == cars_v2 #=> false
|
161
|
+
|
162
|
+
# But sometimes you want to differentiate them from each other
|
163
|
+
server.only_collection_names #=> ["cars_v1", "cars_v2"]
|
164
|
+
cars.alias? #=> true
|
165
|
+
cars_v1.alias? #=> false
|
166
|
+
|
167
|
+
cars.collection #=> <SolrCloud::Collection 'cars_v1' (aliased by 'cars')>
|
168
|
+
|
169
|
+
```
|
170
|
+
|
171
|
+
### Accessing objects from other objects
|
172
|
+
|
173
|
+
```ruby
|
174
|
+
# You can grab existing collections/aliases/configsets from the server
|
175
|
+
# as well as when they're returned by a create_* statement
|
176
|
+
cv1 = server.get_collection("cars_v1") #=> <SolrCloud::Collection 'cars_v1' (aliased by 'cars')>
|
177
|
+
cars = server.get_collection("cars") #=> <SolrCloud::Alias 'cars' (alias of 'cars_v1')>
|
178
|
+
|
179
|
+
# get_* methods might return nil
|
180
|
+
typo = "cars_V1" #=> "cars_V1"
|
181
|
+
server.has_collection?(typo) #=> false
|
182
|
+
dne = server.get_collection(typo) #=> nil
|
183
|
+
|
184
|
+
# get_*! methods will throw an error
|
185
|
+
dne = server.get_collection!(typo) #=> raised #<SolrCloud::NoSuchCollectionError: Collection 'cars_V1' not found>
|
186
|
+
|
187
|
+
# alias#collection returns the underlying collection.
|
188
|
+
# collection#collection returns itself. This makes it easier to
|
189
|
+
# write code without differentiating between them.
|
88
190
|
|
89
|
-
|
90
|
-
|
91
|
-
cars_v2.aliases #=> [<SolrCloud::Alias "cars" (alias of "cars_v2")>, <SolrCloud::Alias "old_cars" (alias of "cars_v2")>]
|
191
|
+
cars.collection #=> <SolrCloud::Collection 'cars_v1' (aliased by 'cars')>
|
192
|
+
cars_v1.collection #=> <SolrCloud::Collection 'cars_v1' (aliased by 'cars')>
|
92
193
|
|
93
|
-
#
|
94
|
-
cars.switch_collection_to cars_v3
|
194
|
+
# Configsets, Aliases, and Collections know how they're related
|
95
195
|
|
96
|
-
|
97
|
-
|
196
|
+
cars_v1.aliases #=> [<SolrCloud::Alias 'cars' (alias of 'cars_v1')>]
|
197
|
+
cars = cars_v1.get_alias("cars") #=> <SolrCloud::Alias 'cars' (alias of 'cars_v1')>
|
198
|
+
cfg = cars.configset #=> <SolrCloud::Configset 'cars_cfg' at http://localhost:9090>
|
199
|
+
cfg.collections #=> [<SolrCloud::Collection 'cars_v1' (aliased by 'cars')>, <SolrCloud::Collection 'cars_v2'>]
|
98
200
|
|
99
|
-
# cars_v1 isn't doing anything for us anymore. Ditch it.
|
100
|
-
cars_v1.delete!
|
101
201
|
|
102
202
|
```
|
103
203
|
|
@@ -126,4 +226,5 @@ This repository is set up to run tests under docker.
|
|
126
226
|
|
127
227
|
## Contributing
|
128
228
|
|
129
|
-
|
229
|
+
Bugs, functionality suggestions, API suggestions, feature requests, etc. all welcom
|
230
|
+
on GitHub at https://github.com/mlibrary/solr_cloud-connection.
|
@@ -7,7 +7,6 @@ module SolrCloud
|
|
7
7
|
# A Collection provides basic services on the collection -- checking its health,
|
8
8
|
# creating or reporting aliases, and deleting itself.
|
9
9
|
class Collection
|
10
|
-
|
11
10
|
extend Forwardable
|
12
11
|
|
13
12
|
# Forward the HTTP verbs to the underlying connection
|
@@ -50,6 +49,19 @@ module SolrCloud
|
|
50
49
|
@sp = "/solr/#{name}"
|
51
50
|
end
|
52
51
|
|
52
|
+
def collection
|
53
|
+
self
|
54
|
+
end
|
55
|
+
|
56
|
+
def ==(other)
|
57
|
+
case other
|
58
|
+
when SolrCloud::Collection
|
59
|
+
self.collection.name == other.collection.name
|
60
|
+
else
|
61
|
+
false
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
53
65
|
# Delete this collection. Will no-op if the collection somehow doesn't still exist (because it was
|
54
66
|
# deleted via a different method, such as through the API)
|
55
67
|
# @return [Connection] The connection object used to create this collection object
|
@@ -74,6 +86,8 @@ module SolrCloud
|
|
74
86
|
false
|
75
87
|
end
|
76
88
|
|
89
|
+
alias_method :ping, :alive?
|
90
|
+
|
77
91
|
# Is this an alias?
|
78
92
|
# Putting this in here breaks all sorts of isolation principles,
|
79
93
|
# but being able to call #get_alias? on anything collection-like is
|
@@ -136,6 +150,13 @@ module SolrCloud
|
|
136
150
|
connection.create_alias(name: alias_name, collection_name: name, force: true)
|
137
151
|
end
|
138
152
|
|
153
|
+
def alias_as!(alias_name)
|
154
|
+
if connection.has_alias?(alias_name)
|
155
|
+
raise AliasAlreadyDefinedError.new("Alias #{alias_name} already points to #{connection.get_alias(alias_name).collection.name}")
|
156
|
+
end
|
157
|
+
alias_as(alias_name, force: false)
|
158
|
+
end
|
159
|
+
|
139
160
|
# Send a commit (soft if unspecified)
|
140
161
|
# @return self
|
141
162
|
def commit(hard: false)
|
data/lib/solr_cloud/configset.rb
CHANGED
data/lib/solr_cloud/errors.rb
CHANGED
data/readme.rb
ADDED
@@ -0,0 +1,168 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "pathname"
|
3
|
+
$LOAD_PATH.unshift Pathname.new(__dir__) + "lib"
|
4
|
+
require_relative "lib/solr_cloud/connection"
|
5
|
+
config_directory = "/Users/dueberb/devel/mlibrary/solr_cloud-connection/spec/data/simple_configuration/conf"
|
6
|
+
url = "http://localhost:9090"
|
7
|
+
user = "solr"
|
8
|
+
pass = "SolrRocks"
|
9
|
+
|
10
|
+
|
11
|
+
server = SolrCloud::Connection.new(url: url, user: user, password: pass) #=>
|
12
|
+
|
13
|
+
|
14
|
+
server.aliases.each {|a| a.delete!}
|
15
|
+
server.collections.each {|c| c.delete!}
|
16
|
+
server.configsets.reject {|c| c.name == "_default"}.each {|c| c.delete!}
|
17
|
+
|
18
|
+
# or bring your own Faraday object
|
19
|
+
# server2 = SolrCloud::Connection.new_with_faraday(faraday_connection)
|
20
|
+
|
21
|
+
### Get some basic info
|
22
|
+
|
23
|
+
server.version_string
|
24
|
+
server.cloud?
|
25
|
+
server.mode
|
26
|
+
|
27
|
+
### Configsets
|
28
|
+
|
29
|
+
# List the configsets
|
30
|
+
server.configsets
|
31
|
+
|
32
|
+
# Sometimes you just want the names.
|
33
|
+
server.configset_names
|
34
|
+
|
35
|
+
# Create a new configset by taking a conf directory, zipping it up,
|
36
|
+
# and sending it to solr
|
37
|
+
cset = server.create_configset(name: "horseless", confdir: config_directory)
|
38
|
+
server.configset_names
|
39
|
+
|
40
|
+
# That's a dumb name for a config set. Delete it and try again.
|
41
|
+
cset.delete!
|
42
|
+
cset = server.create_configset(name: "cars_cfg", confdir: config_directory)
|
43
|
+
server.configsets
|
44
|
+
|
45
|
+
# Can't be overwritten by accident
|
46
|
+
begin
|
47
|
+
server.create_configset(name: "cars_cfg", confdir: config_directory)
|
48
|
+
rescue => e
|
49
|
+
end
|
50
|
+
|
51
|
+
# But you can force it
|
52
|
+
server.create_configset(name: "cars_cfg", confdir: config_directory, force: true)
|
53
|
+
|
54
|
+
cfg = server.get_configset("cars_cfg")
|
55
|
+
cfg.in_use?
|
56
|
+
|
57
|
+
#### Collections
|
58
|
+
|
59
|
+
# Now create a collection based on an already-existing configset
|
60
|
+
cars_v1 = server.create_collection(name: "cars_v1", configset: "cars_cfg")
|
61
|
+
server.collections
|
62
|
+
server.collection_names
|
63
|
+
|
64
|
+
# Check it out quick
|
65
|
+
cars_v1.alive?
|
66
|
+
cars_v1.healthy?
|
67
|
+
cars_v1.count
|
68
|
+
|
69
|
+
# Any aliases
|
70
|
+
cars_v1.aliased?
|
71
|
+
cars_v1.aliases
|
72
|
+
|
73
|
+
# Its configset
|
74
|
+
cars_v1.configset
|
75
|
+
|
76
|
+
# Commit anything that's been added
|
77
|
+
cars_v1.commit
|
78
|
+
|
79
|
+
# Solr knows its configset is in use, and won't delete it
|
80
|
+
|
81
|
+
begin
|
82
|
+
cfg.delete!
|
83
|
+
rescue
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
##### Aliases
|
89
|
+
|
90
|
+
# We'll want to alias it so we can just use 'cars'
|
91
|
+
cars = cars_v1.alias_as("cars")
|
92
|
+
cars_v1.alias?
|
93
|
+
cars_v1.aliased?
|
94
|
+
|
95
|
+
cars_v1.has_alias?("cars")
|
96
|
+
cars_v1.alias_as("autos")
|
97
|
+
cars_v1.aliases
|
98
|
+
|
99
|
+
cars_v1.get_alias("autos").delete!
|
100
|
+
cars_v1.aliases
|
101
|
+
|
102
|
+
# There's syntactic sugar for switching out aliases
|
103
|
+
cars_v2 = server.create_collection(name: "cars_v2", configset: "cars_cfg")
|
104
|
+
cars = server.get_alias("cars")
|
105
|
+
|
106
|
+
cars.collection
|
107
|
+
cars.switch_collection_to("cars_v2")
|
108
|
+
cars.collection
|
109
|
+
cars_v1.aliases
|
110
|
+
cars_v2.aliases
|
111
|
+
|
112
|
+
# Aliases will swap from collection to collection without warning
|
113
|
+
cars_v1.alias_as("cars")
|
114
|
+
|
115
|
+
# ...unless you use the bang(!) version
|
116
|
+
begin
|
117
|
+
cars_v2.alias_as!("cars")
|
118
|
+
rescue
|
119
|
+
end
|
120
|
+
|
121
|
+
# You can also just switch it from the alias itself.
|
122
|
+
cars.switch_collection_to("cars_v1")
|
123
|
+
|
124
|
+
# Aliases show up as "collections" so you can just use them interchangeably
|
125
|
+
server.collection_names
|
126
|
+
|
127
|
+
# They even == to each other
|
128
|
+
cars
|
129
|
+
cars == cars_v1
|
130
|
+
cars == cars_v2
|
131
|
+
|
132
|
+
# But sometimes you want to differentiate them from each other
|
133
|
+
server.only_collection_names
|
134
|
+
cars.alias?
|
135
|
+
cars_v1.alias?
|
136
|
+
|
137
|
+
cars.collection
|
138
|
+
|
139
|
+
### Ways to get access to aliases/collections/configsets
|
140
|
+
|
141
|
+
# You can grab existing collections/aliases/configsets from the server
|
142
|
+
# as well as when they're returned by a create_* statement
|
143
|
+
cv1 = server.get_collection("cars_v1")
|
144
|
+
cars = server.get_collection("cars")
|
145
|
+
|
146
|
+
# get_*! methods raise an error
|
147
|
+
typo = "cars_V1"
|
148
|
+
server.has_collection?(typo)
|
149
|
+
dne = server.get_collection(typo)
|
150
|
+
|
151
|
+
begin
|
152
|
+
dne = server.get_collection!(typo)
|
153
|
+
rescue
|
154
|
+
end
|
155
|
+
|
156
|
+
# alias#collection returns the underlying collection.
|
157
|
+
# collection#collection returns itself. This makes it easier to
|
158
|
+
# write code without differentiating between them.
|
159
|
+
|
160
|
+
cars.collection
|
161
|
+
cars_v1.collection
|
162
|
+
|
163
|
+
# Configsets, Aliases, and Collections know how they're related
|
164
|
+
|
165
|
+
cars_v1.aliases
|
166
|
+
cars = cars_v1.get_alias("cars")
|
167
|
+
cfg = cars.configset
|
168
|
+
cfg.collections
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solr_cloud-connection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bill Dueber
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: httpx
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: '1.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: 1.
|
40
|
+
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubyzip
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.
|
47
|
+
version: '2.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.
|
54
|
+
version: '2.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- lib/solr_cloud/connection/configset_admin.rb
|
149
149
|
- lib/solr_cloud/connection/version.rb
|
150
150
|
- lib/solr_cloud/errors.rb
|
151
|
+
- readme.rb
|
151
152
|
homepage: https://github.com/mlibrary/solr_cloud-connection
|
152
153
|
licenses: []
|
153
154
|
metadata:
|