filterrific 2.0.5 → 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
  SHA1:
3
- metadata.gz: a5979a704b32638ef10a22bd4fd751df14a61b61
4
- data.tar.gz: c3061aa6b0a62f45be9f3a8596dbc2832e7f4e7b
3
+ metadata.gz: 9e942aed2e691e4dc777ac1e8011bba4d72ec314
4
+ data.tar.gz: 59b0a72bd4e47c51ed2262f1fa86f6d6fb44485d
5
5
  SHA512:
6
- metadata.gz: 411881a8695384b3f9e1edc9f9c9db7ad8ccb4afb9416693f36d29a4861b6901e2896145f07a29aef51b20734449b568fd2c7bbeaf1e14c71a30f360e1ecd6b1
7
- data.tar.gz: fe163f9cfc3fd45760522877415395f594e664d1f20726ae62a192584bedc1deba5c9aaafae4ce6dbec966736864bbba63d7388f257409b17a0375ef1ecf8bf9
6
+ metadata.gz: 659b8b69290422638847f5634ac6970b88194c5c6316c5af47b03b40ca9fbeabd1b9073d57bbc505771ace4bf9c6f7b4caf1a5792ae63cabafed7740a9bd0f3e
7
+ data.tar.gz: 6145fce069f6007e3f9f4fdcbe6e744adcc6614479a068369db2e1419515cc96b294cc1337d313660ab4e5b760a7a4c90f1e2d3f8b0de37b4fac041cdd323051
@@ -39,6 +39,18 @@
39
39
  },
40
40
  )
41
41
 
42
+
43
+ ## 2.1.0
44
+
45
+ * Updated filterrific for Rails 5 compatibility:
46
+ * Turbolinks compatibility (thanks @olegantonyan)
47
+ * Updated to Ruby 2.2.2 in CI test matrix
48
+ * Added Ruby 2.3.1 to CI test matrix (thanks @rodrigoargumedo)
49
+ * Fixed #stringify_keys deprecation warning (thanks @olegantonyan)
50
+ * When generating sorting headers, allow usage of HTML (e.g., for icons) using #safe_join (thanks @ScottKolo)
51
+ * Improved param casting to Int: hyphens and zeros (thanks @grit96)
52
+
53
+
42
54
  ### 2.0.5
43
55
 
44
56
  * Feature: Allow disabling of session persistence by passing `false` as
data/README.md CHANGED
@@ -26,12 +26,13 @@ or with bundler in your Gemfile:
26
26
 
27
27
  Every commit to Filterrific is automatically tested against the following scenarios:
28
28
 
29
- | Rails version | Ruby environments | Database adapters | Build status |
30
- |---------------|--------------------------------|------------------------------------|--------------|
31
- | Rails 4.2 | MRI 1.9.3, 2.0.0, 2.1.2, 2.2.0 | mysql, mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-4.2)](https://travis-ci.org/jhund/filterrific_demo)|
32
- | Rails 4.1 | MRI 1.9.3, 2.0.0, 2.1.2, 2.2.0 | mysql, mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-4.1)](https://travis-ci.org/jhund/filterrific_demo)|
33
- | Rails 4.0 | MRI 1.9.3, 2.0.0, 2.1.2, 2.2.0 | mysql, mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-4.0)](https://travis-ci.org/jhund/filterrific_demo)|
34
- | Rails 3.2 | MRI 1.9.3, 2.0.0, 2.1.2 | mysql, mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-3.2)](https://travis-ci.org/jhund/filterrific_demo)|
29
+ | Rails version | Ruby environments | Database adapters | Build status |
30
+ |---------------|---------------------------------------|------------------------------------|--------------|
31
+ | Rails 5.x | MRI 1.9.3, 2.0.0, 2.1.7, 2.2.3, 2.3.1 | mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-5.x)](https://travis-ci.org/jhund/filterrific_demo)|
32
+ | Rails 4.2 | MRI 1.9.3, 2.0.0, 2.1.7, 2.2.3, 2.3.1 | mysql, mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-4.2)](https://travis-ci.org/jhund/filterrific_demo)|
33
+ | Rails 4.1 | MRI 1.9.3, 2.0.0, 2.1.7, 2.2.3, 2.3.1 | mysql, mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-4.1)](https://travis-ci.org/jhund/filterrific_demo)|
34
+ | Rails 4.0 | MRI 1.9.3, 2.0.0, 2.1.7, 2.2.3, 2.3.1 | mysql, mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-4.0)](https://travis-ci.org/jhund/filterrific_demo)|
35
+ | Rails 3.2 | MRI 1.9.3, 2.0.0, 2.1.7 | mysql, mysql2, postgresql, sqlite3 |[![Build Status](https://travis-ci.org/jhund/filterrific_demo.svg?branch=rails-3.2)](https://travis-ci.org/jhund/filterrific_demo)|
35
36
 
36
37
  Filterrific version 1.x should work on older versions of Rails and Ruby, however
37
38
  the 1.x branch is not supported any more.
@@ -39,9 +40,11 @@ the 1.x branch is not supported any more.
39
40
 
40
41
  ### Guidelines for submitting issues
41
42
 
42
- I'm happy to help you if you encounter problems when using filterrific. You'll make my job easier if you follow these guidelines:
43
+ Please post questions related to usage at [StackOverflow](http://stackoverflow.com/questions/tagged/filterrific) under the `filterrific` tag.
43
44
 
44
- * Please keep in mind that I do this in my spare time. I appreciate it if you first do everything you can on your own: read the detailed filterrific documentation, look for similar issues on StackOverflow, search the internets, etc.
45
+ If you think you've found a bug, or have a feature request, then create an issue here on Github. You'll make my job easier if you follow these guidelines:
46
+
47
+ * Please keep in mind that I do this in my spare time. I appreciate it if you first do everything you can on your own: read the detailed filterrific documentation, look for similar issues on StackOverflow, search the internets, etc. To you this software is free as in `beer`, to me it's free as in `baby`.
45
48
  * If you're stuck, give me sufficient context so that I have a chance to identify the issue:
46
49
  * what version of filterrific are you using? (look in your `Gemfile.lock`)
47
50
  * what version of Rails are you using? (look in your `Gemfile.lock`)
@@ -58,18 +61,13 @@ I'm happy to help you if you encounter problems when using filterrific. You'll m
58
61
  * [Changelog](https://github.com/jhund/filterrific/blob/master/CHANGELOG.md)
59
62
  * [Source code (github)](https://github.com/jhund/filterrific)
60
63
  * [Issues](https://github.com/jhund/filterrific/issues)
64
+ * [Questions on Stack Overflow](http://stackoverflow.com/questions/tagged/filterrific) (tagged `filterrific`)
61
65
  * [Rubygems.org](http://rubygems.org/gems/filterrific)
62
66
 
63
67
  [![Build Status](https://travis-ci.org/jhund/filterrific.svg?branch=master)](https://travis-ci.org/jhund/filterrific)
64
68
 
65
69
  [![Code Climate](https://codeclimate.com/github/jhund/filterrific.png)](https://codeclimate.com/github/jhund/filterrific)
66
70
 
67
- ### Related projects
68
-
69
- * has_scope
70
- * http://www.justinweiss.com/blog/2014/02/17/search-and-filter-rails-models-without-bloating-your-controller/
71
- * https://github.com/laserlemon/periscope
72
-
73
71
  ### License
74
72
 
75
73
  [MIT licensed](https://github.com/jhund/filterrific/blob/master/MIT-LICENSE).
@@ -78,4 +76,4 @@ I'm happy to help you if you encounter problems when using filterrific. You'll m
78
76
 
79
77
  ### Copyright
80
78
 
81
- Copyright (c) 2010 - 2015 Jo Hund. See [(MIT) LICENSE](https://github.com/jhund/filterrific/blob/master/MIT-LICENSE) for details.
79
+ Copyright (c) 2010 - 2016 Jo Hund. See [(MIT) LICENSE](https://github.com/jhund/filterrific/blob/master/MIT-LICENSE) for details.
@@ -78,9 +78,7 @@ Filterrific.submitFilterForm = function(){
78
78
  })(jQuery);
79
79
 
80
80
 
81
-
82
- // Initialize event observers on document ready and turbolinks page:load
83
- jQuery(document).on('ready page:load', function() {
81
+ Filterrific.init = function() {
84
82
  // Add change event handler to all Filterrific filter inputs.
85
83
  $('#filterrific_filter').on(
86
84
  "change",
@@ -94,4 +92,17 @@ jQuery(document).on('ready page:load', function() {
94
92
  0.5,
95
93
  Filterrific.submitFilterForm
96
94
  );
95
+ };
96
+
97
+
98
+ // Initialize event observers on document ready and turbolinks page:load
99
+ jQuery(document).on('turbolinks:load', function() {
100
+ // Prevent double initilisation. With turbolinks 5 this function
101
+ // will be called twice: on 'ready' and 'turbolinks:load'
102
+ jQuery(document).off('ready page:load')
103
+ Filterrific.init();
104
+ });
105
+
106
+ jQuery(document).on('ready page:load', function() {
107
+ Filterrific.init();
97
108
  });
@@ -101,22 +101,18 @@ module Filterrific
101
101
  # @return [String] an HTML fragment
102
102
  def filterrific_sorting_link_reverse_order(filterrific, new_sort_key, opts)
103
103
  # current sort column, toggle search_direction
104
- new_sort_direction, current_sort_direction_indicator = if 'asc' == opts[:current_sort_direction]
105
- ['desc', opts[:ascending_indicator]]
106
- else
107
- ['asc', opts[:descending_indicator]]
108
- end
109
- new_sorting = [new_sort_key, new_sort_direction].join('_')
110
- css_classes = [
104
+ new_sort_direction = 'asc' == opts[:current_sort_direction] ? 'desc' : 'asc'
105
+ new_sorting = safe_join([new_sort_key, new_sort_direction], '_')
106
+ css_classes = safe_join([
111
107
  opts[:active_column_class],
112
108
  opts[:html_attrs].delete(:class)
113
- ].compact.join(' ')
109
+ ].compact, ' ')
114
110
  new_filterrific_params = filterrific.to_hash
115
111
  .with_indifferent_access
116
112
  .merge(opts[:sorting_scope_name] => new_sorting)
117
113
  url_for_attrs = opts[:url_for_attrs].merge(:filterrific => new_filterrific_params)
118
114
  link_to(
119
- [opts[:label], opts[:current_sort_direction_indicator]].join(' '),
115
+ safe_join([opts[:label], opts[:current_sort_direction_indicator]], ' '),
120
116
  url_for(url_for_attrs),
121
117
  opts[:html_attrs].reverse_merge(:class => css_classes, :method => :get, :remote => true)
122
118
  )
@@ -129,11 +125,11 @@ module Filterrific
129
125
  # @return [String] an HTML fragment
130
126
  def filterrific_sorting_link_new_column(filterrific, new_sort_key, opts)
131
127
  new_sort_direction = opts[:default_sort_direction]
132
- new_sorting = [new_sort_key, new_sort_direction].join('_')
133
- css_classes = [
128
+ new_sorting = safe_join([new_sort_key, new_sort_direction], '_')
129
+ css_classes = safe_join([
134
130
  opts[:inactive_column_class],
135
131
  opts[:html_attrs].delete(:class)
136
- ].compact.join(' ')
132
+ ].compact, ' ')
137
133
  new_filterrific_params = filterrific.to_hash
138
134
  .with_indifferent_access
139
135
  .merge(opts[:sorting_scope_name] => new_sorting)
@@ -19,8 +19,10 @@ module Filterrific
19
19
  # @option opts [Hash, optional] default_filter_params: default filter parameters
20
20
  # @return [void]
21
21
  def filterrific(opts)
22
- cattr_accessor :filterrific_available_filters
23
- cattr_accessor :filterrific_default_filter_params
22
+ class << self
23
+ attr_accessor :filterrific_available_filters
24
+ attr_accessor :filterrific_default_filter_params
25
+ end
24
26
  self.filterrific_available_filters = []
25
27
 
26
28
  opts.stringify_keys!
@@ -28,8 +28,12 @@ module Filterrific
28
28
  extend Filterrific::ActiveRecordExtension
29
29
  end
30
30
 
31
- initializer "filterrific" do |app|
32
- app.config.assets.precompile += %w(filterrific-spinner.gif)
31
+ # sprockets-rails 3 tracks down the calls to `font_path` and `image_path`
32
+ # and automatically precompiles the referenced assets.
33
+ unless Rails::VERSION::MAJOR < 5
34
+ initializer "filterrific.assets.precompile" do |app|
35
+ app.config.assets.precompile += %w(filterrific/filterrific-spinner.gif)
36
+ end
33
37
  end
34
38
 
35
39
  end
@@ -28,7 +28,11 @@ module Filterrific
28
28
  # Persistence, baby. By the time you submit changes to one filter, all the others
29
29
  # will be already initialized with the defaults.
30
30
  filterrific_params = model_class.filterrific_default_filter_params if filterrific_params.blank?
31
- filterrific_params.stringify_keys!
31
+ if defined?(ActionController::Parameters) && filterrific_params.is_a?(ActionController::Parameters)
32
+ filterrific_params = filterrific_params.permit(model_class.filterrific_available_filters).to_h.stringify_keys
33
+ else
34
+ filterrific_params.stringify_keys!
35
+ end
32
36
  filterrific_params = condition_filterrific_params(filterrific_params)
33
37
  define_and_assign_attr_accessors_for_each_filter(filterrific_params)
34
38
  end
@@ -79,7 +83,7 @@ module Filterrific
79
83
  protected
80
84
 
81
85
  # Conditions params: Evaluates Procs and type casts integer values.
82
- # Why are we type casting integers?
86
+ # TODO: Why are we type casting integers?
83
87
  # @param fp [Hash] the filterrific params hash
84
88
  # @return[Hash] the conditioned params hash
85
89
  def condition_filterrific_params(fp)
@@ -90,12 +94,12 @@ module Filterrific
90
94
  fp[key] = val.call
91
95
  when val.is_a?(Array)
92
96
  # type cast integers in the array
93
- fp[key] = fp[key].map { |e| e =~ /^[1-9\-]\d*$/ ? e.to_i : e }
97
+ fp[key] = fp[key].map { |e| e =~ integer_detector_regex ? e.to_i : e }
94
98
  when val.is_a?(Hash)
95
99
  # type cast Hash to OpenStruct so that nested params render correctly
96
100
  # in the form
97
101
  fp[key] = OpenStruct.new(fp[key])
98
- when val =~ /^[1-9\-]\d*$/
102
+ when val =~ integer_detector_regex
99
103
  # type cast integer
100
104
  fp[key] = fp[key].to_i
101
105
  end
@@ -103,6 +107,11 @@ module Filterrific
103
107
  fp
104
108
  end
105
109
 
110
+ # Regex to detect if str represents and int
111
+ def integer_detector_regex
112
+ /\A-?([1-9]\d*|0)\z/
113
+ end
114
+
106
115
  # Defines attr accessors for each available_filter on self and assigns
107
116
  # values based on fp.
108
117
  # @param fp [Hash] filterrific_params with stringified keys
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  module Filterrific
4
- VERSION = "2.0.5"
4
+ VERSION = "2.1.0"
5
5
  end
@@ -3,28 +3,28 @@ require 'filterrific/action_controller_extension'
3
3
 
4
4
  module Filterrific
5
5
 
6
- class TestController
7
- include ActionControllerExtension
8
- def action_name; 'index'; end
9
- def controller_name; 'test_controller'; end
10
- def session
11
- {
12
- 'test_controller#index' => {
13
- 'filter1' => '1_from_session',
14
- 'filter2' => '2_from_session',
6
+ describe ActionControllerExtension do
7
+
8
+ class TestController
9
+ include ActionControllerExtension
10
+ def action_name; 'index'; end
11
+ def controller_name; 'test_controller'; end
12
+ def session
13
+ {
14
+ 'test_controller#index' => {
15
+ 'filter1' => '1_from_session',
16
+ 'filter2' => '2_from_session',
17
+ }
15
18
  }
16
- }
19
+ end
17
20
  end
18
- end
19
21
 
20
- class TestModelClass
21
- def self.filterrific_available_filters; %w[filter1 filter2]; end
22
- def self.filterrific_default_filter_params
23
- { 'filter1' => '1_from_model_defaults' }
22
+ class TestModelClass
23
+ def self.filterrific_available_filters; %w[filter1 filter2]; end
24
+ def self.filterrific_default_filter_params
25
+ { 'filter1' => '1_from_model_defaults' }
26
+ end
24
27
  end
25
- end
26
-
27
- describe ActionControllerExtension do
28
28
 
29
29
  describe '#initialize_filterrific' do
30
30
 
@@ -3,12 +3,12 @@ require 'filterrific/action_view_extension'
3
3
 
4
4
  module Filterrific
5
5
 
6
- class ViewContext
7
- include ActionViewExtension
8
- end
9
-
10
6
  describe ActionViewExtension do
11
7
 
8
+ class ViewContext
9
+ include ActionViewExtension
10
+ end
11
+
12
12
  it 'responds to #form_for_filterrific' do
13
13
  ViewContext.new.must_respond_to(:form_for_filterrific)
14
14
  end
@@ -6,26 +6,26 @@ ActiveRecord::Base.extend Filterrific::ActiveRecordExtension
6
6
 
7
7
  module Filterrific
8
8
 
9
- # Container for test data
10
- class TestData
9
+ describe ActiveRecordExtension do
11
10
 
12
- def self.filterrific_available_filters
13
- %w[search_query sorted_by with_country_id]
14
- end
11
+ # Container for test data
12
+ class TestDataARES
15
13
 
16
- def self.filterrific_default_filter_params
17
- { 'sorted_by' => 'name_asc' }
18
- end
14
+ def self.filterrific_available_filters
15
+ %w[search_query sorted_by with_country_id]
16
+ end
19
17
 
20
- end
18
+ def self.filterrific_default_filter_params
19
+ { 'sorted_by' => 'name_asc' }
20
+ end
21
21
 
22
- describe ActiveRecordExtension do
22
+ end
23
23
 
24
24
  let(:filterrific_class){
25
25
  Class.new(ActiveRecord::Base) do
26
26
  filterrific(
27
- available_filters: TestData.filterrific_available_filters,
28
- default_filter_params: TestData.filterrific_default_filter_params
27
+ available_filters: TestDataARES.filterrific_available_filters,
28
+ default_filter_params: TestDataARES.filterrific_default_filter_params
29
29
  )
30
30
  end
31
31
  }
@@ -46,13 +46,13 @@ module Filterrific
46
46
 
47
47
  it "initializes filterrific_available_filters" do
48
48
  filterrific_class.filterrific_available_filters.must_equal(
49
- TestData.filterrific_available_filters
49
+ TestDataARES.filterrific_available_filters
50
50
  )
51
51
  end
52
52
 
53
53
  it "initializes filterrific_default_filter_params" do
54
54
  filterrific_class.filterrific_default_filter_params.must_equal(
55
- TestData.filterrific_default_filter_params
55
+ TestDataARES.filterrific_default_filter_params
56
56
  )
57
57
  end
58
58
 
@@ -90,4 +90,25 @@ module Filterrific
90
90
  end
91
91
 
92
92
  end
93
+
94
+ describe "Single Table Inheritance" do
95
+
96
+ class Daddy < ActiveRecord::Base
97
+ filterrific(available_filters: [:one, :two])
98
+ end
99
+
100
+ class Girl < Daddy
101
+ filterrific(available_filters: [:three, :four])
102
+ end
103
+
104
+ %w(one two).each do |value|
105
+ it { Daddy.filterrific_available_filters.must_include value }
106
+ end
107
+
108
+ %w(three four).each do |value|
109
+ it { Girl.filterrific_available_filters.must_include value }
110
+ end
111
+
112
+ end
113
+
93
114
  end
@@ -3,83 +3,93 @@ require 'filterrific/param_set'
3
3
 
4
4
  module Filterrific
5
5
 
6
- # Container for test data
7
- class TestData
8
-
9
- def self.filterrific_available_filters
10
- %w[
11
- filter_almost_int
12
- filter_array_int
13
- filter_array_string
14
- filter_hash
15
- filter_int
16
- filter_negative_int
17
- filter_proc
18
- filter_string
19
- ]
20
- end
21
-
22
- def self.filterrific_default_filter_params
23
- { 'filter_int' => 42 }
24
- end
6
+ describe ParamSet do
25
7
 
26
- def self.filterrific_params
27
- {
28
- 'filter_almost_int' => '042',
29
- 'filter_array_int' => %w[1 2 3],
30
- 'filter_array_string' => %w[one two three],
31
- 'filter_hash' => { a: 1, b: 2 },
32
- 'filter_int' => '42',
33
- 'filter_negative_int' => '-42',
34
- 'filter_proc' => lambda { 1 + 1 },
35
- 'filter_string' => 'forty-two',
36
- }
37
- end
8
+ # Container for test data
9
+ class TestData
10
+
11
+ def self.filterrific_available_filters
12
+ %w[
13
+ filter_almost_int
14
+ filter_array_int
15
+ filter_array_string
16
+ filter_hash
17
+ filter_hyphen
18
+ filter_int
19
+ filter_negative_int
20
+ filter_proc
21
+ filter_string
22
+ filter_zero
23
+ ]
24
+ end
38
25
 
39
- def self.filterrific_params_after_conditioning
40
- {
41
- 'filter_almost_int' => '042',
42
- 'filter_array_int' => [1, 2, 3],
43
- 'filter_array_string' => %w[one two three],
44
- 'filter_hash' => OpenStruct.new(a: 1, b: 2),
45
- 'filter_int' => 42,
46
- 'filter_negative_int' => -42,
47
- 'filter_proc' => 2,
48
- 'filter_string' => 'forty-two',
49
- }
50
- end
26
+ def self.filterrific_default_filter_params
27
+ { 'filter_int' => 42 }
28
+ end
51
29
 
52
- def self.filterrific_params_as_hash
53
- {
54
- 'filter_almost_int' => '042',
55
- 'filter_array_int' => [1, 2, 3],
56
- 'filter_array_string' => %w[one two three],
57
- 'filter_hash' => { a: 1, b: 2 },
58
- 'filter_int' => 42,
59
- 'filter_negative_int' => -42,
60
- 'filter_proc' => 2,
61
- 'filter_string' => 'forty-two',
62
- }
63
- end
30
+ def self.filterrific_params
31
+ {
32
+ 'filter_almost_int' => '042',
33
+ 'filter_array_int' => %w[1 2 3],
34
+ 'filter_array_string' => %w[one two three],
35
+ 'filter_hash' => { a: 1, b: 2 },
36
+ 'filter_hyphen' => '-',
37
+ 'filter_int' => '42',
38
+ 'filter_negative_int' => '-42',
39
+ 'filter_proc' => lambda { 1 + 1 },
40
+ 'filter_string' => 'forty-two',
41
+ 'filter_zero' => '0',
42
+ }
43
+ end
64
44
 
65
- end
45
+ def self.filterrific_params_after_conditioning
46
+ {
47
+ 'filter_almost_int' => '042',
48
+ 'filter_array_int' => [1, 2, 3],
49
+ 'filter_array_string' => %w[one two three],
50
+ 'filter_hash' => OpenStruct.new(a: 1, b: 2),
51
+ 'filter_hyphen' => '-',
52
+ 'filter_int' => 42,
53
+ 'filter_negative_int' => -42,
54
+ 'filter_proc' => 2,
55
+ 'filter_string' => 'forty-two',
56
+ 'filter_zero' => 0,
57
+ }
58
+ end
66
59
 
67
- # Simulates a class that would include the filterrific directive
68
- class ModelClass
60
+ def self.filterrific_params_as_hash
61
+ {
62
+ 'filter_almost_int' => '042',
63
+ 'filter_array_int' => [1, 2, 3],
64
+ 'filter_array_string' => %w[one two three],
65
+ 'filter_hash' => { a: 1, b: 2 },
66
+ 'filter_hyphen' => '-',
67
+ 'filter_int' => 42,
68
+ 'filter_negative_int' => -42,
69
+ 'filter_proc' => 2,
70
+ 'filter_string' => 'forty-two',
71
+ 'filter_zero' => 0,
72
+ }
73
+ end
69
74
 
70
- def self.filterrific_default_filter_params
71
- TestData.filterrific_default_filter_params
72
- end
73
- def self.filterrific_available_filters
74
- TestData.filterrific_available_filters
75
75
  end
76
76
 
77
- end
77
+ # Simulates a class that would include the filterrific directive
78
+ class ModelClass
78
79
 
79
- describe ParamSet do
80
+ def self.filterrific_default_filter_params
81
+ TestData.filterrific_default_filter_params
82
+ end
83
+ def self.filterrific_available_filters
84
+ TestData.filterrific_available_filters
85
+ end
86
+
87
+ end
80
88
 
81
89
  let(:filterrific_param_set){
82
- Filterrific::ParamSet.new(ModelClass, TestData.filterrific_params)
90
+ Kernel::silence_warnings {
91
+ Filterrific::ParamSet.new(ModelClass, TestData.filterrific_params)
92
+ }
83
93
  }
84
94
 
85
95
  describe "initialization" do
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filterrific
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.1.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: 2015-05-04 00:00:00.000000000 Z
11
+ date: 2016-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.6.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.6.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: gem-release
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.7.3
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.7.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 10.3.2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 10.3.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: wwtd
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.5.5
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.5.5
83
83
  description: Filterrific is a Rails Engine plugin that makes it easy to filter, search,
@@ -126,17 +126,17 @@ require_paths:
126
126
  - lib
127
127
  required_ruby_version: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: 1.9.3
132
132
  required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - '>='
134
+ - - ">="
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0'
137
137
  requirements: []
138
138
  rubyforge_project:
139
- rubygems_version: 2.4.5
139
+ rubygems_version: 2.5.1
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: A Rails engine plugin for filtering ActiveRecord lists.