typesense 0.1.0 → 0.5.1
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/.circleci/config.yml +4 -2
- data/.gitignore +2 -0
- data/.rubocop.yml +7 -0
- data/.rubocop_todo.yml +36 -27
- data/LICENSE +198 -10
- data/README.md +10 -2
- data/codecov.yml +10 -0
- data/examples/aliases.rb +58 -0
- data/examples/client_initialization.rb +67 -0
- data/examples/collections_and_documents.rb +45 -68
- data/examples/keys.rb +127 -0
- data/examples/overrides.rb +108 -0
- data/examples/search.rb +26 -53
- data/lib/typesense.rb +7 -0
- data/lib/typesense/alias.rb +24 -0
- data/lib/typesense/aliases.rb +30 -0
- data/lib/typesense/api_call.rb +186 -69
- data/lib/typesense/client.rb +10 -3
- data/lib/typesense/collection.rb +8 -6
- data/lib/typesense/collections.rb +6 -6
- data/lib/typesense/configuration.rb +35 -19
- data/lib/typesense/debug.rb +3 -3
- data/lib/typesense/document.rb +4 -4
- data/lib/typesense/documents.rb +11 -6
- data/lib/typesense/error.rb +6 -0
- data/lib/typesense/health.rb +15 -0
- data/lib/typesense/key.rb +24 -0
- data/lib/typesense/keys.rb +34 -0
- data/lib/typesense/override.rb +25 -0
- data/lib/typesense/overrides.rb +31 -0
- data/lib/typesense/version.rb +1 -1
- data/typesense.gemspec +15 -12
- metadata +79 -26
data/lib/typesense/client.rb
CHANGED
@@ -4,12 +4,19 @@ module Typesense
|
|
4
4
|
class Client
|
5
5
|
attr_reader :configuration
|
6
6
|
attr_reader :collections
|
7
|
+
attr_reader :aliases
|
8
|
+
attr_reader :keys
|
7
9
|
attr_reader :debug
|
10
|
+
attr_reader :health
|
8
11
|
|
9
12
|
def initialize(options = {})
|
10
|
-
@configuration
|
11
|
-
@
|
12
|
-
@
|
13
|
+
@configuration = Configuration.new(options)
|
14
|
+
@api_call = ApiCall.new(@configuration)
|
15
|
+
@collections = Collections.new(@api_call)
|
16
|
+
@aliases = Aliases.new(@api_call)
|
17
|
+
@keys = Keys.new(@api_call)
|
18
|
+
@debug = Debug.new(@api_call)
|
19
|
+
@health = Health.new(@api_call)
|
13
20
|
end
|
14
21
|
end
|
15
22
|
end
|
data/lib/typesense/collection.rb
CHANGED
@@ -3,19 +3,21 @@
|
|
3
3
|
module Typesense
|
4
4
|
class Collection
|
5
5
|
attr_reader :documents
|
6
|
+
attr_reader :overrides
|
6
7
|
|
7
|
-
def initialize(
|
8
|
-
@
|
9
|
-
@
|
10
|
-
@documents
|
8
|
+
def initialize(name, api_call)
|
9
|
+
@name = name
|
10
|
+
@api_call = api_call
|
11
|
+
@documents = Documents.new(@name, @api_call)
|
12
|
+
@overrides = Overrides.new(@name, @api_call)
|
11
13
|
end
|
12
14
|
|
13
15
|
def retrieve
|
14
|
-
|
16
|
+
@api_call.get(endpoint_path)
|
15
17
|
end
|
16
18
|
|
17
19
|
def delete
|
18
|
-
|
20
|
+
@api_call.delete(endpoint_path)
|
19
21
|
end
|
20
22
|
|
21
23
|
private
|
@@ -4,21 +4,21 @@ module Typesense
|
|
4
4
|
class Collections
|
5
5
|
RESOURCE_PATH = '/collections'
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@
|
9
|
-
@collections
|
7
|
+
def initialize(api_call)
|
8
|
+
@api_call = api_call
|
9
|
+
@collections = {}
|
10
10
|
end
|
11
11
|
|
12
12
|
def create(schema)
|
13
|
-
|
13
|
+
@api_call.post(RESOURCE_PATH, schema)
|
14
14
|
end
|
15
15
|
|
16
16
|
def retrieve
|
17
|
-
|
17
|
+
@api_call.get(RESOURCE_PATH)
|
18
18
|
end
|
19
19
|
|
20
20
|
def [](collection_name)
|
21
|
-
@collections[collection_name] ||= Collection.new(
|
21
|
+
@collections[collection_name] ||= Collection.new(collection_name, @api_call)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -2,37 +2,53 @@
|
|
2
2
|
|
3
3
|
module Typesense
|
4
4
|
class Configuration
|
5
|
-
attr_accessor :
|
6
|
-
attr_accessor :
|
7
|
-
attr_accessor :
|
5
|
+
attr_accessor :nodes
|
6
|
+
attr_accessor :nearest_node
|
7
|
+
attr_accessor :connection_timeout_seconds
|
8
|
+
attr_accessor :healthcheck_interval_seconds
|
9
|
+
attr_accessor :num_retries
|
10
|
+
attr_accessor :retry_interval_seconds
|
11
|
+
attr_accessor :api_key
|
12
|
+
attr_accessor :logger
|
13
|
+
attr_accessor :log_level
|
8
14
|
|
9
15
|
def initialize(options = {})
|
10
|
-
@
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
@
|
17
|
-
|
16
|
+
@nodes = options[:nodes] || []
|
17
|
+
@nearest_node = options[:nearest_node]
|
18
|
+
@connection_timeout_seconds = options[:connection_timeout_seconds] || options[:timeout_seconds] || 10
|
19
|
+
@healthcheck_interval_seconds = options[:healthcheck_interval_seconds] || 15
|
20
|
+
@num_retries = options[:num_retries] || @nodes.length + (@nearest_node.nil? ? 0 : 1) || 3
|
21
|
+
@retry_interval_seconds = options[:retry_interval_seconds] || 0.1
|
22
|
+
@api_key = options[:api_key]
|
23
|
+
|
24
|
+
@logger = options[:logger] || Logger.new(STDOUT)
|
25
|
+
@log_level = options[:log_level] || Logger::WARN
|
26
|
+
@logger.level = @log_level
|
27
|
+
|
28
|
+
show_deprecation_warnings(options)
|
29
|
+
validate!
|
18
30
|
end
|
19
31
|
|
20
32
|
def validate!
|
21
|
-
if @
|
22
|
-
|
23
|
-
|
33
|
+
if @nodes.nil? ||
|
34
|
+
@nodes.empty? ||
|
35
|
+
@nodes.any? { |node| node_missing_parameters?(node) }
|
36
|
+
raise Error::MissingConfiguration, 'Missing required configuration. Ensure that nodes[][:protocol], nodes[][:host] and nodes[][:port] are set.'
|
24
37
|
end
|
25
38
|
|
26
|
-
if
|
27
|
-
@read_replica_nodes.any? { |node| node_missing_parameters?(node) }
|
28
|
-
raise Error::MissingConfiguration, 'Missing required configuration for read_replica_nodes. Ensure that read_replica_nodes[][:protocol], read_replica_nodes[][:host], read_replica_nodes[][:port] and read_replica_nodes[][:api_key] are set.'
|
29
|
-
end
|
39
|
+
raise Error::MissingConfiguration, 'Missing required configuration. Ensure that api_key is set.' if @api_key.nil?
|
30
40
|
end
|
31
41
|
|
32
42
|
private
|
33
43
|
|
34
44
|
def node_missing_parameters?(node)
|
35
|
-
%i[protocol host port
|
45
|
+
%i[protocol host port].any? { |attr| node.send(:[], attr).nil? }
|
46
|
+
end
|
47
|
+
|
48
|
+
def show_deprecation_warnings(options)
|
49
|
+
@logger.warn 'Deprecation warning: timeout_seconds is now renamed to connection_timeout_seconds' unless options[:timeout_seconds].nil?
|
50
|
+
@logger.warn 'Deprecation warning: master_node is now consolidated to nodes, starting with Typesense Server v0.12' unless options[:master_node].nil?
|
51
|
+
@logger.warn 'Deprecation warning: read_replica_nodes is now consolidated to nodes, starting with Typesense Server v0.12' unless options[:read_replica_nodes].nil?
|
36
52
|
end
|
37
53
|
end
|
38
54
|
end
|
data/lib/typesense/debug.rb
CHANGED
@@ -4,12 +4,12 @@ module Typesense
|
|
4
4
|
class Debug
|
5
5
|
RESOURCE_PATH = '/debug'
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@
|
7
|
+
def initialize(api_call)
|
8
|
+
@api_call = api_call
|
9
9
|
end
|
10
10
|
|
11
11
|
def retrieve
|
12
|
-
|
12
|
+
@api_call.get(RESOURCE_PATH)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
data/lib/typesense/document.rb
CHANGED
@@ -2,18 +2,18 @@
|
|
2
2
|
|
3
3
|
module Typesense
|
4
4
|
class Document
|
5
|
-
def initialize(
|
6
|
-
@configuration = configuration
|
5
|
+
def initialize(collection_name, document_id, api_call)
|
7
6
|
@collection_name = collection_name
|
8
7
|
@document_id = document_id
|
8
|
+
@api_call = api_call
|
9
9
|
end
|
10
10
|
|
11
11
|
def retrieve
|
12
|
-
|
12
|
+
@api_call.get(endpoint_path)
|
13
13
|
end
|
14
14
|
|
15
15
|
def delete
|
16
|
-
|
16
|
+
@api_call.delete(endpoint_path)
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
data/lib/typesense/documents.rb
CHANGED
@@ -4,26 +4,31 @@ module Typesense
|
|
4
4
|
class Documents
|
5
5
|
RESOURCE_PATH = '/documents'
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@configuration = configuration
|
7
|
+
def initialize(collection_name, api_call)
|
9
8
|
@collection_name = collection_name
|
9
|
+
@api_call = api_call
|
10
10
|
@documents = {}
|
11
11
|
end
|
12
12
|
|
13
13
|
def create(document)
|
14
|
-
|
14
|
+
@api_call.post(endpoint_path, document)
|
15
|
+
end
|
16
|
+
|
17
|
+
def create_many(documents)
|
18
|
+
documents_in_jsonl_format = documents.map { |document| JSON.dump(document) }.join("\n")
|
19
|
+
@api_call.post(endpoint_path('import'), as_json: false, body: documents_in_jsonl_format)
|
15
20
|
end
|
16
21
|
|
17
22
|
def export
|
18
|
-
|
23
|
+
(@api_call.get(endpoint_path('export')) || '').split("\n")
|
19
24
|
end
|
20
25
|
|
21
26
|
def search(search_parameters)
|
22
|
-
|
27
|
+
@api_call.get(endpoint_path('search'), search_parameters)
|
23
28
|
end
|
24
29
|
|
25
30
|
def [](document_id)
|
26
|
-
@documents[document_id] ||= Document.new(@
|
31
|
+
@documents[document_id] ||= Document.new(@collection_name, document_id, @api_call)
|
27
32
|
end
|
28
33
|
|
29
34
|
private
|
data/lib/typesense/error.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Typesense
|
4
|
+
class Key
|
5
|
+
def initialize(id, api_call)
|
6
|
+
@id = id
|
7
|
+
@api_call = api_call
|
8
|
+
end
|
9
|
+
|
10
|
+
def retrieve
|
11
|
+
@api_call.get(endpoint_path)
|
12
|
+
end
|
13
|
+
|
14
|
+
def delete
|
15
|
+
@api_call.delete(endpoint_path)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def endpoint_path
|
21
|
+
"#{Keys::RESOURCE_PATH}/#{@id}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'base64'
|
4
|
+
|
5
|
+
module Typesense
|
6
|
+
class Keys
|
7
|
+
RESOURCE_PATH = '/keys'
|
8
|
+
|
9
|
+
def initialize(api_call)
|
10
|
+
@api_call = api_call
|
11
|
+
@keys = {}
|
12
|
+
end
|
13
|
+
|
14
|
+
def create(parameters)
|
15
|
+
@api_call.post(RESOURCE_PATH, parameters)
|
16
|
+
end
|
17
|
+
|
18
|
+
def retrieve
|
19
|
+
@api_call.get(RESOURCE_PATH)
|
20
|
+
end
|
21
|
+
|
22
|
+
def generate_scoped_search_key(search_key, parameters)
|
23
|
+
parameters_json = JSON.dump(parameters)
|
24
|
+
digest = Base64.encode64(OpenSSL::HMAC.digest('sha256', search_key, parameters_json)).gsub("\n", '')
|
25
|
+
key_prefix = search_key[0...4]
|
26
|
+
raw_scoped_key = "#{digest}#{key_prefix}#{parameters_json}"
|
27
|
+
Base64.encode64(raw_scoped_key).gsub("\n", '')
|
28
|
+
end
|
29
|
+
|
30
|
+
def [](id)
|
31
|
+
@keys[id] ||= Key.new(id, @api_call)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Typesense
|
4
|
+
class Override
|
5
|
+
def initialize(collection_name, override_id, api_call)
|
6
|
+
@collection_name = collection_name
|
7
|
+
@override_id = override_id
|
8
|
+
@api_call = api_call
|
9
|
+
end
|
10
|
+
|
11
|
+
def retrieve
|
12
|
+
@api_call.get(endpoint_path)
|
13
|
+
end
|
14
|
+
|
15
|
+
def delete
|
16
|
+
@api_call.delete(endpoint_path)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def endpoint_path
|
22
|
+
"#{Collections::RESOURCE_PATH}/#{@collection_name}#{Overrides::RESOURCE_PATH}/#{@override_id}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Typesense
|
4
|
+
class Overrides
|
5
|
+
RESOURCE_PATH = '/overrides'
|
6
|
+
|
7
|
+
def initialize(collection_name, api_call)
|
8
|
+
@collection_name = collection_name
|
9
|
+
@api_call = api_call
|
10
|
+
@overrides = {}
|
11
|
+
end
|
12
|
+
|
13
|
+
def create(params)
|
14
|
+
@api_call.put(endpoint_path, params)
|
15
|
+
end
|
16
|
+
|
17
|
+
def retrieve
|
18
|
+
@api_call.get(endpoint_path)
|
19
|
+
end
|
20
|
+
|
21
|
+
def [](override_id)
|
22
|
+
@overrides[override_id] ||= Override.new(@collection_name, override_id, @api_call)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def endpoint_path(operation = nil)
|
28
|
+
"#{Collections::RESOURCE_PATH}/#{@collection_name}#{Overrides::RESOURCE_PATH}#{operation.nil? ? '' : '/' + operation}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/typesense/version.rb
CHANGED
data/typesense.gemspec
CHANGED
@@ -7,12 +7,12 @@ require 'typesense/version'
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'typesense'
|
9
9
|
spec.version = Typesense::VERSION
|
10
|
-
spec.authors = ['
|
10
|
+
spec.authors = ['Typesense, Inc.']
|
11
11
|
spec.email = ['contact@typesense.org']
|
12
12
|
|
13
13
|
spec.summary = 'Ruby Library for Typesense'
|
14
14
|
spec.description = 'Typesense is an open source search engine for building a delightful search experience.'
|
15
|
-
spec.homepage = 'https://
|
15
|
+
spec.homepage = 'https://typesense.org'
|
16
16
|
spec.license = 'Apache-2.0'
|
17
17
|
|
18
18
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -23,15 +23,18 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
25
|
spec.add_development_dependency 'awesome_print', '~> 1.8'
|
26
|
-
spec.add_development_dependency 'bundler', '~>
|
27
|
-
spec.add_development_dependency '
|
28
|
-
spec.add_development_dependency '
|
29
|
-
spec.add_development_dependency '
|
30
|
-
spec.add_development_dependency '
|
31
|
-
spec.add_development_dependency '
|
32
|
-
spec.add_development_dependency '
|
33
|
-
spec.add_development_dependency '
|
34
|
-
spec.add_development_dependency '
|
26
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
27
|
+
spec.add_development_dependency 'codecov', '~> 0.1'
|
28
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
29
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
30
|
+
spec.add_development_dependency 'rspec', '~> 3.9'
|
31
|
+
spec.add_development_dependency 'rspec-legacy_formatters', '~> 1.0' # For codecov formatter
|
32
|
+
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
|
33
|
+
spec.add_development_dependency 'rubocop', '~> 0.83'
|
34
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 1.39'
|
35
|
+
spec.add_development_dependency 'simplecov', '~> 0.18'
|
36
|
+
spec.add_development_dependency 'timecop', '~> 0.9'
|
37
|
+
spec.add_development_dependency 'webmock', '~> 3.8'
|
35
38
|
|
36
|
-
spec.add_dependency 'httparty', '~> 0.
|
39
|
+
spec.add_dependency 'httparty', '~> 0.18'
|
37
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typesense
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Typesense, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
@@ -30,140 +30,182 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.0'
|
34
34
|
type: :development
|
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: '2.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: codecov
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.1'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.1'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: pry-byebug
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
61
|
+
version: '3.9'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: '3.
|
68
|
+
version: '3.9'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '13.0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '13.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '3.
|
89
|
+
version: '3.9'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '3.
|
96
|
+
version: '3.9'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec-legacy_formatters
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: rspec_junit_formatter
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
115
|
- - "~>"
|
88
116
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0.
|
117
|
+
version: '0.4'
|
90
118
|
type: :development
|
91
119
|
prerelease: false
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
93
121
|
requirements:
|
94
122
|
- - "~>"
|
95
123
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0.
|
124
|
+
version: '0.4'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
126
|
name: rubocop
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
129
|
- - "~>"
|
102
130
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
131
|
+
version: '0.83'
|
104
132
|
type: :development
|
105
133
|
prerelease: false
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
107
135
|
requirements:
|
108
136
|
- - "~>"
|
109
137
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
138
|
+
version: '0.83'
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
140
|
name: rubocop-rspec
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
143
|
- - "~>"
|
116
144
|
- !ruby/object:Gem::Version
|
117
|
-
version: '1.
|
145
|
+
version: '1.39'
|
118
146
|
type: :development
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
149
|
requirements:
|
122
150
|
- - "~>"
|
123
151
|
- !ruby/object:Gem::Version
|
124
|
-
version: '1.
|
152
|
+
version: '1.39'
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
name: simplecov
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
157
|
- - "~>"
|
130
158
|
- !ruby/object:Gem::Version
|
131
|
-
version: '0.
|
159
|
+
version: '0.18'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.18'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: timecop
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.9'
|
132
174
|
type: :development
|
133
175
|
prerelease: false
|
134
176
|
version_requirements: !ruby/object:Gem::Requirement
|
135
177
|
requirements:
|
136
178
|
- - "~>"
|
137
179
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0.
|
180
|
+
version: '0.9'
|
139
181
|
- !ruby/object:Gem::Dependency
|
140
182
|
name: webmock
|
141
183
|
requirement: !ruby/object:Gem::Requirement
|
142
184
|
requirements:
|
143
185
|
- - "~>"
|
144
186
|
- !ruby/object:Gem::Version
|
145
|
-
version: '3.
|
187
|
+
version: '3.8'
|
146
188
|
type: :development
|
147
189
|
prerelease: false
|
148
190
|
version_requirements: !ruby/object:Gem::Requirement
|
149
191
|
requirements:
|
150
192
|
- - "~>"
|
151
193
|
- !ruby/object:Gem::Version
|
152
|
-
version: '3.
|
194
|
+
version: '3.8'
|
153
195
|
- !ruby/object:Gem::Dependency
|
154
196
|
name: httparty
|
155
197
|
requirement: !ruby/object:Gem::Requirement
|
156
198
|
requirements:
|
157
199
|
- - "~>"
|
158
200
|
- !ruby/object:Gem::Version
|
159
|
-
version: '0.
|
201
|
+
version: '0.18'
|
160
202
|
type: :runtime
|
161
203
|
prerelease: false
|
162
204
|
version_requirements: !ruby/object:Gem::Requirement
|
163
205
|
requirements:
|
164
206
|
- - "~>"
|
165
207
|
- !ruby/object:Gem::Version
|
166
|
-
version: '0.
|
208
|
+
version: '0.18'
|
167
209
|
description: Typesense is an open source search engine for building a delightful search
|
168
210
|
experience.
|
169
211
|
email:
|
@@ -183,9 +225,16 @@ files:
|
|
183
225
|
- Rakefile
|
184
226
|
- bin/console
|
185
227
|
- bin/setup
|
228
|
+
- codecov.yml
|
229
|
+
- examples/aliases.rb
|
230
|
+
- examples/client_initialization.rb
|
186
231
|
- examples/collections_and_documents.rb
|
232
|
+
- examples/keys.rb
|
233
|
+
- examples/overrides.rb
|
187
234
|
- examples/search.rb
|
188
235
|
- lib/typesense.rb
|
236
|
+
- lib/typesense/alias.rb
|
237
|
+
- lib/typesense/aliases.rb
|
189
238
|
- lib/typesense/api_call.rb
|
190
239
|
- lib/typesense/client.rb
|
191
240
|
- lib/typesense/collection.rb
|
@@ -195,9 +244,14 @@ files:
|
|
195
244
|
- lib/typesense/document.rb
|
196
245
|
- lib/typesense/documents.rb
|
197
246
|
- lib/typesense/error.rb
|
247
|
+
- lib/typesense/health.rb
|
248
|
+
- lib/typesense/key.rb
|
249
|
+
- lib/typesense/keys.rb
|
250
|
+
- lib/typesense/override.rb
|
251
|
+
- lib/typesense/overrides.rb
|
198
252
|
- lib/typesense/version.rb
|
199
253
|
- typesense.gemspec
|
200
|
-
homepage: https://
|
254
|
+
homepage: https://typesense.org
|
201
255
|
licenses:
|
202
256
|
- Apache-2.0
|
203
257
|
metadata: {}
|
@@ -216,8 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
270
|
- !ruby/object:Gem::Version
|
217
271
|
version: '0'
|
218
272
|
requirements: []
|
219
|
-
|
220
|
-
rubygems_version: 2.7.6
|
273
|
+
rubygems_version: 3.0.6
|
221
274
|
signing_key:
|
222
275
|
specification_version: 4
|
223
276
|
summary: Ruby Library for Typesense
|