miscellany 0.1.14 → 0.1.16

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: 735168167aa19b15e9b56db6a20025dc7374526319744526d08238577caf4983
4
- data.tar.gz: c4df4a5c364cb04632ab017f2e7393d9f8dc5f5228ba7da41303d8a7595606ea
3
+ metadata.gz: d919e8dffeb9e12448e4e1a65f0e3c3015b9dd759164e746a59560af0797ea32
4
+ data.tar.gz: dd0a2c007d8980d1dd7d5995571aa7a9e1a4346099c23c279fd4f7c853851535
5
5
  SHA512:
6
- metadata.gz: 94f572010617e6295e19d0167c05cb59b683496f87502a83bb53f91c3303fb11cfb65a7c7f0a2c85c254896700c22bc9d441e02ebb09a93741cb4867e13596a3
7
- data.tar.gz: 8064920b660a82326a0172ac4828c95bf072b65ec3e9e7fe87dcb842ace9ec4a11072e0095eb73e4247c8d83e5e412bd4bd62947b35edefb9b82576b1a5e9423
6
+ metadata.gz: 97f892b692386c7c924a2b082ddb34787a6870c9bad7cc378d426a6fe8e288a7d47f33b570596c4e948a24decc51882b9da859d8e9fef3d5cbe8ad13c49cecdf
7
+ data.tar.gz: 0115b26046212f6d56bbac869097a3e7b69e2c2b1756d3b33b38a02b9b361df61c478f2d930f343577e53bc1f3181b83e9cbcee1be2e188e6640a38901b8c357
@@ -60,11 +60,11 @@ module Miscellany
60
60
  offset = 0
61
61
  loop do
62
62
  batch = ActiveRecord::Base.connection.exec_query(
63
- "SELECT * FROM #{tbl} LIMIT #{batch_size} OFFSET #{offset}",
63
+ "SELECT * FROM #{tbl} LIMIT #{of} OFFSET #{offset}",
64
64
  )
65
65
  augment_batch(batch)
66
66
  yield batch
67
- offset += batch_size
67
+ offset += of
68
68
  break if batch.empty?
69
69
  end
70
70
  ensure
@@ -98,7 +98,7 @@ module Miscellany
98
98
  end
99
99
 
100
100
  begin
101
- slice[:sort] = options[:sort_parser]&.parse(arg[:sort], ignore_errors: true)
101
+ slice[:sort] = options[:sort_parser]&.parse(arg[:sort], ignore_errors: true, default: true)
102
102
  rescue Miscellany::SortLang::Parser::SortParsingError => e
103
103
  raise HttpErrorHandling::HttpError, message: e.message
104
104
  end
@@ -60,8 +60,8 @@ module Miscellany
60
60
  false
61
61
  end
62
62
 
63
- def parse(sortstr, ignore_errors: true)
64
- (sortstr || '').split(',').map do |s|
63
+ def parse(sortstr, ignore_errors: true, default: :true)
64
+ sorts = (sortstr || '').split(',').map do |s|
65
65
  m = s.strip.match(/^(\w+)(?: (ASC|DESC))?$/)
66
66
 
67
67
  if m.nil?
@@ -78,7 +78,11 @@ module Miscellany
78
78
  sort = resolved_sort.dup
79
79
  sort[:order] = m[2] if m[2].present? && !sort[:force_order]
80
80
  sort
81
- end.compact.presence
81
+ end
82
+
83
+ sorts << self.default if default == :append || default && !sorts.compact.present?
84
+
85
+ sorts.compact.presence
82
86
  end
83
87
 
84
88
  protected
@@ -1,3 +1,3 @@
1
1
  module Miscellany
2
- VERSION = "0.1.14".freeze
2
+ VERSION = "0.1.16".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miscellany
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan Knapp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-07 00:00:00.000000000 Z
11
+ date: 2023-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails