typesense 0.5.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54f0c8b4934c74669d91b10ed2a2fb6d9b3b54db1c72271eaef97062eec5475e
4
- data.tar.gz: 86aac1db6163de619c2aefc95c430dee2917f0db0c4f7d57921ae1ff2d78ab03
3
+ metadata.gz: 01637fffe88f9d21ae627407e69a06a8beb22e0989f1638b11cc38f0bb19f449
4
+ data.tar.gz: 9edee26c48191b1f49befe6b2d865b20a3efbb6e70bc78a31c15da83b93f8d3b
5
5
  SHA512:
6
- metadata.gz: 6ecef532b4f623d2acbf1c591e0843ee2cff2bf95c70014d2c00f4b723b9cc5201eabd73d3119c2bcd71167a76fec1a98a9d32bef0fa4d42af91be39cfafdde2
7
- data.tar.gz: 6d351095aa8ce2dca828f3f784d76f1f5bba65557e3afcedad3532a496200b59cb68481b3f7e903af26c82e95923bdbb04fe0367de7876e82287f057a933b305
6
+ metadata.gz: d42ae36979f4c7fcf72c53010e46a6fab5a97ab7dab81c11bbb40289175633db821c7f552578441c265078cac72f11735ee2a61d5f7c565c6e26e8a1c1ce8cf6
7
+ data.tar.gz: e80e0d6e7f921650729334097e19963279146a16bb16a9365c1020c6c94560e97e7693322fc318651769e846fdbf5daf447cedbf9120a5060b79d3582cde6eaa
@@ -1,34 +1,39 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
- require: rubocop-rspec
4
-
5
1
  AllCops:
6
- TargetRubyVersion: "2.4"
7
2
  NewCops: enable
8
3
 
9
- Metrics/BlockLength:
10
- Exclude:
11
- - 'spec/**/*'
12
- - 'Gemfile'
13
- - 'typesense.gemspec'
14
-
15
4
  Style/Documentation:
16
5
  Enabled: false
17
6
 
18
- RSpec/ExampleLength:
7
+ Metrics/AbcSize:
19
8
  Enabled: false
20
9
 
21
- Metrics/MethodLength:
10
+ Metrics/CyclomaticComplexity:
22
11
  Enabled: false
23
12
 
24
- Metrics/AbcSize:
13
+ Metrics/PerceivedComplexity:
25
14
  Enabled: false
26
15
 
27
16
  Metrics/ClassLength:
28
17
  Enabled: false
29
18
 
30
- Metrics/CyclomaticComplexity:
19
+ Metrics/ParameterLists:
31
20
  Enabled: false
32
21
 
33
- Metrics/PerceivedComplexity:
22
+ Metrics/MethodLength:
23
+ Enabled: false
24
+
25
+ Metrics/BlockLength:
34
26
  Enabled: false
27
+
28
+ Metrics/BlockNesting:
29
+ Enabled: false
30
+
31
+ Style/FrozenStringLiteralComment:
32
+ EnforcedStyle: always_true
33
+
34
+ Layout/LineLength:
35
+ Max: 300
36
+
37
+ Lint/SuppressedException:
38
+ Exclude:
39
+ - examples/**
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # A sample Guardfile
4
+ # More info at https://github.com/guard/guard#readme
5
+
6
+ ## Uncomment and set this to only include directories you want to watch
7
+ # directories %w(app lib config test spec features) \
8
+ # .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
9
+
10
+ ## Note: if you are using the `directories` clause above and you are not
11
+ ## watching the project directory ('.'), then you will want to move
12
+ ## the Guardfile to a watched dir and symlink it back, e.g.
13
+ #
14
+ # $ mkdir config
15
+ # $ mv Guardfile config/
16
+ # $ ln -s config/Guardfile .
17
+ #
18
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
19
+
20
+ guard :rubocop, cli: '-a' do
21
+ watch(/.+\.rb$/)
22
+ watch(%r{(?:.+/)?\.rubocop(?:_todo)?\.yml$}) { |m| File.dirname(m[0]) }
23
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative '../lib/typesense'
4
4
  require 'awesome_print'
5
+ require 'logger'
5
6
 
6
7
  AwesomePrint.defaults = {
7
8
  indent: -2
@@ -62,6 +63,6 @@ AwesomePrint.defaults = {
62
63
  healthcheck_interval_seconds: 1,
63
64
  retry_interval_seconds: 0.01,
64
65
  connection_timeout_seconds: 10,
65
- logger: Logger.new(STDOUT),
66
+ logger: Logger.new($stdout),
66
67
  log_level: Logger::DEBUG
67
68
  )
@@ -1,11 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'httparty'
3
+ require 'typhoeus'
4
+ require 'oj'
4
5
 
5
6
  module Typesense
6
7
  class ApiCall
7
- include HTTParty
8
-
9
8
  API_KEY_HEADER_NAME = 'X-TYPESENSE-API-KEY'
10
9
 
11
10
  def initialize(configuration)
@@ -30,8 +29,8 @@ module Typesense
30
29
 
31
30
  perform_request :post,
32
31
  endpoint,
33
- body: body,
34
- headers: default_headers.merge(headers)
32
+ headers,
33
+ body: body
35
34
  end
36
35
 
37
36
  def put(endpoint, parameters = {})
@@ -39,8 +38,8 @@ module Typesense
39
38
 
40
39
  perform_request :put,
41
40
  endpoint,
42
- body: body,
43
- headers: default_headers.merge(headers)
41
+ headers,
42
+ body: body
44
43
  end
45
44
 
46
45
  def get(endpoint, parameters = {})
@@ -48,8 +47,8 @@ module Typesense
48
47
 
49
48
  perform_request :get,
50
49
  endpoint,
51
- query: query,
52
- headers: default_headers.merge(headers)
50
+ headers,
51
+ params: query
53
52
  end
54
53
 
55
54
  def delete(endpoint, parameters = {})
@@ -57,11 +56,11 @@ module Typesense
57
56
 
58
57
  perform_request :delete,
59
58
  endpoint,
60
- query: query,
61
- headers: default_headers.merge(headers)
59
+ headers,
60
+ params: query
62
61
  end
63
62
 
64
- def perform_request(method, endpoint, options = {})
63
+ def perform_request(method, endpoint, headers = {}, options = {})
65
64
  @configuration.validate!
66
65
  last_exception = nil
67
66
  @logger.debug "Performing #{method.to_s.upcase} request: #{endpoint}"
@@ -71,24 +70,31 @@ module Typesense
71
70
  @logger.debug "Attempting #{method.to_s.upcase} request Try ##{num_tries} to Node #{node[:index]}"
72
71
 
73
72
  begin
74
- response_object = self.class.send(method,
75
- uri_for(endpoint, node),
76
- default_options.merge(options))
77
- response_code = response_object.response.code.to_i
78
- set_node_healthcheck(node, is_healthy: true) if response_code >= 1 && response_code <= 499
79
-
80
- @logger.debug "Request to Node #{node[:index]} was successfully made (at the network layer). Response Code was #{response_code}."
73
+ response = Typhoeus::Request.new(uri_for(endpoint, node),
74
+ {
75
+ method: method,
76
+ headers: default_headers.merge(headers),
77
+ timeout: @connection_timeout_seconds
78
+ }.merge(options)).run
79
+ set_node_healthcheck(node, is_healthy: true) if response.code >= 1 && response.code <= 499
80
+
81
+ @logger.debug "Request to Node #{node[:index]} was successfully made (at the network layer). Response Code was #{response.code}."
82
+
83
+ parsed_response = if response.headers && (response.headers['content-type'] || '').include?('application/json')
84
+ Oj.load(response.body)
85
+ else
86
+ response.body
87
+ end
81
88
 
82
89
  # If response is 2xx return the object, else raise the response as an exception
83
- return response_object.parsed_response if response_object.response.code_type <= Net::HTTPSuccess # 2xx
90
+ return parsed_response if response.code >= 200 && response.code <= 299
84
91
 
85
- exception_message = (response_object.parsed_response && response_object.parsed_response['message']) || 'Error'
86
- raise custom_exception_klass_for(response_object.response), exception_message
87
- rescue SocketError, Net::ReadTimeout, Net::OpenTimeout,
88
- EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError,
92
+ exception_message = (parsed_response && parsed_response['message']) || 'Error'
93
+ raise custom_exception_klass_for(response), exception_message
94
+ rescue SocketError, EOFError,
89
95
  Errno::EINVAL, Errno::ENETDOWN, Errno::ENETUNREACH, Errno::ENETRESET, Errno::ECONNABORTED, Errno::ECONNRESET,
90
96
  Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTDOWN, Errno::EHOSTUNREACH,
91
- Timeout::Error, HTTParty::ResponseError, Typesense::Error::ServerError, Typesense::Error::HTTPStatus0Error => e
97
+ Typesense::Error::TimeoutError, Typesense::Error::ServerError, Typesense::Error::HTTPStatus0Error => e
92
98
  # Rescue network layer exceptions and HTTP 5xx errors, so the loop can continue.
93
99
  # Using loops for retries instead of rescue...retry to maintain consistency with client libraries in
94
100
  # other languages that might not support the same construct.
@@ -108,7 +114,7 @@ module Typesense
108
114
  def extract_headers_and_body_from(parameters)
109
115
  if json_request?(parameters)
110
116
  headers = { 'Content-Type' => 'application/json' }
111
- body = sanitize_parameters(parameters).to_json
117
+ body = Oj.dump(sanitize_parameters(parameters))
112
118
  else
113
119
  headers = {}
114
120
  body = parameters[:body]
@@ -199,35 +205,31 @@ module Typesense
199
205
  end
200
206
 
201
207
  def custom_exception_klass_for(response)
202
- response_code_type = response.code_type
203
- if response_code_type <= Net::HTTPBadRequest # 400
208
+ if response.code == 400
204
209
  Typesense::Error::RequestMalformed
205
- elsif response_code_type <= Net::HTTPUnauthorized # 401
210
+ elsif response.code == 401
206
211
  Typesense::Error::RequestUnauthorized
207
- elsif response_code_type <= Net::HTTPNotFound # 404
212
+ elsif response.code == 404
208
213
  Typesense::Error::ObjectNotFound
209
- elsif response_code_type <= Net::HTTPConflict # 409
214
+ elsif response.code == 409
210
215
  Typesense::Error::ObjectAlreadyExists
211
- elsif response_code_type <= Net::HTTPUnprocessableEntity # 422
216
+ elsif response.code == 422
212
217
  Typesense::Error::ObjectUnprocessable
213
- elsif response_code_type <= Net::HTTPServerError # 5xx
218
+ elsif response.code >= 500 && response.code <= 599
214
219
  Typesense::Error::ServerError
215
- elsif response.code.to_i.zero?
220
+ elsif response.timed_out?
221
+ Typesense::Error::TimeoutError
222
+ elsif response.code.zero?
216
223
  Typesense::Error::HTTPStatus0Error
217
224
  else
218
225
  Typesense::Error::HTTPError
219
226
  end
220
227
  end
221
228
 
222
- def default_options
223
- {
224
- timeout: @connection_timeout_seconds
225
- }
226
- end
227
-
228
229
  def default_headers
229
230
  {
230
- API_KEY_HEADER_NAME.to_s => @api_key
231
+ API_KEY_HEADER_NAME.to_s => @api_key,
232
+ 'User-Agent' => 'Typesense Ruby Client'
231
233
  }
232
234
  end
233
235
  end
@@ -2,13 +2,7 @@
2
2
 
3
3
  module Typesense
4
4
  class Client
5
- attr_reader :configuration
6
- attr_reader :collections
7
- attr_reader :aliases
8
- attr_reader :keys
9
- attr_reader :debug
10
- attr_reader :health
11
- attr_reader :metrics
5
+ attr_reader :configuration, :collections, :aliases, :keys, :debug, :health, :metrics
12
6
 
13
7
  def initialize(options = {})
14
8
  @configuration = Configuration.new(options)
@@ -2,8 +2,7 @@
2
2
 
3
3
  module Typesense
4
4
  class Collection
5
- attr_reader :documents
6
- attr_reader :overrides
5
+ attr_reader :documents, :overrides
7
6
 
8
7
  def initialize(name, api_call)
9
8
  @name = name
@@ -1,16 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'logger'
4
+
3
5
  module Typesense
4
6
  class Configuration
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
7
+ attr_accessor :nodes, :nearest_node, :connection_timeout_seconds, :healthcheck_interval_seconds, :num_retries, :retry_interval_seconds, :api_key, :logger, :log_level
14
8
 
15
9
  def initialize(options = {})
16
10
  @nodes = options[:nodes] || []
@@ -21,7 +15,7 @@ module Typesense
21
15
  @retry_interval_seconds = options[:retry_interval_seconds] || 0.1
22
16
  @api_key = options[:api_key]
23
17
 
24
- @logger = options[:logger] || Logger.new(STDOUT)
18
+ @logger = options[:logger] || Logger.new($stdout)
25
19
  @log_level = options[:log_level] || Logger::WARN
26
20
  @logger.level = @log_level
27
21
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'oj'
4
+
3
5
  module Typesense
4
6
  class Documents
5
7
  RESOURCE_PATH = '/documents'
@@ -15,7 +17,7 @@ module Typesense
15
17
  end
16
18
 
17
19
  def create_many(documents)
18
- documents_in_jsonl_format = documents.map { |document| JSON.dump(document) }.join("\n")
20
+ documents_in_jsonl_format = documents.map { |document| Oj.dump(document) }.join("\n")
19
21
  import(documents_in_jsonl_format)
20
22
  end
21
23
 
@@ -38,7 +40,7 @@ module Typesense
38
40
  private
39
41
 
40
42
  def endpoint_path(operation = nil)
41
- "#{Collections::RESOURCE_PATH}/#{@collection_name}#{Documents::RESOURCE_PATH}#{operation.nil? ? '' : '/' + operation}"
43
+ "#{Collections::RESOURCE_PATH}/#{@collection_name}#{Documents::RESOURCE_PATH}#{operation.nil? ? '' : "/#{operation}"}"
42
44
  end
43
45
  end
44
46
  end
@@ -26,6 +26,9 @@ module Typesense
26
26
  class HTTPStatus0Error < Error
27
27
  end
28
28
 
29
+ class TimeoutError < Error
30
+ end
31
+
29
32
  class NoMethodError < ::NoMethodError
30
33
  end
31
34
 
@@ -25,7 +25,7 @@ module Typesense
25
25
  private
26
26
 
27
27
  def endpoint_path(operation = nil)
28
- "#{Collections::RESOURCE_PATH}/#{@collection_name}#{Overrides::RESOURCE_PATH}#{operation.nil? ? '' : '/' + operation}"
28
+ "#{Collections::RESOURCE_PATH}/#{@collection_name}#{Overrides::RESOURCE_PATH}#{operation.nil? ? '' : "/#{operation}"}"
29
29
  end
30
30
  end
31
31
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Typesense
4
- VERSION = '0.5.5'
4
+ VERSION = '0.6.0'
5
5
  end
@@ -15,6 +15,8 @@ Gem::Specification.new do |spec|
15
15
  spec.homepage = 'https://typesense.org'
16
16
  spec.license = 'Apache-2.0'
17
17
 
18
+ spec.required_ruby_version = '>= 2.4'
19
+
18
20
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
21
  f.match(%r{^(test|spec|features)/})
20
22
  end
@@ -25,16 +27,19 @@ Gem::Specification.new do |spec|
25
27
  spec.add_development_dependency 'awesome_print', '~> 1.8'
26
28
  spec.add_development_dependency 'bundler', '~> 2.0'
27
29
  spec.add_development_dependency 'codecov', '~> 0.1'
30
+ spec.add_development_dependency 'guard', '~> 2.16'
31
+ spec.add_development_dependency 'guard-rubocop', '~> 1.3'
28
32
  spec.add_development_dependency 'pry-byebug', '~> 3.9'
29
33
  spec.add_development_dependency 'rake', '~> 13.0'
30
34
  spec.add_development_dependency 'rspec', '~> 3.9'
31
- spec.add_development_dependency 'rspec-legacy_formatters', '~> 1.0' # For codecov formatter
32
35
  spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
33
- spec.add_development_dependency 'rubocop', '~> 0.83'
36
+ spec.add_development_dependency 'rspec-legacy_formatters', '~> 1.0' # For codecov formatter
37
+ spec.add_development_dependency 'rubocop', '~> 0.88'
34
38
  spec.add_development_dependency 'rubocop-rspec', '~> 1.39'
35
39
  spec.add_development_dependency 'simplecov', '~> 0.18'
36
40
  spec.add_development_dependency 'timecop', '~> 0.9'
37
41
  spec.add_development_dependency 'webmock', '~> 3.8'
38
42
 
39
- spec.add_dependency 'httparty', '~> 0.18'
43
+ spec.add_dependency 'oj', '~> 3.10'
44
+ spec.add_dependency 'typhoeus', '~> 1.4'
40
45
  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.5.5
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Typesense, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-04 00:00:00.000000000 Z
11
+ date: 2020-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.16'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.16'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.3'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: pry-byebug
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -95,47 +123,47 @@ dependencies:
95
123
  - !ruby/object:Gem::Version
96
124
  version: '3.9'
97
125
  - !ruby/object:Gem::Dependency
98
- name: rspec-legacy_formatters
126
+ name: rspec_junit_formatter
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: '1.0'
131
+ version: '0.4'
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: '1.0'
138
+ version: '0.4'
111
139
  - !ruby/object:Gem::Dependency
112
- name: rspec_junit_formatter
140
+ name: rspec-legacy_formatters
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - "~>"
116
144
  - !ruby/object:Gem::Version
117
- version: '0.4'
145
+ version: '1.0'
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: '0.4'
152
+ version: '1.0'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: rubocop
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: '0.83'
159
+ version: '0.88'
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - "~>"
137
165
  - !ruby/object:Gem::Version
138
- version: '0.83'
166
+ version: '0.88'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: rubocop-rspec
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -193,19 +221,33 @@ dependencies:
193
221
  - !ruby/object:Gem::Version
194
222
  version: '3.8'
195
223
  - !ruby/object:Gem::Dependency
196
- name: httparty
224
+ name: oj
197
225
  requirement: !ruby/object:Gem::Requirement
198
226
  requirements:
199
227
  - - "~>"
200
228
  - !ruby/object:Gem::Version
201
- version: '0.18'
229
+ version: '3.10'
202
230
  type: :runtime
203
231
  prerelease: false
204
232
  version_requirements: !ruby/object:Gem::Requirement
205
233
  requirements:
206
234
  - - "~>"
207
235
  - !ruby/object:Gem::Version
208
- version: '0.18'
236
+ version: '3.10'
237
+ - !ruby/object:Gem::Dependency
238
+ name: typhoeus
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '1.4'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '1.4'
209
251
  description: Typesense is an open source search engine for building a delightful search
210
252
  experience.
211
253
  email:
@@ -218,8 +260,8 @@ files:
218
260
  - ".gitignore"
219
261
  - ".rspec"
220
262
  - ".rubocop.yml"
221
- - ".rubocop_todo.yml"
222
263
  - Gemfile
264
+ - Guardfile
223
265
  - LICENSE
224
266
  - README.md
225
267
  - Rakefile
@@ -264,7 +306,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
264
306
  requirements:
265
307
  - - ">="
266
308
  - !ruby/object:Gem::Version
267
- version: '0'
309
+ version: '2.4'
268
310
  required_rubygems_version: !ruby/object:Gem::Requirement
269
311
  requirements:
270
312
  - - ">="
@@ -1,50 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2020-05-21 20:10:36 -0700 using RuboCop version 0.83.0.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 1
10
- Lint/ShadowedException:
11
- Exclude:
12
- - 'lib/typesense/api_call.rb'
13
-
14
- # Offense count: 2
15
- # Configuration parameters: AllowComments.
16
- Lint/SuppressedException:
17
- Exclude:
18
- - 'examples/collections_and_documents.rb'
19
- - 'examples/search.rb'
20
- - 'examples/keys.rb'
21
-
22
- # Offense count: 10
23
- RSpec/MultipleExpectations:
24
- Max: 5
25
-
26
- # Offense count: 13
27
- Style/Documentation:
28
- Exclude:
29
- - 'spec/**/*'
30
- - 'test/**/*'
31
- - 'lib/typesense.rb'
32
- - 'lib/typesense/alias.rb'
33
- - 'lib/typesense/aliases.rb'
34
- - 'lib/typesense/api_call.rb'
35
- - 'lib/typesense/client.rb'
36
- - 'lib/typesense/collection.rb'
37
- - 'lib/typesense/collections.rb'
38
- - 'lib/typesense/configuration.rb'
39
- - 'lib/typesense/debug.rb'
40
- - 'lib/typesense/document.rb'
41
- - 'lib/typesense/documents.rb'
42
- - 'lib/typesense/override.rb'
43
- - 'lib/typesense/overrides.rb'
44
-
45
- # Offense count: 157
46
- # Cop supports --auto-correct.
47
- # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
48
- # URISchemes: http, https
49
- Layout/LineLength:
50
- Max: 312