trk_datatables 0.2.16 → 0.2.18

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.
@@ -0,0 +1,291 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ trk_datatables (0.2.17)
5
+ activesupport
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actioncable (7.1.6)
11
+ actionpack (= 7.1.6)
12
+ activesupport (= 7.1.6)
13
+ nio4r (~> 2.0)
14
+ websocket-driver (>= 0.6.1)
15
+ zeitwerk (~> 2.6)
16
+ actionmailbox (7.1.6)
17
+ actionpack (= 7.1.6)
18
+ activejob (= 7.1.6)
19
+ activerecord (= 7.1.6)
20
+ activestorage (= 7.1.6)
21
+ activesupport (= 7.1.6)
22
+ mail (>= 2.7.1)
23
+ net-imap
24
+ net-pop
25
+ net-smtp
26
+ actionmailer (7.1.6)
27
+ actionpack (= 7.1.6)
28
+ actionview (= 7.1.6)
29
+ activejob (= 7.1.6)
30
+ activesupport (= 7.1.6)
31
+ mail (~> 2.5, >= 2.5.4)
32
+ net-imap
33
+ net-pop
34
+ net-smtp
35
+ rails-dom-testing (~> 2.2)
36
+ actionpack (7.1.6)
37
+ actionview (= 7.1.6)
38
+ activesupport (= 7.1.6)
39
+ cgi
40
+ nokogiri (>= 1.8.5)
41
+ racc
42
+ rack (>= 2.2.4)
43
+ rack-session (>= 1.0.1)
44
+ rack-test (>= 0.6.3)
45
+ rails-dom-testing (~> 2.2)
46
+ rails-html-sanitizer (~> 1.6)
47
+ actiontext (7.1.6)
48
+ actionpack (= 7.1.6)
49
+ activerecord (= 7.1.6)
50
+ activestorage (= 7.1.6)
51
+ activesupport (= 7.1.6)
52
+ globalid (>= 0.6.0)
53
+ nokogiri (>= 1.8.5)
54
+ actionview (7.1.6)
55
+ activesupport (= 7.1.6)
56
+ builder (~> 3.1)
57
+ cgi
58
+ erubi (~> 1.11)
59
+ rails-dom-testing (~> 2.2)
60
+ rails-html-sanitizer (~> 1.6)
61
+ activejob (7.1.6)
62
+ activesupport (= 7.1.6)
63
+ globalid (>= 0.3.6)
64
+ activemodel (7.1.6)
65
+ activesupport (= 7.1.6)
66
+ activerecord (7.1.6)
67
+ activemodel (= 7.1.6)
68
+ activesupport (= 7.1.6)
69
+ timeout (>= 0.4.0)
70
+ activestorage (7.1.6)
71
+ actionpack (= 7.1.6)
72
+ activejob (= 7.1.6)
73
+ activerecord (= 7.1.6)
74
+ activesupport (= 7.1.6)
75
+ marcel (~> 1.0)
76
+ activesupport (7.1.6)
77
+ base64
78
+ benchmark (>= 0.3)
79
+ bigdecimal
80
+ concurrent-ruby (~> 1.0, >= 1.0.2)
81
+ connection_pool (>= 2.2.5)
82
+ drb
83
+ i18n (>= 1.6, < 2)
84
+ logger (>= 1.4.2)
85
+ minitest (>= 5.1)
86
+ mutex_m
87
+ securerandom (>= 0.3)
88
+ tzinfo (~> 2.0)
89
+ appraisal (2.5.0)
90
+ bundler
91
+ rake
92
+ thor (>= 0.14.0)
93
+ ast (2.4.3)
94
+ base64 (0.3.0)
95
+ benchmark (0.5.0)
96
+ bigdecimal (4.1.2)
97
+ builder (3.3.0)
98
+ byebug (11.1.3)
99
+ cgi (0.5.2)
100
+ concurrent-ruby (1.3.7)
101
+ connection_pool (2.5.5)
102
+ crass (1.0.7)
103
+ database_cleaner (2.1.0)
104
+ database_cleaner-active_record (>= 2, < 3)
105
+ database_cleaner-active_record (2.2.2)
106
+ activerecord (>= 5.a)
107
+ database_cleaner-core (~> 2.0)
108
+ database_cleaner-core (2.1.0)
109
+ date (3.5.1)
110
+ drb (2.2.3)
111
+ erb (4.0.4.1)
112
+ cgi (>= 0.3.3)
113
+ erubi (1.13.1)
114
+ globalid (1.4.0)
115
+ activesupport (>= 6.1)
116
+ i18n (1.14.8)
117
+ concurrent-ruby (~> 1.0)
118
+ io-console (0.8.2)
119
+ irb (1.18.0)
120
+ pp (>= 0.6.0)
121
+ prism (>= 1.3.0)
122
+ rdoc (>= 4.0.0)
123
+ reline (>= 0.4.2)
124
+ json (2.20.0)
125
+ language_server-protocol (3.17.0.5)
126
+ lint_roller (1.1.0)
127
+ logger (1.7.0)
128
+ loofah (2.25.1)
129
+ crass (~> 1.0.2)
130
+ nokogiri (>= 1.12.0)
131
+ mail (2.9.0)
132
+ logger
133
+ mini_mime (>= 0.1.1)
134
+ net-imap
135
+ net-pop
136
+ net-smtp
137
+ marcel (1.2.1)
138
+ mini_mime (1.1.5)
139
+ mini_portile2 (2.8.9)
140
+ minitest (5.26.1)
141
+ minitest-color (0.0.2)
142
+ minitest (~> 5)
143
+ mutex_m (0.3.0)
144
+ net-imap (0.4.24)
145
+ date
146
+ net-protocol
147
+ net-pop (0.1.2)
148
+ net-protocol
149
+ net-protocol (0.2.2)
150
+ timeout
151
+ net-smtp (0.5.1)
152
+ net-protocol
153
+ nio4r (2.7.5)
154
+ nokogiri (1.17.2)
155
+ mini_portile2 (~> 2.8.2)
156
+ racc (~> 1.4)
157
+ nokogiri (1.17.2-arm64-darwin)
158
+ racc (~> 1.4)
159
+ parallel (1.28.0)
160
+ parser (3.3.11.1)
161
+ ast (~> 2.4.1)
162
+ racc
163
+ pg (1.6.3-arm64-darwin)
164
+ pp (0.6.4)
165
+ prettyprint
166
+ prettyprint (0.2.0)
167
+ prism (1.9.0)
168
+ psych (5.4.0)
169
+ date
170
+ stringio
171
+ racc (1.8.1)
172
+ rack (3.2.6)
173
+ rack-session (2.1.2)
174
+ base64 (>= 0.1.0)
175
+ rack (>= 3.0.0)
176
+ rack-test (2.2.0)
177
+ rack (>= 1.3)
178
+ rackup (2.3.1)
179
+ rack (>= 3)
180
+ rails (7.1.6)
181
+ actioncable (= 7.1.6)
182
+ actionmailbox (= 7.1.6)
183
+ actionmailer (= 7.1.6)
184
+ actionpack (= 7.1.6)
185
+ actiontext (= 7.1.6)
186
+ actionview (= 7.1.6)
187
+ activejob (= 7.1.6)
188
+ activemodel (= 7.1.6)
189
+ activerecord (= 7.1.6)
190
+ activestorage (= 7.1.6)
191
+ activesupport (= 7.1.6)
192
+ bundler (>= 1.15.0)
193
+ railties (= 7.1.6)
194
+ rails-dom-testing (2.3.0)
195
+ activesupport (>= 5.0.0)
196
+ minitest
197
+ nokogiri (>= 1.6)
198
+ rails-html-sanitizer (1.7.0)
199
+ loofah (~> 2.25)
200
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
201
+ railties (7.1.6)
202
+ actionpack (= 7.1.6)
203
+ activesupport (= 7.1.6)
204
+ cgi
205
+ irb
206
+ rackup (>= 1.0.0)
207
+ rake (>= 12.2)
208
+ thor (~> 1.0, >= 1.2.2)
209
+ tsort (>= 0.2)
210
+ zeitwerk (~> 2.6)
211
+ rainbow (3.1.1)
212
+ rake (13.4.2)
213
+ rdoc (7.2.0)
214
+ erb
215
+ psych (>= 4.0.0)
216
+ tsort
217
+ regexp_parser (2.12.0)
218
+ reline (0.6.3)
219
+ io-console (~> 0.5)
220
+ rubocop (1.87.0)
221
+ json (~> 2.3)
222
+ language_server-protocol (~> 3.17.0.2)
223
+ lint_roller (~> 1.1.0)
224
+ parallel (>= 1.10)
225
+ parser (>= 3.3.0.2)
226
+ rainbow (>= 2.2.2, < 4.0)
227
+ regexp_parser (>= 2.9.3, < 3.0)
228
+ rubocop-ast (>= 1.49.0, < 2.0)
229
+ ruby-progressbar (~> 1.7)
230
+ unicode-display_width (>= 2.4.0, < 4.0)
231
+ rubocop-ast (1.49.1)
232
+ parser (>= 3.3.7.2)
233
+ prism (~> 1.7)
234
+ rubocop-performance (1.26.1)
235
+ lint_roller (~> 1.1)
236
+ rubocop (>= 1.75.0, < 2.0)
237
+ rubocop-ast (>= 1.47.1, < 2.0)
238
+ ruby-progressbar (1.13.0)
239
+ securerandom (0.3.2)
240
+ sqlite3 (2.0.4)
241
+ mini_portile2 (~> 2.8.0)
242
+ sqlite3 (2.0.4-arm64-darwin)
243
+ standard (1.55.0)
244
+ language_server-protocol (~> 3.17.0.2)
245
+ lint_roller (~> 1.0)
246
+ rubocop (~> 1.87.0)
247
+ standard-custom (~> 1.0.0)
248
+ standard-performance (~> 1.8)
249
+ standard-custom (1.0.2)
250
+ lint_roller (~> 1.0)
251
+ rubocop (~> 1.50)
252
+ standard-performance (1.9.0)
253
+ lint_roller (~> 1.1)
254
+ rubocop-performance (~> 1.26.0)
255
+ stringio (3.2.0)
256
+ thor (1.5.0)
257
+ timecop (0.9.11)
258
+ timeout (0.6.1)
259
+ tsort (0.2.0)
260
+ tzinfo (2.0.6)
261
+ concurrent-ruby (~> 1.0)
262
+ unicode-display_width (3.2.0)
263
+ unicode-emoji (~> 4.1)
264
+ unicode-emoji (4.2.0)
265
+ websocket-driver (0.8.2)
266
+ base64
267
+ websocket-extensions (>= 0.1.0)
268
+ websocket-extensions (0.1.5)
269
+ zeitwerk (2.6.18)
270
+
271
+ PLATFORMS
272
+ arm64-darwin-24
273
+
274
+ DEPENDENCIES
275
+ activerecord (>= 5.0)
276
+ appraisal
277
+ bundler (~> 2.0)
278
+ byebug
279
+ database_cleaner
280
+ minitest (~> 5.0)
281
+ minitest-color
282
+ pg
283
+ rails (~> 7.1.0)
284
+ rake (>= 10.0)
285
+ sqlite3 (>= 2.0.0)
286
+ standard
287
+ timecop
288
+ trk_datatables!
289
+
290
+ BUNDLED WITH
291
+ 2.7.2
@@ -83,10 +83,12 @@ module TrkDatatables
83
83
 
84
84
  def _parse_from_to(from, to, column_key_option)
85
85
  case column_key_option[:column_type_in_db]
86
- when :integer, :float
87
- # we do not need to cast from string since range will do automatically
88
- parsed_from = from
89
- parsed_to = to
86
+ when :integer
87
+ parsed_from = _parse_integer(from)
88
+ parsed_to = _parse_integer(to)
89
+ when :float
90
+ parsed_from = _parse_float(from)
91
+ parsed_to = _parse_float(to)
90
92
  when :date
91
93
  parsed_from = _parse_in_zone(from)&.to_date
92
94
  parsed_to = _parse_in_zone(to)&.to_date&.end_of_day
@@ -101,6 +103,22 @@ module TrkDatatables
101
103
  [parsed_from, parsed_to]
102
104
  end
103
105
 
106
+ def _parse_integer(value)
107
+ return nil if value.blank?
108
+
109
+ Integer(value)
110
+ rescue ArgumentError
111
+ nil
112
+ end
113
+
114
+ def _parse_float(value)
115
+ return nil if value.blank?
116
+
117
+ Float(value)
118
+ rescue ArgumentError
119
+ nil
120
+ end
121
+
104
122
  def _parse_in_zone(time)
105
123
  return nil if time.blank?
106
124
 
@@ -3,6 +3,8 @@ module TrkDatatables
3
3
  BETWEEN_SEPARATOR = " - ".freeze
4
4
  MULTIPLE_OPTION_SEPARATOR = "|".freeze
5
5
  # maximum page length = 100 (we should not believe params)
6
+ ORDER = "order".freeze
7
+ PER_PAGE = "per_page".freeze
6
8
 
7
9
  class Error < StandardError
8
10
  end
@@ -110,12 +112,12 @@ module TrkDatatables
110
112
  @dt_orders_or_default = []
111
113
  elsif @dt_params.dt_orders.present?
112
114
  @dt_orders_or_default = @dt_params.dt_orders
113
- @preferences.set :order, @dt_params.dt_orders
115
+ @preferences.set ORDER, @dt_params.dt_orders
114
116
  else
115
117
  check_value = lambda { |r|
116
118
  r.is_a?(Array) && r[0].is_a?(Array) && r[0][0].is_a?(Integer) && r[0][0] < @column_key_options.size
117
119
  }
118
- @dt_orders_or_default = @preferences.get(:order, check_value) || default_order
120
+ @dt_orders_or_default = @preferences.get(ORDER, check_value) || default_order
119
121
  end
120
122
  @dt_orders_or_default
121
123
  end
@@ -133,10 +135,10 @@ module TrkDatatables
133
135
 
134
136
  @dt_per_page_or_default =
135
137
  if @dt_params.dt_per_page.present?
136
- @preferences.set :per_page, @dt_params.dt_per_page
138
+ @preferences.set PER_PAGE, @dt_params.dt_per_page
137
139
  @dt_params.dt_per_page
138
140
  else
139
- @preferences.get(:per_page) || default_page_length
141
+ @preferences.get(PER_PAGE) || default_page_length
140
142
  end
141
143
  end
142
144
 
@@ -13,7 +13,8 @@ module TrkDatatables
13
13
  def get(key, check_value = nil)
14
14
  return unless @holder
15
15
 
16
- result = @holder.send(@field).dig KEY_IN_PREFERENCES, @class_name, key
16
+ values = @holder.send(@field).dig KEY_IN_PREFERENCES, @class_name
17
+ result = values&.fetch(key, nil) || values&.fetch(key.to_s, nil)
17
18
  return result if check_value.nil?
18
19
  result if check_value.call result
19
20
  end
@@ -21,10 +22,25 @@ module TrkDatatables
21
22
  def set(key, value)
22
23
  return unless @holder
23
24
 
24
- h = {KEY_IN_PREFERENCES => {@class_name => {key => value}}}
25
+ h = {KEY_IN_PREFERENCES => {@class_name => {key.to_s => _value_for_serialization(value)}}}
25
26
  @holder.send(:"#{@field}=", {}) if @holder.send(@field).nil?
26
27
  @holder.send(@field).deep_merge! h
27
28
  @holder.save!
28
29
  end
30
+
31
+ private
32
+
33
+ def _value_for_serialization(value)
34
+ case value
35
+ when Array
36
+ value.map { |v| _value_for_serialization v }
37
+ when Hash
38
+ value.transform_values { |v| _value_for_serialization v }
39
+ when Symbol
40
+ value.to_s
41
+ else
42
+ value
43
+ end
44
+ end
29
45
  end
30
46
  end
@@ -1,3 +1,3 @@
1
1
  module TrkDatatables
2
- VERSION = "0.2.16".freeze
2
+ VERSION = "0.2.18".freeze
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require "trk_datatables/version"
2
2
  # libs
3
+ require "active_support"
3
4
  require "active_support/core_ext/hash/indifferent_access"
4
5
  require "active_support/core_ext/hash/keys"
5
6
  require "active_support/core_ext/string/inflections"
@@ -39,15 +39,16 @@ Gem::Specification.new do |spec|
39
39
  # for HashWithIndifferentAccess
40
40
  spec.add_dependency "activesupport"
41
41
 
42
- spec.add_development_dependency "activerecord", "~> 6.0"
42
+ spec.add_development_dependency "activerecord", ">= 5.0"
43
43
  spec.add_development_dependency "bundler", "~> 2.0"
44
44
  spec.add_development_dependency "byebug"
45
45
  spec.add_development_dependency "database_cleaner"
46
46
  spec.add_development_dependency "minitest", "~> 5.0"
47
47
  spec.add_development_dependency "minitest-color"
48
48
  spec.add_development_dependency "pg"
49
- spec.add_development_dependency "rake", "~> 10.0"
50
- spec.add_development_dependency "sqlite3"
49
+ spec.add_development_dependency "rake", ">= 10.0"
50
+ spec.add_development_dependency "sqlite3", ">= 1.4"
51
51
  spec.add_development_dependency "timecop"
52
52
  spec.add_development_dependency "standard"
53
+ spec.add_development_dependency "appraisal"
53
54
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trk_datatables
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.16
4
+ version: 0.2.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dusan Orlovic
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-04-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -28,16 +27,16 @@ dependencies:
28
27
  name: activerecord
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - "~>"
30
+ - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '6.0'
32
+ version: '5.0'
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
- - - "~>"
37
+ - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '6.0'
39
+ version: '5.0'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: bundler
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -126,14 +125,14 @@ dependencies:
126
125
  name: rake
127
126
  requirement: !ruby/object:Gem::Requirement
128
127
  requirements:
129
- - - "~>"
128
+ - - ">="
130
129
  - !ruby/object:Gem::Version
131
130
  version: '10.0'
132
131
  type: :development
133
132
  prerelease: false
134
133
  version_requirements: !ruby/object:Gem::Requirement
135
134
  requirements:
136
- - - "~>"
135
+ - - ">="
137
136
  - !ruby/object:Gem::Version
138
137
  version: '10.0'
139
138
  - !ruby/object:Gem::Dependency
@@ -142,14 +141,14 @@ dependencies:
142
141
  requirements:
143
142
  - - ">="
144
143
  - !ruby/object:Gem::Version
145
- version: '0'
144
+ version: '1.4'
146
145
  type: :development
147
146
  prerelease: false
148
147
  version_requirements: !ruby/object:Gem::Requirement
149
148
  requirements:
150
149
  - - ">="
151
150
  - !ruby/object:Gem::Version
152
- version: '0'
151
+ version: '1.4'
153
152
  - !ruby/object:Gem::Dependency
154
153
  name: timecop
155
154
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +177,20 @@ dependencies:
178
177
  - - ">="
179
178
  - !ruby/object:Gem::Version
180
179
  version: '0'
180
+ - !ruby/object:Gem::Dependency
181
+ name: appraisal
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
181
194
  description: Html render first page, sort and filter...
182
195
  email:
183
196
  - duleorlovic@gmail.com
@@ -188,6 +201,7 @@ files:
188
201
  - ".gitignore"
189
202
  - ".ruby-version"
190
203
  - ".travis.yml"
204
+ - Appraisals
191
205
  - CHANGELOG.md
192
206
  - CODE_OF_CONDUCT.md
193
207
  - Gemfile
@@ -197,6 +211,15 @@ files:
197
211
  - Rakefile
198
212
  - bin/console
199
213
  - bin/setup
214
+ - gemfiles/.bundle/config
215
+ - gemfiles/rails_5.gemfile
216
+ - gemfiles/rails_5.gemfile.lock
217
+ - gemfiles/rails_6.gemfile
218
+ - gemfiles/rails_6.gemfile.lock
219
+ - gemfiles/rails_7.gemfile
220
+ - gemfiles/rails_7.gemfile.lock
221
+ - gemfiles/rails_7_1.gemfile
222
+ - gemfiles/rails_7_1.gemfile.lock
200
223
  - lib/generators/templates/trk_datatable.rb
201
224
  - lib/generators/trk_datatables/trk_datatables_generator.rb
202
225
  - lib/trk_datatables.rb
@@ -220,7 +243,6 @@ metadata:
220
243
  source_code_uri: https://github.com/trkin/trk_datatables
221
244
  changelog_uri: https://github.com/trkin/trk_datatables/blob/master/CHANGELOG.md
222
245
  yard.run: yri
223
- post_install_message:
224
246
  rdoc_options: []
225
247
  require_paths:
226
248
  - lib
@@ -235,8 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
235
257
  - !ruby/object:Gem::Version
236
258
  version: '0'
237
259
  requirements: []
238
- rubygems_version: 3.2.15
239
- signing_key:
260
+ rubygems_version: 3.6.9
240
261
  specification_version: 4
241
262
  summary: Gem that simplify using datatables with Ruby on Rails and Sinatra.
242
263
  test_files: []