recordselect 4.0.2 → 4.0.3

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: 0e5ff734695b0b0234dd6ee6307440e1de3a3a72f87798026b18b0e0739e26b1
4
- data.tar.gz: a12a0c135cc28dcc72121be2361233b347c0915c8590f31aab566d97b28467fa
3
+ metadata.gz: 989e8ccab3b2a8123cba1e96bc4afae3038ff5091cf7c35c883435ce12ecea82
4
+ data.tar.gz: 96a8a2072f8e3dce451abade379580ae53ac8077c5aa1d4e681b955cae6a36fb
5
5
  SHA512:
6
- metadata.gz: 2149f1cfa9f94456836fd71d3c5a3f6d4e636c01d8fb3b0c9ea2138b785f902513ec9824c9e9f489099dde7cd544356aa55c93d710a8ba510a8490fe7135a6d2
7
- data.tar.gz: ea348566bafb9430145039802fcdd8c7bb7053f025e0bde06520a79a1974b6d7dbb7b72c0af3005696149e8ff56a2be6cd7bee236b8ffd96e884d015b2c7eb9f
6
+ metadata.gz: 21dddd73eb6dec6530ba21899f94a5e690e81fb5bd13669e4deb1ee7e81b355db0ba5f66a9444d06a9f749ac8ab43dca556edb4f1ea6c1f27e27d332cb4e6c7e
7
+ data.tar.gz: b694520b3b5b295e57a9c274f2e4c13924df79bc0d1b8164e35a6689be8f63a14ecee3981941a92f248aae3de8b08b5b6c4114e7e665de1487ef9cad8862d15a
data/README CHANGED
@@ -45,7 +45,3 @@ Either using assets pipeline or importmap, it will be loaded when requiring or i
45
45
 
46
46
  = DEPENDENCIES
47
47
  This depends on the excellent Paginator gem by Bruce Williams. This simple gem is available at paginator.rubyforge.org.
48
-
49
- It should autoselect js framework, but you can select :jquery or :prototype framework with config/initializer file:
50
- RecordSelect::Config.js_framework = :jquery
51
- RecordSelect::Config.js_framework = :prototype
@@ -3,12 +3,7 @@ module RecordSelect
3
3
  # :method => :get
4
4
  # params => [:page, :search]
5
5
  def browse
6
- conditions = record_select_conditions
7
- user_includes = record_select_includes
8
- query = conditions.inject(record_select_model.includes(user_includes)) do |query, cond|
9
- query.where(cond)
10
- end
11
- query = query.references(user_includes) if Rails::VERSION::MAJOR >= 4 && user_includes.present?
6
+ query = record_select_query
12
7
  @count = query.count if record_select_config.pagination?
13
8
  @count = @count.length if @count.is_a? Hash
14
9
  pager = ::Paginator.new(@count, record_select_config.per_page) do |offset, per_page|
@@ -67,6 +62,15 @@ module RecordSelect
67
62
 
68
63
  private
69
64
 
65
+ def record_select_query
66
+ query = record_select_model
67
+ user_includes = record_select_includes
68
+ query = query.includes(user_includes).references(user_includes) if user_includes.present?
69
+ query = query.joins(record_select_config.joins).distinct if record_select_config.joins.present?
70
+ query = query.left_joins(record_select_config.left_joins) if record_select_config.left_joins.present?
71
+ record_select_conditions.inject(query) { |query, cond| query.where(cond) }
72
+ end
73
+
70
74
  def record_select_views_path
71
75
  "record_select"
72
76
  end
@@ -7,8 +7,6 @@ module RecordSelect
7
7
  # * intelligent url params (e.g. params[:first_name] if first_name is a model column)
8
8
  # * specific conditions supplied by the developer
9
9
  def record_select_conditions
10
- conditions = []
11
-
12
10
  [
13
11
  record_select_conditions_from_search,
14
12
  *record_select_conditions_from_params,
@@ -9,11 +9,15 @@ module RecordSelect
9
9
  @order_by = options[:order_by]
10
10
  @full_text_search = options[:full_text_search]
11
11
  @label = options[:label]
12
+ @joins = options[:joins]
13
+ @left_joins = options[:left_joins]
12
14
  @include = options[:include]
13
15
  @pagination = options.include?(:pagination) ? options[:pagination] : true
14
16
  @toggle_search_mode = options[:toggle_search_mode]
15
17
  end
16
18
 
19
+ attr_reader :include, :joins, :left_joins
20
+
17
21
  def pagination?
18
22
  @pagination
19
23
  end
@@ -52,10 +56,6 @@ module RecordSelect
52
56
  @toggle_search_mode ? true : false
53
57
  end
54
58
 
55
- def include
56
- @include
57
- end
58
-
59
59
  # If a proc, must accept the record as an argument and return a descriptive string.
60
60
  #
61
61
  # If a symbol or string, must name a partial that renders a representation of the
@@ -2,7 +2,7 @@ module RecordSelect
2
2
  module Version
3
3
  MAJOR = 4
4
4
  MINOR = 0
5
- PATCH = 2
5
+ PATCH = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recordselect
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Cambra
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2025-01-15 00:00:00.000000000 Z
13
+ date: 2025-01-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler