elasticsearch_record 1.2.1 → 1.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32688db9e3220d919f454f7c4c9445b006d43299d66322f4586af9d426fdc907
4
- data.tar.gz: 9169c9110e662d647f7eddeddae7fa3497a03ad36486d85c001e762af5c756df
3
+ metadata.gz: cdb71bb8689c67cd7a2ef1add3b7ad0ab6710cbb5833313cb3f474267c39e43e
4
+ data.tar.gz: 06ec37ac16f5adb110da8ffa08c9c44fc20993be3db12bf8033315cfa9611fc3
5
5
  SHA512:
6
- metadata.gz: 9221a04be02abcb7d8f36da24f3b7e2d061b778233b8190bb14b906bf54b2a8d881a870f9c0b1b65d90b3ff2418fe8ee21d828b35dceac85b2f8bc766677c73c
7
- data.tar.gz: a1b4e64cf4a8c33d8ce3aaeb89fedd5b7847a648a1dcfccc2b15ecfba0f99d0fbf9a0c94237edcd6ef0feb8d4ef40889ab00c2b8a6bc50773b4982cd5e326149
6
+ metadata.gz: 929f5df6456203e7bce466d62836805bb9a75ff5a89856c75cd1ba187a95e05f51aa3ad676c3058d7ad95d1295db1422571964240182000bef59a8cdb95181bc
7
+ data.tar.gz: 7f785864f92bc6f3243ea081236327ff7c600833cdf74a11d59239f31551d928dc7b8bb1b4952ec38aadaa8d0174ac2a7ceeebae100a247c3534ef4c1609e484
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- elasticsearch_record (1.2.1)
4
+ elasticsearch_record (1.2.3)
5
5
  activerecord (~> 7.0.0)
6
6
  elasticsearch (~> 8.4)
7
7
 
data/docs/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # ElasticsearchRecord - CHANGELOG
2
2
 
3
+ ## [1.2.3] - 2022-12-12
4
+ * [fix] `change_table` 'if_exists: true' returns at the wrong state
5
+
6
+ ## [1.2.2] - 2022-12-12
7
+ * [add] `:if_exists` option for `change_table`
8
+ * [fix] executing `_compute_table_name` irregular on some schema methods and some not - not only executes on `create_table` and `change_table`
9
+ * [ref] private `_compute_table_name` method to public `compute_table_name`
10
+ * [ref] drop `_compute_table_name` on methods: open_table, close_table, truncate_table, drop_table, block_table, unblock_table & clone_table
11
+
3
12
  ## [1.2.1] - 2022-12-12
4
13
  * [add] `ActiveRecord::ConnectionAdapters::Elasticsearch::SchemaStatements#access_id_fielddata?` which checks the clusters setting 'indices.id_field_data.enabled' to determinate if a general sorting on the +_id+-field is possible or not.
5
14
  * [add] `ElasticsearchRecord::Relation#ordered_relation` which overwrites the original method to check against the `#access_id_fielddata?` method
@@ -38,9 +38,6 @@ module ActiveRecord
38
38
  # @param [String] table_name
39
39
  # @return [Boolean] acknowledged status
40
40
  def open_table(table_name)
41
- # IMPORTANT: compute will add possible configured prefix & suffix
42
- table_name = _compute_table_name(table_name)
43
-
44
41
  schema_cache.clear_data_source_cache!(table_name)
45
42
  api(:indices, :open, { index: table_name }, 'OPEN TABLE').dig('acknowledged')
46
43
  end
@@ -59,9 +56,6 @@ module ActiveRecord
59
56
  # @param [String] table_name
60
57
  # @return [Boolean] acknowledged status
61
58
  def close_table(table_name)
62
- # IMPORTANT: compute will add possible configured prefix & suffix
63
- table_name = _compute_table_name(table_name)
64
-
65
59
  schema_cache.clear_data_source_cache!(table_name)
66
60
  api(:indices, :close, { index: table_name }, 'CLOSE TABLE').dig('acknowledged')
67
61
  end
@@ -84,9 +78,6 @@ module ActiveRecord
84
78
  # @param [String] table_name
85
79
  # @return [Boolean] acknowledged status
86
80
  def truncate_table(table_name)
87
- # IMPORTANT: compute will add possible configured prefix & suffix
88
- table_name = _compute_table_name(table_name)
89
-
90
81
  # force: automatically drops an existing index
91
82
  create_table(table_name, force: true, **table_schema(table_name))
92
83
  end
@@ -111,9 +102,6 @@ module ActiveRecord
111
102
  # @param [Boolean] if_exists
112
103
  # @return [Array] acknowledged status
113
104
  def drop_table(table_name, if_exists: false, **)
114
- # IMPORTANT: compute will add possible configured prefix & suffix
115
- table_name = _compute_table_name(table_name)
116
-
117
105
  schema_cache.clear_data_source_cache!(table_name)
118
106
  api(:indices, :delete, { index: table_name, ignore: (if_exists ? 404 : nil) }, 'DROP TABLE').dig('acknowledged')
119
107
  end
@@ -123,9 +111,6 @@ module ActiveRecord
123
111
  # @param [Symbol] block_name The block to add (one of :read, :write, :read_only or :metadata)
124
112
  # @return [Boolean] acknowledged status
125
113
  def block_table(table_name, block_name = :write)
126
- # IMPORTANT: compute will add possible configured prefix & suffix
127
- table_name = _compute_table_name(table_name)
128
-
129
114
  api(:indices, :add_block, { index: table_name, block: block_name }, "BLOCK #{block_name.to_s.upcase} TABLE").dig('acknowledged')
130
115
  end
131
116
 
@@ -135,9 +120,6 @@ module ActiveRecord
135
120
  # @param [Symbol] block_name The block to add (one of :read, :write, :read_only or :metadata)
136
121
  # @return [Boolean] acknowledged status
137
122
  def unblock_table(table_name, block_name = nil)
138
- # IMPORTANT: compute will add possible configured prefix & suffix
139
- table_name = _compute_table_name(table_name)
140
-
141
123
  if block_name.nil?
142
124
  change_table(table_name) do |t|
143
125
  t.change_setting('index.blocks.read', false)
@@ -157,10 +139,6 @@ module ActiveRecord
157
139
  # @param [Hash] options
158
140
  # @param [Proc] block
159
141
  def clone_table(table_name, target_name, **options, &block)
160
- # IMPORTANT: compute will add possible configured prefix & suffix
161
- table_name = _compute_table_name(table_name)
162
- target_name = _compute_table_name(target_name)
163
-
164
142
  # create new definition
165
143
  definition = clone_table_definition(table_name, target_name, **extract_table_options!(options), &block)
166
144
 
@@ -191,7 +169,7 @@ module ActiveRecord
191
169
  # @return [Boolean] acknowledged status
192
170
  def create_table(table_name, force: false, copy_from: nil, if_not_exists: false, **options)
193
171
  # IMPORTANT: compute will add possible configured prefix & suffix
194
- table_name = _compute_table_name(table_name)
172
+ table_name = compute_table_name(table_name)
195
173
 
196
174
  return if if_not_exists && table_exists?(table_name)
197
175
 
@@ -226,9 +204,11 @@ module ActiveRecord
226
204
  # t.mapping :name, :string
227
205
  # # Other column alterations here
228
206
  # end
229
- def change_table(table_name, **options)
207
+ def change_table(table_name, if_exists: false, **options)
230
208
  # IMPORTANT: compute will add possible configured prefix & suffix
231
- table_name = _compute_table_name(table_name)
209
+ table_name = compute_table_name(table_name)
210
+
211
+ return if if_exists && !table_exists?(table_name)
232
212
 
233
213
  definition = update_table_definition(table_name, self, **options)
234
214
 
@@ -303,17 +283,22 @@ module ActiveRecord
303
283
  _exec_change_table_with(:delete_alias, table_name, name, **options, &block)
304
284
  end
305
285
 
306
- private
307
-
308
- def _compute_table_name(table_name)
286
+ # computes a provided +table_name+ with optionally configured +table_name_prefix+ & +table_name_suffix+.
287
+ # @param [String] table_name
288
+ # @return [String]
289
+ def compute_table_name(table_name)
290
+ table_name = table_name.to_s
291
+
309
292
  # HINT: +"" creates a new +unfrozen+ string!
310
293
  str = +""
311
- str << table_name_prefix unless table_name.to_s.start_with?(table_name_prefix)
294
+ str << table_name_prefix unless table_name.start_with?(table_name_prefix)
312
295
  str << table_name
313
- str << table_name_suffix unless table_name.to_s.end_with?(table_name_suffix)
296
+ str << table_name_suffix unless table_name.end_with?(table_name_suffix)
314
297
  str
315
298
  end
316
299
 
300
+ private
301
+
317
302
  def _exec_change_table_with(method, table_name, *args, **kwargs, &block)
318
303
  change_table(table_name) do |t|
319
304
  t.send(method, *args, **kwargs, &block)
@@ -9,7 +9,7 @@ module ElasticsearchRecord
9
9
  module VERSION
10
10
  MAJOR = 1
11
11
  MINOR = 2
12
- TINY = 1
12
+ TINY = 3
13
13
  PRE = nil
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticsearch_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Gonsior