esse 0.0.2 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/exec/esse +3 -1
  3. data/lib/esse/backend/index/aliases.rb +8 -4
  4. data/lib/esse/backend/index/close.rb +54 -0
  5. data/lib/esse/backend/index/create.rb +21 -10
  6. data/lib/esse/backend/index/delete.rb +15 -14
  7. data/lib/esse/backend/index/documents.rb +2 -2
  8. data/lib/esse/backend/index/existance.rb +2 -3
  9. data/lib/esse/backend/index/open.rb +54 -0
  10. data/lib/esse/backend/index/refresh.rb +43 -0
  11. data/lib/esse/backend/index/reset.rb +33 -0
  12. data/lib/esse/backend/index/update.rb +128 -4
  13. data/lib/esse/backend/index.rb +20 -4
  14. data/lib/esse/backend/index_type/documents.rb +53 -42
  15. data/lib/esse/backend/index_type.rb +7 -2
  16. data/lib/esse/cli/event_listener.rb +87 -0
  17. data/lib/esse/cli/generate.rb +9 -4
  18. data/lib/esse/cli/index/base_operation.rb +76 -0
  19. data/lib/esse/cli/index/close.rb +26 -0
  20. data/lib/esse/cli/index/create.rb +26 -0
  21. data/lib/esse/cli/index/delete.rb +26 -0
  22. data/lib/esse/cli/index/open.rb +26 -0
  23. data/lib/esse/cli/index/reset.rb +26 -0
  24. data/lib/esse/cli/index/update_aliases.rb +32 -0
  25. data/lib/esse/cli/index/update_mapping.rb +33 -0
  26. data/lib/esse/cli/index/update_settings.rb +26 -0
  27. data/lib/esse/cli/index.rb +70 -2
  28. data/lib/esse/cli/templates/config.rb.erb +20 -0
  29. data/lib/esse/cli/templates/index.rb.erb +76 -11
  30. data/lib/esse/cli/templates/type_collection.rb.erb +41 -0
  31. data/lib/esse/cli/templates/{mappings.json → type_mappings.json} +0 -0
  32. data/lib/esse/cli/templates/type_serializer.rb.erb +23 -0
  33. data/lib/esse/cli.rb +75 -3
  34. data/lib/esse/cluster.rb +22 -6
  35. data/lib/esse/config.rb +39 -5
  36. data/lib/esse/core.rb +18 -36
  37. data/lib/esse/errors.rb +47 -0
  38. data/lib/esse/events/bus.rb +103 -0
  39. data/lib/esse/events/event.rb +64 -0
  40. data/lib/esse/events/publisher.rb +119 -0
  41. data/lib/esse/events.rb +49 -0
  42. data/lib/esse/index/backend.rb +2 -1
  43. data/lib/esse/index/base.rb +4 -6
  44. data/lib/esse/index/mappings.rb +4 -6
  45. data/lib/esse/index/settings.rb +6 -8
  46. data/lib/esse/index.rb +2 -1
  47. data/lib/esse/index_mapping.rb +2 -2
  48. data/lib/esse/index_setting.rb +8 -4
  49. data/lib/esse/index_type/actions.rb +2 -1
  50. data/lib/esse/index_type/backend.rb +2 -1
  51. data/lib/esse/index_type/mappings.rb +3 -3
  52. data/lib/esse/index_type.rb +6 -1
  53. data/lib/esse/logging.rb +19 -0
  54. data/lib/esse/object_document_mapper.rb +96 -0
  55. data/lib/esse/primitives/hash_utils.rb +29 -0
  56. data/lib/esse/primitives/hstring.rb +4 -3
  57. data/lib/esse/primitives/output.rb +64 -0
  58. data/lib/esse/primitives.rb +1 -0
  59. data/lib/esse/template_loader.rb +1 -1
  60. data/lib/esse/version.rb +1 -1
  61. data/lib/esse.rb +14 -2
  62. metadata +127 -24
  63. data/.gitignore +0 -12
  64. data/.rubocop.yml +0 -128
  65. data/CHANGELOG.md +0 -0
  66. data/Gemfile +0 -7
  67. data/Gemfile.lock +0 -60
  68. data/LICENSE.txt +0 -21
  69. data/README.md +0 -50
  70. data/Rakefile +0 -4
  71. data/bin/console +0 -22
  72. data/bin/setup +0 -8
  73. data/esse.gemspec +0 -39
  74. data/lib/esse/cli/templates/serializer.rb.erb +0 -14
  75. data/lib/esse/index_type/serializer.rb +0 -87
  76. data/lib/esse/types/mapping.rb +0 -0
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Esse
4
+ module ObjectDocumentMapper
5
+ # Convert ruby object to json. Arguments will be same of passed through the
6
+ # collection. It's allowed a block or a class with the `to_h` instance method.
7
+ # Example with block
8
+ # serializer do |model, **context|
9
+ # {
10
+ # id: model.id,
11
+ # admin: context[:is_admin],
12
+ # }
13
+ # end
14
+ # Example with serializer class
15
+ # serializer UserSerializer
16
+ def serializer(klass = nil, &block)
17
+ if block
18
+ @serializer_proc = block
19
+ elsif klass.is_a?(Class) && klass.instance_methods.include?(:to_h)
20
+ @serializer_proc = proc { |*args, **kwargs| klass.new(*args, **kwargs).to_h }
21
+ elsif klass.is_a?(Class) && klass.instance_methods.include?(:as_json) # backward compatibility
22
+ @serializer_proc = proc { |*args, **kwargs| klass.new(*args, **kwargs).as_json }
23
+ elsif klass.is_a?(Class) && klass.instance_methods.include?(:call)
24
+ @serializer_proc = proc { |*args, **kwargs| klass.new(*args, **kwargs).call }
25
+ else
26
+ msg = format('%<arg>p is not a valid serializer. The serializer should ' \
27
+ 'respond with `to_h` instance method.', arg: klass,)
28
+ raise ArgumentError, msg
29
+ end
30
+ end
31
+
32
+ def serialize(model, *args, **kwargs)
33
+ unless @serializer_proc
34
+ raise NotImplementedError, format('there is no serializer defined for the %<k>p index', k: to_s)
35
+ end
36
+
37
+ @serializer_proc.call(model, *args, **kwargs)
38
+ end
39
+
40
+ # Used to define the source of data. A block is required. And its
41
+ # content should yield an array of each object that should be serialized.
42
+ # The list of arguments will be passed throught the serializer method.
43
+ #
44
+ # Here is an example of how this should work:
45
+ # collection do |conditions, &block|
46
+ # User.where(conditions).find_in_batches(batch_size: 5000) do |batch|
47
+ # block.call(batch, conditions)
48
+ # end
49
+ # end
50
+ def collection(collection_class = nil, &block)
51
+ raise ArgumentError, 'a collection class or a block is required' if block.nil? && collection_class.nil?
52
+
53
+ if block.nil? && collection_class.is_a?(Class) && !collection_class.include?(Enumerable)
54
+ msg = '%<arg>p is not a valid collection class.' \
55
+ ' Collections should implement the Enumerable interface'
56
+ raise ArgumentError, format(msg, arg: collection_class)
57
+ end
58
+
59
+ @collection_proc = collection_class || block
60
+ end
61
+
62
+ # Used to fetch all batch of data defined on the collection model.
63
+ # Arguments can be anything. They will just be passed through the block.
64
+ # Useful when the collection depends on scope or any other conditions
65
+ # Example
66
+ # each_batch(active: true) do |data, _opts|
67
+ # puts data.size
68
+ # end
69
+ def each_batch(*args, **kwargs, &block)
70
+ unless @collection_proc
71
+ raise NotImplementedError, format('there is no collection defined for the %<k>p index', k: to_s)
72
+ end
73
+
74
+ case @collection_proc
75
+ when Class
76
+ @collection_proc.new(*args, **kwargs).each(&block)
77
+ else
78
+ @collection_proc.call(*args, **kwargs, &block)
79
+ end
80
+ rescue LocalJumpError
81
+ raise(SyntaxError, 'block must be explicitly declared in the collection definition')
82
+ end
83
+
84
+ # Wrap collection data into serialized batches
85
+ #
86
+ # @param args [*Object] Any argument is allowed here. The collection will be called with same arguments.
87
+ # And the serializer will be initialized with those arguments too.
88
+ # @yield [Array, *Object] serialized collection and method arguments
89
+ def each_serialized_batch(*args, **kwargs, &block)
90
+ each_batch(*args, **kwargs) do |batch|
91
+ entries = batch.map { |entry| serialize(entry, *args, **kwargs) }.compact
92
+ block.call(entries, *args, **kwargs)
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,29 @@
1
+ require 'forwardable'
2
+
3
+ module Esse
4
+ # The idea here is to add useful methods to the ruby standard objects without
5
+ # monkey patching them
6
+ module HashUtils
7
+ module_function
8
+
9
+ def deep_merge(target, source)
10
+ target.merge(source) do |key, oldval, newval|
11
+ if oldval.is_a?(Hash) && newval.is_a?(Hash)
12
+ deep_merge(oldval, newval)
13
+ else
14
+ newval
15
+ end
16
+ end
17
+ end
18
+
19
+ def deep_merge!(target, source)
20
+ target.merge!(source) do |key, oldval, newval|
21
+ if oldval.is_a?(Hash) && newval.is_a?(Hash)
22
+ deep_merge!(oldval, newval)
23
+ else
24
+ newval
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -9,7 +9,7 @@ module Esse
9
9
  class Hstring
10
10
  extend Forwardable
11
11
 
12
- def_delegators :@value, :==, :eq, :to_s, :inspect, :sub, :capitalize
12
+ def_delegators :@value, :==, :eq, :to_s, :to_sym, :inspect, :sub, :capitalize
13
13
  attr_reader :value
14
14
 
15
15
  def self.def_conventional(bang_method, conv_method = nil)
@@ -54,18 +54,19 @@ module Esse
54
54
  def_conventional :demodulize!
55
55
 
56
56
  def modulize!
57
- @value = @value.split(%r{\:\:|\\|/}).map { |part| self.class.new(part).camelize.to_s }.join('::')
57
+ @value = @value.split(%r{::|\\|/}).map { |part| self.class.new(part).camelize.to_s }.join('::')
58
58
  self
59
59
  end
60
60
  def_conventional :modulize!
61
61
 
62
62
  def underscore!
63
63
  @value = @value
64
- .sub(/^\:\:/, '')
64
+ .sub(/^::/, '')
65
65
  .gsub('::', '/')
66
66
  .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
67
67
  .gsub(/([a-z\d])([A-Z])/, '\1_\2')
68
68
  .tr('-', '_')
69
+ .tr('.', '_')
69
70
  .gsub(/\s/, '_')
70
71
  .gsub(/__+/, '_')
71
72
  .downcase
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require 'rainbow'
5
+ rescue LoadError
6
+ end
7
+
8
+ module Esse
9
+ module Output
10
+ module_function
11
+
12
+ def formatted_runtime(number)
13
+ colorize(sprintf('%.3f ms', number), :lightgray)
14
+ end
15
+
16
+ def runtime_padding(number, extra = 2)
17
+ ' ' * (extra + sprintf('%.3f ms', number).size)
18
+ end
19
+
20
+ def colorize(text, *attributes)
21
+ if defined? Rainbow
22
+ attributes.reduce(Rainbow(text)) { |p, a| p.public_send(a) }
23
+ else
24
+ text
25
+ end
26
+ end
27
+
28
+ def print_error(message_or_error, backtrace: false, **options)
29
+ options[:level] ||= :error
30
+ message = message_or_error.to_s
31
+
32
+ print_message(message, output: :stderr, **options)
33
+
34
+ if message_or_error.is_a?(Exception) && backtrace
35
+ limit = backtrace.is_a?(Integer) ? backtrace : -1
36
+ print_backtrace(message_or_error, limit: limit, level: options[:level])
37
+ end
38
+ end
39
+
40
+ def print_backtrace(error, limit: -1, **options)
41
+ return unless error.respond_to?(:backtrace)
42
+ return if error.backtrace.nil?
43
+
44
+ error.backtrace[0..limit].each { |frame| print_error(frame, **options) }
45
+ end
46
+
47
+ def print_message(message, level: :info, output: $stdout, newline: true, **fields)
48
+ output = \
49
+ case output
50
+ when :stdout, 'stdout'
51
+ $stdout
52
+ when :stderr, 'stderr'
53
+ $stderr
54
+ when IO, StringIO
55
+ output
56
+ else
57
+ raise ArgumentError, "Invalid output #{output.inspect}"
58
+ end
59
+
60
+ message = format(message, **fields)
61
+ newline ? output.puts(message) : output.print(message)
62
+ end
63
+ end
64
+ end
@@ -1,3 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'primitives/hstring'
4
+ require_relative 'primitives/hash_utils'
@@ -24,7 +24,7 @@ module Esse
24
24
  path = nil
25
25
  @directories.each do |dir|
26
26
  patterns.find do |pattern|
27
- path = Dir[dir.join("#{pattern}.{#{@extensions.join(',')}}")].first
27
+ path = Dir[dir.join("#{pattern}.{#{@extensions.join(",")}}")].first
28
28
  break if path
29
29
  end
30
30
  break if path
data/lib/esse/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Esse
4
- VERSION = '0.0.2'
4
+ VERSION = '0.1.1'
5
5
  end
data/lib/esse.rb CHANGED
@@ -1,7 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'esse/index'
3
+ require_relative 'esse/core'
4
+ require_relative 'esse/errors'
5
+ require_relative 'esse/index'
4
6
 
5
7
  module Esse
6
- class Error < StandardError; end
8
+ SETTING_ROOT_KEY = 'settings'
9
+ MAPPING_ROOT_KEY = 'mappings'
10
+ CLI_IGNORE_OPTS = %i[
11
+ require
12
+ silent
13
+ ].freeze
14
+ CLI_CONFIG_PATHS = %w[
15
+ Essefile
16
+ config/esse.rb
17
+ config/initializers/esse.rb
18
+ ].freeze
7
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcos G. Zimmermann
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: exec
10
10
  cert_chain: []
11
- date: 2020-05-05 00:00:00.000000000 Z
11
+ date: 2022-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: elasticsearch
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.19'
55
55
  - !ruby/object:Gem::Dependency
56
- name: dotenv
56
+ name: awesome_print
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: awesome_print
70
+ name: dotenv
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '10.0'
103
+ version: '12.3'
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: '10.0'
110
+ version: '12.3'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -122,47 +122,148 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '3.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: webmock
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.14'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.14'
139
+ - !ruby/object:Gem::Dependency
140
+ name: yard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.9.20
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.9.20
153
+ - !ruby/object:Gem::Dependency
154
+ name: standard
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.3'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '1.3'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '1.20'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '1.20'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop-performance
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '1.11'
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: 1.11.5
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: '1.11'
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: 1.11.5
201
+ - !ruby/object:Gem::Dependency
202
+ name: rubocop-rspec
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '2.4'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '2.4'
125
215
  description: All the elegance of ruby with the elasticsearch flexibility. This gem
126
216
  is a pretty simple but excential helpers to deal with mapping, indexing, serialization
127
217
  and search.
128
218
  email:
129
219
  - mgzmaster@gmail.com
130
- executables: []
220
+ executables:
221
+ - esse
131
222
  extensions: []
132
223
  extra_rdoc_files: []
133
224
  files:
134
- - ".gitignore"
135
- - ".rubocop.yml"
136
- - CHANGELOG.md
137
- - Gemfile
138
- - Gemfile.lock
139
- - LICENSE.txt
140
- - README.md
141
- - Rakefile
142
- - bin/console
143
- - bin/setup
144
- - esse.gemspec
145
225
  - exec/esse
146
226
  - lib/esse.rb
147
227
  - lib/esse/backend/index.rb
148
228
  - lib/esse/backend/index/aliases.rb
229
+ - lib/esse/backend/index/close.rb
149
230
  - lib/esse/backend/index/create.rb
150
231
  - lib/esse/backend/index/delete.rb
151
232
  - lib/esse/backend/index/documents.rb
152
233
  - lib/esse/backend/index/existance.rb
234
+ - lib/esse/backend/index/open.rb
235
+ - lib/esse/backend/index/refresh.rb
236
+ - lib/esse/backend/index/reset.rb
153
237
  - lib/esse/backend/index/update.rb
154
238
  - lib/esse/backend/index_type.rb
155
239
  - lib/esse/backend/index_type/documents.rb
156
240
  - lib/esse/cli.rb
157
241
  - lib/esse/cli/base.rb
242
+ - lib/esse/cli/event_listener.rb
158
243
  - lib/esse/cli/generate.rb
159
244
  - lib/esse/cli/index.rb
245
+ - lib/esse/cli/index/base_operation.rb
246
+ - lib/esse/cli/index/close.rb
247
+ - lib/esse/cli/index/create.rb
248
+ - lib/esse/cli/index/delete.rb
249
+ - lib/esse/cli/index/open.rb
250
+ - lib/esse/cli/index/reset.rb
251
+ - lib/esse/cli/index/update_aliases.rb
252
+ - lib/esse/cli/index/update_mapping.rb
253
+ - lib/esse/cli/index/update_settings.rb
254
+ - lib/esse/cli/templates/config.rb.erb
160
255
  - lib/esse/cli/templates/index.rb.erb
161
- - lib/esse/cli/templates/mappings.json
162
- - lib/esse/cli/templates/serializer.rb.erb
256
+ - lib/esse/cli/templates/type_collection.rb.erb
257
+ - lib/esse/cli/templates/type_mappings.json
258
+ - lib/esse/cli/templates/type_serializer.rb.erb
163
259
  - lib/esse/cluster.rb
164
260
  - lib/esse/config.rb
165
261
  - lib/esse/core.rb
262
+ - lib/esse/errors.rb
263
+ - lib/esse/events.rb
264
+ - lib/esse/events/bus.rb
265
+ - lib/esse/events/event.rb
266
+ - lib/esse/events/publisher.rb
166
267
  - lib/esse/index.rb
167
268
  - lib/esse/index/actions.rb
168
269
  - lib/esse/index/backend.rb
@@ -179,11 +280,13 @@ files:
179
280
  - lib/esse/index_type/actions.rb
180
281
  - lib/esse/index_type/backend.rb
181
282
  - lib/esse/index_type/mappings.rb
182
- - lib/esse/index_type/serializer.rb
283
+ - lib/esse/logging.rb
284
+ - lib/esse/object_document_mapper.rb
183
285
  - lib/esse/primitives.rb
286
+ - lib/esse/primitives/hash_utils.rb
184
287
  - lib/esse/primitives/hstring.rb
288
+ - lib/esse/primitives/output.rb
185
289
  - lib/esse/template_loader.rb
186
- - lib/esse/types/mapping.rb
187
290
  - lib/esse/version.rb
188
291
  homepage: https://github.com/marcosgz/esse
189
292
  licenses:
@@ -207,7 +310,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
310
  - !ruby/object:Gem::Version
208
311
  version: '0'
209
312
  requirements: []
210
- rubygems_version: 3.1.2
313
+ rubygems_version: 3.0.3.1
211
314
  signing_key:
212
315
  specification_version: 4
213
316
  summary: Pure Ruby toolkit based on official elasticsearch-ruby library. (No! It isn't
data/.gitignore DELETED
@@ -1,12 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /.rspec_status
9
- /tmp/
10
- esse-*.gem
11
- /app
12
- /.env
data/.rubocop.yml DELETED
@@ -1,128 +0,0 @@
1
- AllCops:
2
- Exclude:
3
- - 'bin/**/*'
4
- - 'log/**/*'
5
- - 'tmp/**/*'
6
-
7
- Layout/HashAlignment:
8
- Enabled: true
9
- EnforcedLastArgumentHashStyle: always_ignore
10
-
11
- Layout/ParameterAlignment:
12
- EnforcedStyle: with_fixed_indentation
13
-
14
- Layout/CaseIndentation:
15
- EnforcedStyle: end
16
-
17
- Layout/FirstHashElementIndentation:
18
- Enabled: false
19
-
20
- Layout/MultilineMethodCallIndentation:
21
- EnforcedStyle: indented
22
-
23
- Layout/MultilineOperationIndentation:
24
- EnforcedStyle: indented
25
-
26
- Layout/SpaceInsideHashLiteralBraces:
27
- Enabled: false
28
-
29
- Metrics/AbcSize:
30
- Max: 20
31
-
32
- Metrics/BlockLength:
33
- Exclude:
34
- - '**/*.rake'
35
- - 'spec/**/*.rb'
36
-
37
- Metrics/ClassLength:
38
- Max: 100
39
-
40
- Layout/LineLength:
41
- Max: 130
42
-
43
- Metrics/MethodLength:
44
- CountComments: false
45
- Max: 20
46
-
47
- Metrics/ModuleLength:
48
- Max: 100
49
-
50
- Style/AsciiComments:
51
- Enabled: false
52
-
53
- Style/BlockDelimiters:
54
- Exclude:
55
- - spec/**/*_spec.rb
56
-
57
- Style/TrailingCommaInHashLiteral:
58
- EnforcedStyleForMultiline: consistent_comma
59
-
60
- Layout/SpaceAroundMethodCallOperator:
61
- Enabled: true
62
-
63
- Lint/RaiseException:
64
- Enabled: true
65
-
66
- Lint/StructNewOverride:
67
- Enabled: true
68
-
69
- Style/ExponentialNotation:
70
- Enabled: true
71
-
72
- Style/HashEachMethods:
73
- Enabled: true
74
-
75
- Style/HashTransformKeys:
76
- Enabled: true
77
-
78
- Style/HashTransformValues:
79
- Enabled: true
80
-
81
- Style/CollectionMethods:
82
- Enabled: true
83
- PreferredMethods:
84
- collect: map
85
- collect!: map!
86
- detect: find
87
- find_all: select
88
- inject: reduce
89
- length: size
90
-
91
- Style/Documentation:
92
- Enabled: false
93
-
94
- Style/FormatString:
95
- EnforcedStyle: format
96
-
97
- Style/StringLiterals:
98
- EnforcedStyle: single_quotes
99
-
100
- Style/GuardClause:
101
- Enabled: false
102
-
103
- Style/IfUnlessModifier:
104
- Enabled: false
105
-
106
- Style/Lambda:
107
- Enabled: false
108
-
109
- Style/RaiseArgs:
110
- Enabled: false
111
-
112
- Style/SignalException:
113
- Enabled: false
114
-
115
- Style/SingleLineBlockParams:
116
- Enabled: false
117
-
118
- Style/TrailingCommaInArguments:
119
- EnforcedStyleForMultiline: consistent_comma
120
-
121
- Style/TrivialAccessors:
122
- AllowPredicates: true
123
-
124
- Style/WordArray:
125
- Enabled: false
126
-
127
- Layout/EndAlignment:
128
- EnforcedStyleAlignWith: variable
data/CHANGELOG.md DELETED
File without changes
data/Gemfile DELETED
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
-
7
- gemspec