filterrific 2.1.2 → 3.0.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
  SHA1:
3
- metadata.gz: ad148673088fdac9894406d0412de1b2e7009244
4
- data.tar.gz: cddde32256c96b655c8ffabe6d9dce532d455ac4
3
+ metadata.gz: 771515c7025eb50eb134294d03a3a92006e7bd13
4
+ data.tar.gz: 050cae50516c688d0decb04e42867ea6b850368e
5
5
  SHA512:
6
- metadata.gz: f2b7d359e7bc6e8ccef3d1c30ac7d8fb187c4925ea94baff7476440ad7d69c246997d4c056bc3abbff18eaf550cf81f42aaad0200821c61390502d15ccf0b5d9
7
- data.tar.gz: 37d7a118f6d49f3251496630909ef4361dfc0467a115ea01d5e9fcc813b2e3b5370c976bb947f2442920cc991f09ea50bf74de3ec2a10fd0b8ac49027ed97239
6
+ metadata.gz: 4acf9f6d39fa6c2aa6bd1820fbfe760ca39df1acd19494cd9010afc5ae027d625291a34ad42f5ded6b737ac3a60a5ca143e9559c79fa2f40dd87df6e38417024
7
+ data.tar.gz: 6c15ede2f3ab0f0cf36a885dbc4d9826c13fa37978a916aed0718e123644efee580b7468178edd339490975fb58605dc1dcb7737d6287e57f0f739ab2cef3a13
data/CHANGELOG.md CHANGED
@@ -1,53 +1,25 @@
1
- * using the "sorted_by" magic method will add entries to select_options automatically
2
- filterrific(
3
- default_filter_params: { sorted_by: 'name_asc' },
4
- available_filters: [
5
- :with_country,
6
- ...
7
- ],
8
- search_query: {
9
- match_terms: :any, # [:all]
10
- auto_wildcard: :suffix, # [:prefix, :both, :none]
11
- columns: [:first_name, :email, :last_name],
12
- case_sensitive: false, # [true]
13
- },
14
- sorted_by: {
15
- name_asc: 'Name (A-Z)',
16
- name_desc: 'Name (Z-A)',
17
- },
18
- )
19
-
20
- filterrific(
21
- default_filter_params: { sorted_by: 'name_asc' },
22
- custom_scopes: [
23
- :with_country,
24
- ...
25
- ],
26
- lookup_filters: [ # column_value_filters:, value_filters:
27
- :with_country_id,
28
- :with_state,
29
- ]
30
- search_query: {
31
- match_terms: :any, # [:all]
32
- auto_wildcard: :suffix, # [:prefix, :both, :none]
33
- columns: [:first_name, :email, :last_name],
34
- case_sensitive: false, # [true]
35
- },
36
- sorted_by: {
37
- name_asc: 'Name (A-Z)',
38
- name_desc: 'Name (Z-A)',
39
- },
40
- )
41
-
42
- ### 2.1.2
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
+
8
+ Filterrific major versions match the Ruby on Rails major versions they work with.
9
+
10
+ ## [3.0.0] - Dec. 31, 2017
11
+
12
+ * This is the first release of Filterrific specifically geared towards Rails 3.x. No functional changes, just new versioning system and removal of unused code.
13
+
14
+ ## [2.1.2] - Nov. 11, 2016
43
15
 
44
16
  * Removed older way of initializing assets, relying on config/initializers/assets.rb for all versions of Rails.
45
17
 
46
- ### 2.1.1
18
+ ## [2.1.1] - Nov. 11, 2016
47
19
 
48
20
  * Reverted asset initialization back to working state for versions prior to Rails5.
49
21
 
50
- ## 2.1.0
22
+ ## [2.1.0] - Nov. 6, 2016
51
23
 
52
24
  * Updated filterrific for Rails 5 compatibility:
53
25
  * Turbolinks compatibility (thanks @olegantonyan)
@@ -58,7 +30,7 @@
58
30
  * Improved param casting to Int: hyphens and zeros (thanks @grit96)
59
31
 
60
32
 
61
- ### 2.0.5
33
+ ## [2.0.5] - May 4, 2015
62
34
 
63
35
  * Feature: Allow disabling of session persistence by passing `false` as
64
36
  `:persistence_id` option.
@@ -68,7 +40,7 @@
68
40
 
69
41
 
70
42
 
71
- ### 2.0.4
43
+ ## [2.0.4] - Mar. 10, 2015
72
44
 
73
45
  * Objectify nested params so that they render correctly on the form when
74
46
  restored from session or URL params.
@@ -77,26 +49,26 @@
77
49
 
78
50
 
79
51
 
80
- ### 2.0.3
52
+ ## [2.0.3] - Jan. 30, 2015
81
53
 
82
54
  * Cleaned up obsolete option names
83
55
 
84
56
 
85
57
 
86
- ### 2.0.2
58
+ ## [2.0.2] - Jan. 28, 2015
87
59
 
88
60
  * Fixed bugs in ActionControllerExtension
89
61
  * Improved test coverage
90
62
 
91
63
 
92
64
 
93
- ### 2.0.1
65
+ ## [2.0.1] - Jan. 28, 2015
94
66
 
95
67
  * Fixed regression with Rails 3.2 (doesn't support `#deep_stringify_keys`)
96
68
 
97
69
 
98
70
 
99
- # 2.0.0
71
+ ## [2.0.0] - Jan. 28, 2015
100
72
 
101
73
  API changes:
102
74
 
@@ -114,25 +86,25 @@ API changes:
114
86
 
115
87
 
116
88
 
117
- ### 1.4.3
89
+ ## [1.4.3] - Jan. 12, 2015
118
90
 
119
91
  * Handle case where Filterrific filter params are empty.
120
92
 
121
93
 
122
94
 
123
- ### 1.4.2
95
+ ## [1.4.2] - Oct. 18, 2014
124
96
 
125
97
  * Updated initialization of ActiveRecord and ActionView extensions again
126
98
 
127
99
 
128
100
 
129
- ### 1.4.1
101
+ ## [1.4.1] - Oct. 15, 2014
130
102
 
131
103
  * Updated initialization of ActiveRecord and ActionView extensions
132
104
 
133
105
 
134
106
 
135
- ### 1.4.0
107
+ ## [1.4.0] - Oct. 13, 2014
136
108
 
137
109
  * Better support for new versions of Rails (integration tests are done in filterrific_demo)
138
110
  * Fixed asset pipeline for filterrific-spinner.gif.
@@ -143,13 +115,13 @@ API changes:
143
115
 
144
116
 
145
117
 
146
- ### 1.3.1
118
+ ## [1.3.1] - Jun. 18, 2014
147
119
 
148
120
  * Changed ParamSet#select_options so that a complete hash can be assigned
149
121
 
150
122
 
151
123
 
152
- ## 1.3.0
124
+ ## [1.3.0] - Jun. 3, 2014
153
125
 
154
126
  * Added ParamSet#select_options (thanks @pnomolos).
155
127
  * Added ParamSet#signature to quickly test two param_sets for equality.
@@ -164,7 +136,7 @@ API changes:
164
136
 
165
137
 
166
138
 
167
- ## 1.2.0
139
+ ## [1.2.0] - May 16, 2013
168
140
 
169
141
  * Added simple wrapper for Filterrific::ParamSet.new so that it can be
170
142
  instantiated with Filterrific.new instead of Filterrific::ParamSet.new.
@@ -177,7 +149,7 @@ API changes:
177
149
 
178
150
 
179
151
 
180
- ## 1.1.0
152
+ ## [1.1.0] - May 8, 2013
181
153
 
182
154
  * Major refactor.
183
155
  * Added specs.
@@ -186,25 +158,25 @@ API changes:
186
158
 
187
159
 
188
160
 
189
- ### 1.0.1
161
+ ## [1.0.1] - Nov. 9, 2011
190
162
 
191
163
  * Bug fix: Replaced stringify_keys with map.to_s (filter_names is an Array, not a Hash!).
192
164
 
193
165
 
194
166
 
195
- # 1.0.0
167
+ ## [1.0.0] - Nov. 9, 2011
196
168
 
197
169
  * Support for Rails 3.1.
198
170
  * New model api.
199
171
 
200
172
 
201
173
 
202
- ## 0.1.0, released 2010-08-01
174
+ ## [0.1.0] - Aug. 1, 2010
203
175
 
204
176
  * Replicate functionality of Rails 2.3 version.
205
177
 
206
178
 
207
179
 
208
- ### 0.0.1, released 2010-07-30
180
+ ## [0.0.1] - Jul. 30, 2010
209
181
 
210
182
  * Initial setup.
data/README.md CHANGED
@@ -1,17 +1,24 @@
1
- Filterrific
2
- ===========
1
+ # Filterrific
3
2
 
4
3
  Filterrific is a Rails Engine plugin that makes it easy to filter,
5
4
  search, and sort your ActiveRecord lists:
6
5
 
6
+
7
+ ### Features
8
+
9
+ * Makes heavy use of ActiveRecord Scopes
10
+ * ActionController helpers to shuttle filter params from ActionView forms to ActiveRecord based models, and to return matching records back from ActiveRecord to ActionView.
11
+ * Form helpers to build powerful search and filter forms with ease.
12
+ * Javascript assets to auto-submit filter form on change via AJAX.
13
+ * Image asset to show a spinner in the Filterrific form when new records are being loaded via AJAX.
14
+ * API option to use Filterrific with Rails API mode. Just use `gem 'filterrific', require: 'filterrific_api'` in your Gemfile.
15
+
7
16
  ***
8
17
 
9
18
  ![A filterrific enhanced list](https://github.com/jhund/filterrific/blob/gh-pages/images/screenshot_s.png)
10
19
 
11
20
  ***
12
21
 
13
- Make sure to go to the fantastic [Filterrific documentation](http://filterrific.clearcove.ca)
14
- to find out more!
15
22
 
16
23
  ### Installation
17
24
 
@@ -22,6 +29,12 @@ or with bundler in your Gemfile:
22
29
  `gem 'filterrific'`
23
30
 
24
31
 
32
+ ### Usage
33
+
34
+ Make sure to go to the fantastic [Filterrific documentation](http://filterrific.clearcove.ca)
35
+ to find out more!
36
+
37
+
25
38
  ### Compatibility
26
39
 
27
40
  Every commit to Filterrific is automatically tested against the following scenarios:
@@ -78,4 +91,4 @@ If you think you've found a bug, or have a feature request, then create an issue
78
91
 
79
92
  ### Copyright
80
93
 
81
- Copyright (c) 2010 - 2016 Jo Hund. See [(MIT) LICENSE](https://github.com/jhund/filterrific/blob/master/MIT-LICENSE) for details.
94
+ Copyright (c) 2010 - 2018 Jo Hund. See [(MIT) LICENSE](https://github.com/jhund/filterrific/blob/master/MIT-LICENSE) for details.
data/doc/scratchpad.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## TODO
4
4
 
5
+ * Go to deep_stringify_keys (in ActionControllerExtension#initialize_filterrific)
6
+ * Lock Gemfile to correct version of Rails
7
+ * Add Rails major version check to filterrific.rb
8
+ * In ParamSet#condition_filterrific_params: Why are we type casting integers?
5
9
  * add check that no filter_name conflicts with existing methods on included ActiveRecord class (See https://github.com/jhund/filterrific/issues/17)
6
10
  * fix reset url, make controller method, helper method
7
11
 
data/lib/filterrific.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
+ if Rails::VERSION::MAJOR != 3
4
+ raise "\n\nThis version of Filterrific only works with Rails 3.x.\nPlease see the Filterrific README for the correct version of Filterrific to use with your version of Rails!\n\n"
5
+ end
6
+
3
7
  require 'filterrific/version'
4
8
  require 'filterrific/engine'
5
9
 
@@ -27,8 +27,6 @@ module Filterrific
27
27
  # dynamic values.
28
28
  # @return [Filterrific::ParamSet]
29
29
  def initialize_filterrific(model_class, filterrific_params, opts = {})
30
- # We used #deep_stringify_keys, however that breaks on Rails 3.x, so we
31
- # went back to #stringify_keys which should be sufficient.
32
30
  f_params = (filterrific_params || {}).stringify_keys
33
31
  opts = opts.stringify_keys
34
32
  pers_id = if false == opts['persistence_id']
@@ -54,12 +54,9 @@ module Filterrific
54
54
  ar_rel = if ActiveRecord::Relation === self
55
55
  # self is already an ActiveRecord::Relation, use as is
56
56
  self
57
- elsif Rails::VERSION::MAJOR <= 3
58
- # Active Record 3: send `:scoped` to class to get an ActiveRecord::Relation
59
- scoped
60
57
  else
61
- # Active Record 4 and later: Send `:all` to class to get an ActiveRecord::Relation
62
- all
58
+ # Send `:scoped` to class to get an ActiveRecord::Relation
59
+ scoped
63
60
  end
64
61
 
65
62
  # Apply filterrific params
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'filterrific/param_set'
4
+
5
+ require 'filterrific/action_controller_extension'
6
+ require 'filterrific/active_record_extension'
7
+
8
+ module Filterrific
9
+ class EngineApi < ::Rails::Engine
10
+
11
+ TODO: Since this is API only, I don't think we need an engine!
12
+ # It's an engine so that we can add javascript and image assets
13
+ # to the asset pipeline.
14
+
15
+ isolate_namespace Filterrific
16
+
17
+ ActiveSupport.on_load :action_controller do
18
+ include Filterrific::ActionControllerExtension
19
+ end
20
+
21
+ ActiveSupport.on_load :active_record do
22
+ extend Filterrific::ActiveRecordExtension
23
+ end
24
+
25
+ end
26
+ end
@@ -45,13 +45,6 @@ module Filterrific
45
45
  model_class.filterrific_find(self)
46
46
  end
47
47
 
48
- # Returns true if this instance of Filterrific has params other than the
49
- # defaults.
50
- # @return [Boolean]
51
- def has_filters_applied?
52
- sdf
53
- end
54
-
55
48
  # Returns Filterrific::ParamSet as hash (used for URL params and serialization)
56
49
  # @return [Hash] with stringified keys
57
50
  def to_hash
@@ -83,7 +76,6 @@ module Filterrific
83
76
  protected
84
77
 
85
78
  # Conditions params: Evaluates Procs and type casts integer values.
86
- # TODO: Why are we type casting integers?
87
79
  # @param fp [Hash] the filterrific params hash
88
80
  # @return[Hash] the conditioned params hash
89
81
  def condition_filterrific_params(fp)
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  module Filterrific
4
- VERSION = "2.1.2"
4
+ VERSION = "3.0.0"
5
5
  end
@@ -0,0 +1,7 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ require 'filterrific/version'
4
+ require 'filterrific/engine_api'
5
+
6
+ module Filterrific
7
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filterrific
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jo Hund
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-11 00:00:00.000000000 Z
11
+ date: 2017-12-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Filterrific is a Rails Engine plugin that makes it easy to filter, search,
14
14
  and sort your ActiveRecord lists.
@@ -37,9 +37,11 @@ files:
37
37
  - lib/filterrific/action_view_extension.rb
38
38
  - lib/filterrific/active_record_extension.rb
39
39
  - lib/filterrific/engine.rb
40
+ - lib/filterrific/engine_api.rb
40
41
  - lib/filterrific/has_reset_filterrific_url_mixin.rb
41
42
  - lib/filterrific/param_set.rb
42
43
  - lib/filterrific/version.rb
44
+ - lib/filterrific_api.rb
43
45
  - spec/filterrific/action_controller_extension_spec.rb
44
46
  - spec/filterrific/action_view_extension_spec.rb
45
47
  - spec/filterrific/active_record_extension_spec.rb
@@ -66,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
68
  version: '0'
67
69
  requirements: []
68
70
  rubyforge_project:
69
- rubygems_version: 2.5.1
71
+ rubygems_version: 2.6.11
70
72
  signing_key:
71
73
  specification_version: 4
72
74
  summary: A Rails engine plugin for filtering ActiveRecord lists.