effective_resources 2.0.3 → 2.1.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: 4fdcf01c69458d8e030d019b71b8f56dba8ed6eae878c626125baca1c798fc87
4
- data.tar.gz: 23c9425e10027572f282e93bde82e077e55aaf291600a64ee307beae3e7acd9a
3
+ metadata.gz: 22b266fe036432aaf679e5a695edcea2d17639a1bc5e1fa082d93b1317cdd1e7
4
+ data.tar.gz: dc3b135919307b5735aa5f34bb79633fa1532f2dbe9702ad995fad89e8886d7f
5
5
  SHA512:
6
- metadata.gz: f9f2ff6adccdbbb14d23b4d3bd19ddb6ecd08726468d55f9a414477e920c16549a153d97d06cc015809e337f5d25be9b0ee39cd60ade94229d61382391fec22f
7
- data.tar.gz: b66e45de9d79cc0332b4e33a91ca26666cf087617c7204796a90a1b5bdeee2e27baecf4e8188441de7db35b6b8a53ca8ceca8e72bcdd8b8ceab68674a026404a
6
+ metadata.gz: 757ba49ce72d18d953634a6baf91b4f71292cf04a55475808ef417970697470531d2f06c7db77356f2768f95c7fd85c05d3fde186b0c1a125f927e8af2882687
7
+ data.tar.gz: dea57f166262cbeeb8e43d7c2e730ab0b59c1eb43bc31e67f29801055128425c9414397d3050a508fb8872021280a5818da8fc7b087493d525040d03464609f9
@@ -49,19 +49,19 @@ module Effective
49
49
  .order(order_by_associated_conditions(associated(:addresses), sort: sort, direction: direction, limit: limit))
50
50
  .order(Arel.sql("#{sql_column(klass.primary_key)} #{sql_direction}"))
51
51
  when :active_storage
52
- relation.send("with_attached_#{name}").references("#{name}_attachment")
52
+ relation
53
+ .send("with_attached_#{name}")
54
+ .references("#{name}_attachment")
53
55
  .order(Arel.sql("active_storage_blobs.filename #{sql_direction}"))
54
56
  when :effective_roles
55
- relation.order(Arel.sql("#{sql_column(:roles_mask)} #{sql_direction}"))
56
- when :string, :text
57
57
  relation
58
- .order(Arel.sql(("ISNULL(#{sql_column}), " if mysql?).to_s + "#{sql_column}='' ASC, #{sql_column} #{sql_direction}" + (" NULLS LAST" if postgres?).to_s))
59
- when :time
60
- relation
61
- .order(Arel.sql(("ISNULL(#{sql_column}), " if mysql?).to_s + "EXTRACT(hour from #{sql_column}) #{sql_direction}, EXTRACT(minute from #{sql_column}) #{sql_direction}" + (" NULLS LAST" if postgres?).to_s))
58
+ .order(Arel.sql("#{sql_column(:roles_mask)} #{sql_direction}"))
59
+ when :time
60
+ relation
61
+ .order(Arel.sql("EXTRACT(hour from #{sql_column}) #{sql_direction}, EXTRACT(minute from #{sql_column}) #{sql_direction}"))
62
62
  else
63
63
  relation
64
- .order(Arel.sql(("ISNULL(#{sql_column}), " if mysql?).to_s + "#{sql_column} #{sql_direction}" + (" NULLS LAST" if postgres?).to_s))
64
+ .order(Arel.sql("#{sql_column} #{sql_direction}"))
65
65
  end
66
66
  end
67
67
 
@@ -200,6 +200,12 @@ module Effective
200
200
  return relation.where(klass.primary_key => maybe_id) if (maybe_id.to_i.to_s == maybe_id)
201
201
  end
202
202
 
203
+ # If the user specifies columns. Filter out invalid ones for this klass
204
+ if columns.present?
205
+ columns = Array(columns).map(&:to_s) - [nil, '']
206
+ columns = (columns & search_columns)
207
+ end
208
+
203
209
  # Otherwise, we fall back to a string/text search of all columns
204
210
  columns = Array(columns || search_columns).reject do |column|
205
211
  DO_NOT_SEARCH_EQUALS.any? { |value| column == value } ||
@@ -207,6 +213,8 @@ module Effective
207
213
  DO_NOT_SEARCH_END_WITH.any? { |value| column.end_with?(value) }
208
214
  end
209
215
 
216
+ return relation.none() if columns.blank?
217
+
210
218
  fuzzy = true unless fuzzy == false
211
219
 
212
220
  # Retval
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.0.3'.freeze
2
+ VERSION = '2.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-19 00:00:00.000000000 Z
11
+ date: 2022-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails