effective_resources 2.0.3 → 2.1.0

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: 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