algoliasearch 1.2.5 → 1.2.7
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 +7 -7
- data/.travis.yml +1 -0
- data/ChangeLog +11 -0
- data/Gemfile +1 -1
- data/README.md +2 -0
- data/algoliasearch.gemspec +2 -2
- data/lib/algolia/client.rb +22 -3
- data/lib/algolia/index.rb +1 -1
- data/lib/algolia/protocol.rb +6 -3
- data/lib/algolia/version.rb +1 -1
- data/spec/client_spec.rb +54 -24
- data/spec/spec_helper.rb +1 -1
- metadata +60 -80
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
|
4
|
-
|
5
|
-
SHA512:
|
6
|
-
|
7
|
-
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
data.tar.gz: 9ba635d167f32504ae01cdc6b161bc4af3826321
|
4
|
+
metadata.gz: 779df79fb8ac29c41faa695e8047406997981941
|
5
|
+
SHA512:
|
6
|
+
data.tar.gz: 4af3b2853e4efaa6c2c07b8bad88a257d6e1d138a32e9b97c98f261b0d53d1db9451af9e181bd05af4c8505d8a0a96a3254a042196938ef1f1971ea58bf28531
|
7
|
+
metadata.gz: 15393678441127859332d19835a3a05ac5cebb35fa567c9c9c8325f40818d021bee9fddae90fb924f98b5f80cb78c91e5e8c2f51ce2fa41521d4e3a3d4a7fb8c
|
data/.travis.yml
CHANGED
data/ChangeLog
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
|
3
|
+
2014-03-24 1.2.7
|
4
|
+
|
5
|
+
* Ruby 1.8 compatibility
|
6
|
+
|
7
|
+
2014-03-19 1.2.6
|
8
|
+
|
9
|
+
* Raise an exception if no APPLICATION_ID is provided
|
10
|
+
* Ability to get last API call errors
|
11
|
+
* Ability to send multiple queries using a single API call
|
12
|
+
* Secured API keys generation is now based on secured HMAC-SHA256
|
13
|
+
|
3
14
|
2014-02-24 1.2.5
|
4
15
|
|
5
16
|
* Ability to generate secured API key from a list of tags + optional user_token
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -628,6 +628,8 @@ You can retrieve the logs of your last 1000 API calls and browse them using the
|
|
628
628
|
puts Algolia.get_logs.to_json
|
629
629
|
# Get last 100 log entries
|
630
630
|
puts Algolia.get_logs(0, 100).to_json
|
631
|
+
# Get last 100 errors
|
632
|
+
puts Algolia.get_logs(0, 100, true).to_json
|
631
633
|
```
|
632
634
|
|
633
635
|
Mock
|
data/algoliasearch.gemspec
CHANGED
@@ -6,12 +6,12 @@
|
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "algoliasearch"
|
9
|
-
s.version = "1.2.
|
9
|
+
s.version = "1.2.7"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Algolia"]
|
14
|
-
s.date = "2014-
|
14
|
+
s.date = "2014-03-24"
|
15
15
|
s.description = "A simple Ruby client for the algolia.com REST API"
|
16
16
|
s.email = "contact@algolia.com"
|
17
17
|
s.extra_rdoc_files = [
|
data/lib/algolia/client.rb
CHANGED
@@ -3,6 +3,7 @@ require 'algolia/error'
|
|
3
3
|
require 'algolia/version'
|
4
4
|
require 'json'
|
5
5
|
require 'zlib'
|
6
|
+
require 'openssl'
|
6
7
|
|
7
8
|
module Algolia
|
8
9
|
|
@@ -111,6 +112,8 @@ module Algolia
|
|
111
112
|
defaulted = { :application_id => application_id, :api_key => api_key }
|
112
113
|
defaulted.merge!(options)
|
113
114
|
|
115
|
+
raise ArgumentError.new("No APPLICATION_ID provided, please set :application_id") if defaulted[:application_id].nil?
|
116
|
+
|
114
117
|
@@client = Client.new(defaulted)
|
115
118
|
end
|
116
119
|
|
@@ -161,7 +164,23 @@ module Algolia
|
|
161
164
|
tag_filters = tag_filters.map { |t| t.is_a?(Array) ? "(#{t.join(',')})" : t }.join(',')
|
162
165
|
end
|
163
166
|
raise ArgumentError.new('Attribute "tag_filters" must be a list of tags') if !tag_filters.is_a?(String)
|
164
|
-
Digest::
|
167
|
+
OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha256'), private_api_key, "#{tag_filters}#{user_token.to_s}")
|
168
|
+
end
|
169
|
+
|
170
|
+
#
|
171
|
+
# This method allows to query multiple indexes with one API call
|
172
|
+
#
|
173
|
+
# @param queries the array of hash representing the query and associated index name
|
174
|
+
# @param index_name_key the name of the key used to fetch the index_name (:index_name by default)
|
175
|
+
#
|
176
|
+
def Algolia.multiple_queries(queries, index_name_key = :index_name)
|
177
|
+
requests = {
|
178
|
+
:requests => queries.map do |query|
|
179
|
+
indexName = query.delete(index_name_key) || query.delete(index_name_key.to_s)
|
180
|
+
{ :indexName => indexName, :params => Protocol.to_query(query) }
|
181
|
+
end
|
182
|
+
}
|
183
|
+
Algolia.client.post(Protocol.multiple_queries_uri, requests.to_json)
|
165
184
|
end
|
166
185
|
|
167
186
|
#
|
@@ -200,8 +219,8 @@ module Algolia
|
|
200
219
|
# @param offset Specify the first entry to retrieve (0-based, 0 is the most recent log entry).
|
201
220
|
# @param length Specify the maximum number of entries to retrieve starting at offset. Maximum allowed value: 1000.
|
202
221
|
#
|
203
|
-
def Algolia.get_logs(offset = 0, length = 10)
|
204
|
-
Algolia.client.get(Protocol.logs(offset, length))
|
222
|
+
def Algolia.get_logs(offset = 0, length = 10, only_errors = false)
|
223
|
+
Algolia.client.get(Protocol.logs(offset, length, only_errors))
|
205
224
|
end
|
206
225
|
|
207
226
|
# List all existing user keys with their associated ACLs
|
data/lib/algolia/index.rb
CHANGED
@@ -277,7 +277,7 @@ module Algolia
|
|
277
277
|
#
|
278
278
|
def delete_objects(objs)
|
279
279
|
check_array objs
|
280
|
-
batch build_batch('deleteObject', objs.map { |objectID| { objectID
|
280
|
+
batch build_batch('deleteObject', objs.map { |objectID| { :objectID => objectID } }, false)
|
281
281
|
end
|
282
282
|
|
283
283
|
#
|
data/lib/algolia/protocol.rb
CHANGED
@@ -38,6 +38,10 @@ module Algolia
|
|
38
38
|
"/#{VERSION}/indexes"
|
39
39
|
end
|
40
40
|
|
41
|
+
def Protocol.multiple_queries_uri
|
42
|
+
"/#{VERSION}/indexes/*/queries"
|
43
|
+
end
|
44
|
+
|
41
45
|
# Construct a uri referencing a given Algolia index
|
42
46
|
def Protocol.index_uri(index)
|
43
47
|
"/#{VERSION}/indexes/#{CGI.escape(index)}"
|
@@ -82,8 +86,8 @@ module Algolia
|
|
82
86
|
"#{index_uri(index)}/clear"
|
83
87
|
end
|
84
88
|
|
85
|
-
def Protocol.logs(offset, length)
|
86
|
-
"/#{VERSION}/logs?offset=#{offset}&length=#{length}"
|
89
|
+
def Protocol.logs(offset, length, only_errors = false)
|
90
|
+
"/#{VERSION}/logs?offset=#{offset}&length=#{length}&onlyErrors=#{only_errors}"
|
87
91
|
end
|
88
92
|
|
89
93
|
def Protocol.keys_uri
|
@@ -102,7 +106,6 @@ module Algolia
|
|
102
106
|
"#{index_uri(index)}/keys"
|
103
107
|
end
|
104
108
|
|
105
|
-
private
|
106
109
|
def Protocol.to_query(params)
|
107
110
|
params.map do |k, v|
|
108
111
|
"#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
|
data/lib/algolia/version.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -8,7 +8,7 @@ def safe_index_name(name)
|
|
8
8
|
"#{name}_travis-#{id}"
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
11
|
+
def is_include(array, attr, value)
|
12
12
|
array.each do |elt|
|
13
13
|
if elt[attr] == value
|
14
14
|
return true
|
@@ -81,11 +81,11 @@ describe 'Client' do
|
|
81
81
|
expect { @index.add_objects!([ [ {:name => "test"} ] ]) }.to raise_error(ArgumentError)
|
82
82
|
expect { @index.save_object(1) }.to raise_error(ArgumentError)
|
83
83
|
expect { @index.save_object("test") }.to raise_error(ArgumentError)
|
84
|
-
expect { @index.save_object({ objectID
|
84
|
+
expect { @index.save_object({ :objectID => 42 }.to_json) }.to raise_error(ArgumentError)
|
85
85
|
expect { @index.save_objects([{}, ""]) }.to raise_error(ArgumentError)
|
86
86
|
expect { @index.save_objects([1]) }.to raise_error(ArgumentError)
|
87
87
|
expect { @index.save_objects!([1]) }.to raise_error(ArgumentError)
|
88
|
-
expect { @index.save_object({ foo
|
88
|
+
expect { @index.save_object({ :foo => 42 }) }.to raise_error(ArgumentError) # missing objectID
|
89
89
|
end
|
90
90
|
|
91
91
|
it "should be thread safe" do
|
@@ -130,10 +130,10 @@ describe 'Client' do
|
|
130
130
|
# friends_2 does not exist
|
131
131
|
end
|
132
132
|
res = Algolia.list_indexes
|
133
|
-
|
133
|
+
is_include(res['items'], 'name', safe_index_name('àlgol?a')).should eq(false)
|
134
134
|
index.add_object!({ :name => "Robert" })
|
135
135
|
resAfter = Algolia.list_indexes;
|
136
|
-
|
136
|
+
is_include(resAfter['items'], 'name', safe_index_name('àlgol?a')).should eq(true)
|
137
137
|
end
|
138
138
|
|
139
139
|
it "should get a object" do
|
@@ -214,14 +214,20 @@ describe 'Client' do
|
|
214
214
|
end
|
215
215
|
|
216
216
|
it "should get logs" do
|
217
|
-
host = Algolia.client.send(:thread_local_hosts).first
|
218
|
-
puts host[:session].get(host[:base_url] + Algolia::Protocol.logs(0, 10), { :header => Algolia.client.headers }).content
|
219
|
-
|
220
217
|
res = Algolia.get_logs
|
221
218
|
|
222
219
|
res['logs'].size.should > 0
|
223
220
|
end
|
224
221
|
|
222
|
+
it "should search on multipleIndex" do
|
223
|
+
@index.add_object!({ :name => "John Doe", :email => "john@doe.org" }, "1")
|
224
|
+
res = Algolia.multiple_queries([{:index_name => safe_index_name("àlgol?a"), "query" => ""}])
|
225
|
+
res["results"][0]["hits"].length.should eq(1)
|
226
|
+
|
227
|
+
res = Algolia.multiple_queries([{"indexName" => safe_index_name("àlgol?a"), "query" => ""}], "indexName")
|
228
|
+
res["results"][0]["hits"].length.should eq(1)
|
229
|
+
end
|
230
|
+
|
225
231
|
it "shoud accept custom batch" do
|
226
232
|
@index.clear_index! rescue "Not fatal"
|
227
233
|
request = { "requests" => [
|
@@ -259,31 +265,31 @@ describe 'Client' do
|
|
259
265
|
@index.add_object!({ :name => "P4", :_tags => "t3" })
|
260
266
|
@index.add_object!({ :name => "P5", :_tags => ["t3", "t4"] })
|
261
267
|
|
262
|
-
@index.search("", { tagFilters
|
263
|
-
@index.search("", { tagFilters
|
264
|
-
@index.search("", { tagFilters
|
265
|
-
@index.search("", { tagFilters
|
268
|
+
@index.search("", { :tagFilters => ["t1"] })['hits'].length.should eq(2) # t1
|
269
|
+
@index.search("", { :tagFilters => ["t1", "t2"] })['hits'].length.should eq(0) # t1 AND t2
|
270
|
+
@index.search("", { :tagFilters => ["t3", "t4"] })['hits'].length.should eq(1) # t3 AND t4
|
271
|
+
@index.search("", { :tagFilters => [["t1", "t2"]] })['hits'].length.should eq(3) # t1 OR t2
|
266
272
|
end
|
267
273
|
|
268
274
|
it "should be facetable" do
|
269
275
|
@index.clear!
|
270
|
-
@index.set_settings( { attributesForFacetting
|
276
|
+
@index.set_settings( { :attributesForFacetting => ["f", "g"] })
|
271
277
|
@index.add_object!({ :name => "P1", :f => "f1", :g => "g1" })
|
272
278
|
@index.add_object!({ :name => "P2", :f => "f1", :g => "g2" })
|
273
279
|
@index.add_object!({ :name => "P3", :f => "f2", :g => "g2" })
|
274
280
|
@index.add_object!({ :name => "P4", :f => "f3", :g => "g2" })
|
275
281
|
|
276
|
-
res = @index.search("", { facets
|
282
|
+
res = @index.search("", { :facets => "f" })
|
277
283
|
res['facets']['f']['f1'].should eq(2)
|
278
284
|
res['facets']['f']['f2'].should eq(1)
|
279
285
|
res['facets']['f']['f3'].should eq(1)
|
280
286
|
|
281
|
-
res = @index.search("", { facets
|
287
|
+
res = @index.search("", { :facets => "f", :facetFilters => ["f:f1"] })
|
282
288
|
res['facets']['f']['f1'].should eq(2)
|
283
289
|
res['facets']['f']['f2'].should be_nil
|
284
290
|
res['facets']['f']['f3'].should be_nil
|
285
291
|
|
286
|
-
res = @index.search("", { facets
|
292
|
+
res = @index.search("", { :facets => "f", :facetFilters => ["f:f1", "g:g2"] })
|
287
293
|
res['facets']['f']['f1'].should eq(1)
|
288
294
|
res['facets']['f']['f2'].should be_nil
|
289
295
|
res['facets']['f']['f3'].should be_nil
|
@@ -294,26 +300,28 @@ describe 'Client' do
|
|
294
300
|
newIndexKey = @index.add_user_key(['search'])
|
295
301
|
newIndexKey['key'].should_not eq("")
|
296
302
|
resIndexAfter = @index.list_user_keys
|
297
|
-
resIndex['keys']
|
303
|
+
is_include(resIndex['keys'], 'value', newIndexKey['key']).should eq(false)
|
304
|
+
is_include(resIndexAfter['keys'], 'value', newIndexKey['key']).should eq(true)
|
298
305
|
indexKey = @index.get_user_key(newIndexKey['key'])
|
299
306
|
indexKey['acl'][0].should eq('search')
|
300
307
|
@index.delete_user_key(newIndexKey['key'])
|
301
308
|
sleep 1 # Dirty but temporary
|
302
309
|
resIndexEnd = @index.list_user_keys
|
303
|
-
|
310
|
+
is_include(resIndexEnd['keys'], 'value', newIndexKey['key']).should eq(false)
|
304
311
|
|
305
312
|
|
306
313
|
res = Algolia.list_user_keys
|
307
314
|
newKey = Algolia.add_user_key(['search'])
|
308
315
|
newKey['key'].should_not eq("")
|
309
316
|
resAfter = Algolia.list_user_keys
|
310
|
-
res['keys']
|
317
|
+
is_include(res['keys'], 'value', newKey['key']).should eq(false)
|
318
|
+
is_include(resAfter['keys'], 'value', newKey['key']).should eq(true)
|
311
319
|
key = Algolia.get_user_key(newKey['key'])
|
312
320
|
key['acl'][0].should eq('search')
|
313
321
|
Algolia.delete_user_key(newKey['key'])
|
314
322
|
sleep 1 # Dirty but temporary
|
315
323
|
resEnd = Algolia.list_user_keys
|
316
|
-
|
324
|
+
is_include(resEnd['keys'], 'value', newKey['key']).should eq(false)
|
317
325
|
|
318
326
|
|
319
327
|
end
|
@@ -567,12 +575,34 @@ describe 'Client' do
|
|
567
575
|
|
568
576
|
it 'should generate secured api keys' do
|
569
577
|
key = Algolia.generate_secured_api_key('my_api_key', '(public,user1)')
|
570
|
-
key.should eq(Digest::
|
578
|
+
key.should eq(OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha256'), 'my_api_key', '(public,user1)'))
|
571
579
|
key = Algolia.generate_secured_api_key('my_api_key', '(public,user1)', 42)
|
572
|
-
key.should eq(Digest::
|
580
|
+
key.should eq(OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha256'), 'my_api_key', '(public,user1)42'))
|
573
581
|
key = Algolia.generate_secured_api_key('my_api_key', ['public'])
|
574
|
-
key.should eq(Digest::
|
582
|
+
key.should eq(OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha256'), 'my_api_key', 'public'))
|
575
583
|
key = Algolia.generate_secured_api_key('my_api_key', ['public', ['premium','vip']])
|
576
|
-
key.should eq(Digest::
|
584
|
+
key.should eq(OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha256'), 'my_api_key', 'public,(premium,vip)'))
|
585
|
+
end
|
586
|
+
|
587
|
+
it 'Check attributes multipleQueries' do
|
588
|
+
res = Algolia.multiple_queries([{:index_name => safe_index_name("àlgol?a"), "query" => ""}])
|
589
|
+
res.should have_key('results')
|
590
|
+
res['results'].should be_a(Array)
|
591
|
+
res['results'][0].should have_key('hits')
|
592
|
+
res['results'][0]['hits'].should be_a(Array)
|
593
|
+
res['results'][0].should have_key('page')
|
594
|
+
res['results'][0]['page'].should be_a(Integer)
|
595
|
+
res['results'][0].should have_key('nbHits')
|
596
|
+
res['results'][0]['nbHits'].should be_a(Integer)
|
597
|
+
res['results'][0].should have_key('nbPages')
|
598
|
+
res['results'][0]['nbPages'].should be_a(Integer)
|
599
|
+
res['results'][0].should have_key('hitsPerPage')
|
600
|
+
res['results'][0]['hitsPerPage'].should be_a(Integer)
|
601
|
+
res['results'][0].should have_key('processingTimeMS')
|
602
|
+
res['results'][0]['processingTimeMS'].should be_a(Integer)
|
603
|
+
res['results'][0].should have_key('query')
|
604
|
+
res['results'][0]['query'].should be_a(String)
|
605
|
+
res['results'][0].should have_key('params')
|
606
|
+
res['results'][0]['params'].should be_a(String)
|
577
607
|
end
|
578
608
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,94 +1,74 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: algoliasearch
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.7
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Algolia
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
|
12
|
+
date: 2014-03-24 00:00:00 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
14
15
|
name: httpclient
|
15
|
-
version_requirements: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ~>
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.3'
|
20
|
-
requirement: !ruby/object:Gem::Requirement
|
21
|
-
requirements:
|
22
|
-
- - ~>
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: '2.3'
|
25
16
|
prerelease: false
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: "2.3"
|
26
22
|
type: :runtime
|
27
|
-
|
23
|
+
version_requirements: *id001
|
24
|
+
- !ruby/object:Gem::Dependency
|
28
25
|
name: json
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.5.1
|
34
|
-
requirement: !ruby/object:Gem::Requirement
|
35
|
-
requirements:
|
36
|
-
- - '>='
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: 1.5.1
|
39
26
|
prerelease: false
|
27
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 1.5.1
|
40
32
|
type: :runtime
|
41
|
-
|
33
|
+
version_requirements: *id002
|
34
|
+
- !ruby/object:Gem::Dependency
|
42
35
|
name: travis
|
43
|
-
version_requirements: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
requirements:
|
50
|
-
- - '>='
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: '0'
|
53
36
|
prerelease: false
|
37
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- &id004
|
40
|
+
- ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: "0"
|
54
43
|
type: :development
|
55
|
-
|
44
|
+
version_requirements: *id003
|
45
|
+
- !ruby/object:Gem::Dependency
|
56
46
|
name: rake
|
57
|
-
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
requirement: !ruby/object:Gem::Requirement
|
63
|
-
requirements:
|
64
|
-
- - '>='
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '0'
|
67
47
|
prerelease: false
|
48
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- *id004
|
68
51
|
type: :development
|
69
|
-
|
52
|
+
version_requirements: *id005
|
53
|
+
- !ruby/object:Gem::Dependency
|
70
54
|
name: rdoc
|
71
|
-
version_requirements: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
requirement: !ruby/object:Gem::Requirement
|
77
|
-
requirements:
|
78
|
-
- - '>='
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: '0'
|
81
55
|
prerelease: false
|
56
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- *id004
|
82
59
|
type: :development
|
60
|
+
version_requirements: *id006
|
83
61
|
description: A simple Ruby client for the algolia.com REST API
|
84
62
|
email: contact@algolia.com
|
85
63
|
executables: []
|
64
|
+
|
86
65
|
extensions: []
|
87
|
-
|
66
|
+
|
67
|
+
extra_rdoc_files:
|
88
68
|
- ChangeLog
|
89
69
|
- LICENSE.txt
|
90
70
|
- README.md
|
91
|
-
files:
|
71
|
+
files:
|
92
72
|
- .rspec
|
93
73
|
- .travis.yml
|
94
74
|
- ChangeLog
|
@@ -112,27 +92,27 @@ files:
|
|
112
92
|
- spec/spec_helper.rb
|
113
93
|
- spec/stub_spec.rb
|
114
94
|
homepage: http://github.com/algolia/algoliasearch-client-ruby
|
115
|
-
licenses:
|
95
|
+
licenses:
|
116
96
|
- MIT
|
117
97
|
metadata: {}
|
118
|
-
|
98
|
+
|
99
|
+
post_install_message:
|
119
100
|
rdoc_options: []
|
120
|
-
|
101
|
+
|
102
|
+
require_paths:
|
121
103
|
- lib
|
122
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
123
|
-
requirements:
|
124
|
-
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
requirements:
|
129
|
-
- - '>='
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
104
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- *id004
|
107
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- *id004
|
132
110
|
requirements: []
|
133
|
-
|
134
|
-
|
135
|
-
|
111
|
+
|
112
|
+
rubyforge_project:
|
113
|
+
rubygems_version: 2.0.14
|
114
|
+
signing_key:
|
136
115
|
specification_version: 4
|
137
116
|
summary: A simple Ruby client for the algolia.com REST API
|
138
117
|
test_files: []
|
118
|
+
|