active_filter 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dc53bd1d410478d79ed8099e4cd540a94c5f1930
4
+ data.tar.gz: 9cf04de26c134385a2499f52e2fe61fee24afd7c
5
+ SHA512:
6
+ metadata.gz: 487c29b7cbb266e4d9ffc1b52811a02c45b3f0c401aa1e475a3378f03c81b4ae761ae127186c1ca6c8f0a7f9d7d02fb46630fde2802393b3b76e86f139d3b635
7
+ data.tar.gz: 3166120e57c3bd6a0726218e9dfc4c66d3460fb939378908d44568ec886616aaeb03ad353d296c76c9dcd66040f4472e6ad7f596a71a7d6f1d1ba08354e2e903
data/MIT-LICENSE CHANGED
@@ -1,20 +1,20 @@
1
- Copyright 2012 tnakamura
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Copyright 2012 tnakamura
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # ActiveFilter
1
+ # ActiveFilter [![Build Status](https://travis-ci.org/tnakamura/active_filter.png?branch=master)](https://travis-ci.org/tnakamura/active_filter) [![Code Climate](https://codeclimate.com/github/tnakamura/active_filter.png)](https://codeclimate.com/github/tnakamura/active_filter) [![Dependency Status](https://gemnasium.com/tnakamura/active_filter.png)](https://gemnasium.com/tnakamura/active_filter) [![Coverage Status](https://coveralls.io/repos/tnakamura/active_filter/badge.png?branch=master)](https://coveralls.io/r/tnakamura/active_filter)
2
2
 
3
3
  ActiveFilter is a Rails engine for allowing users to filter scope dynamically.
4
4
 
@@ -34,7 +34,10 @@ And then in your controller you could do:
34
34
  ```ruby
35
35
  class BlogsController < ApplicationController
36
36
  def index
37
- @filter = BlogFilter.new(params)
37
+ @filter = BlogFilter.new({
38
+ title: "foo",
39
+ description__exact: "bar",
40
+ })
38
41
  @blogs = @filter.to_scope
39
42
  end
40
43
  end
data/Rakefile CHANGED
@@ -1,27 +1,27 @@
1
- #!/usr/bin/env rake
2
- begin
3
- require 'bundler/setup'
4
- rescue LoadError
5
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
- end
7
- begin
8
- require 'rdoc/task'
9
- rescue LoadError
10
- require 'rdoc/rdoc'
11
- require 'rake/rdoctask'
12
- RDoc::Task = Rake::RDocTask
13
- end
14
-
15
- RDoc::Task.new(:rdoc) do |rdoc|
16
- rdoc.rdoc_dir = 'rdoc'
17
- rdoc.title = 'ActiveFilter'
18
- rdoc.options << '--line-numbers'
19
- rdoc.rdoc_files.include('README.rdoc')
20
- rdoc.rdoc_files.include('lib/**/*.rb')
21
- end
22
-
23
-
24
-
25
-
26
- Bundler::GemHelper.install_tasks
27
-
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'ActiveFilter'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+
24
+
25
+
26
+ Bundler::GemHelper.install_tasks
27
+
data/lib/active_filter.rb CHANGED
@@ -1,7 +1,7 @@
1
- # coding: utf-8
2
- require "active_filter/version"
3
- require "active_filter/base"
4
-
5
- module ActiveFilter
6
- # Your code goes here...
7
- end
1
+ # coding: utf-8
2
+ require "active_filter/version"
3
+ require "active_filter/base"
4
+
5
+ module ActiveFilter
6
+ # Your code goes here...
7
+ end
@@ -12,6 +12,21 @@ require "active_filter/filter/time_filter"
12
12
 
13
13
  module ActiveFilter
14
14
  class Base
15
+ TYPE_FILTER_MAP = {
16
+ primary_key: Filter,
17
+ string: StringFilter,
18
+ text: TextFilter,
19
+ integer: IntegerFilter,
20
+ float: FloatFilter,
21
+ decimal: DecimalFilter,
22
+ datetime: DateTimeFilter,
23
+ timestamp: Filter,
24
+ time: TimeFilter,
25
+ date: DateFilter,
26
+ binary: Filter,
27
+ boolean: BooleanFilter,
28
+ }
29
+
15
30
  include ::Enumerable
16
31
 
17
32
  attr_reader :filters
@@ -19,26 +34,15 @@ module ActiveFilter
19
34
  def initialize(data, scope=nil)
20
35
  @data = data
21
36
  @scope = scope
22
-
23
37
  columns = self.model.columns
24
38
 
25
39
  # fields で指定した列だけをフィルタ可能にする
26
40
  fields = self.class.__send__(:_fields)
27
- unless fields.empty?
28
- columns = columns.select { |column|
29
- fields.include?(column.name) ||
30
- fields.include?(column.name.to_sym)
31
- }
32
- end
41
+ columns = _select_columns(columns, fields) unless fields.empty?
33
42
 
34
43
  # exclude で指定した列を除外する
35
44
  excludes = self.class.__send__(:_exclude)
36
- unless excludes.empty?
37
- columns = columns.reject { |column|
38
- fields.include?(column.name) ||
39
- fields.include?(column.name.to_sym)
40
- }
41
- end
45
+ columns = _reject_columns(columns, excludes) unless excludes.empty?
42
46
 
43
47
  @filters = columns.map { |column|
44
48
  _create_filter_from_column(column)
@@ -138,6 +142,21 @@ module ActiveFilter
138
142
  end
139
143
 
140
144
  private
145
+
146
+ def _select_columns(columns, fields)
147
+ columns.select { |column|
148
+ fields.include?(column.name) ||
149
+ fields.include?(column.name.to_sym)
150
+ }
151
+ end
152
+
153
+ def _reject_columns(columns, fields)
154
+ columns.reject { |column|
155
+ fields.include?(column.name) ||
156
+ fields.include?(column.name.to_sym)
157
+ }
158
+ end
159
+
141
160
  # コンストラクタで受け取ったスコープまたは
142
161
  # model.scoped を返す
143
162
  def _scoped
@@ -166,31 +185,8 @@ module ActiveFilter
166
185
  end
167
186
 
168
187
  def _create_filter_from_column(column)
169
- case column.type
170
- when :primary_key
171
- return Filter.new(column.name)
172
- when :string
173
- return StringFilter.new(column.name)
174
- when :text
175
- return TextFilter.new(column.name)
176
- when :integer
177
- return IntegerFilter.new(column.name)
178
- when :float
179
- return FloatFilter.new(column.name)
180
- when :decimal
181
- return DecimalFilter.new(column.name)
182
- when :datetime
183
- return DateTimeFilter.new(column.name)
184
- when :timestamp
185
- return Filter.new(column.name)
186
- when :time
187
- return TimeFilter.new(column.name)
188
- when :date
189
- return DateFilter.new(column.name)
190
- when :binary
191
- return Filter.new(column.name)
192
- when :boolean
193
- return BooleanFilter.new(column.name)
188
+ if TYPE_FILTER_MAP.include?(column.type)
189
+ TYPE_FILTER_MAP[column.type].new(column.name)
194
190
  else
195
191
  raise ArgumentError.new("#{column.type} is not supported.")
196
192
  end
@@ -31,6 +31,10 @@ module ActiveFilter
31
31
  return scope.where("#{@name} >= ?", value)
32
32
  when "lte"
33
33
  return scope.where("#{@name} <= ?", value)
34
+ when "startswith"
35
+ return scope.where("#{@name} LIKE ?", "#{value}%")
36
+ when "endswith"
37
+ return scope.where("#{@name} LIKE ?", "%#{value}")
34
38
  else
35
39
  raise ArgumentError.new("#{lookup_type} is not supported.")
36
40
  end
@@ -1,21 +1,21 @@
1
- # coding: utf-8
2
- require "active_filter/filter"
3
-
4
- module ActiveFilter
5
- class BooleanFilter < Filter
6
- def convert_value(value)
7
- compare_value = value.is_a?(String) ? value.downcase : value
8
- case compare_value
9
- when "no", "false", false, "0", 0
10
- false
11
- when "yes", "true", true, "1", 1
12
- true
13
- when nil
14
- false
15
- else
16
- !!compare_value
17
- end
18
- end
19
- end
20
- end
21
-
1
+ # coding: utf-8
2
+ require "active_filter/filter"
3
+
4
+ module ActiveFilter
5
+ class BooleanFilter < Filter
6
+ def convert_value(value)
7
+ compare_value = value.is_a?(String) ? value.downcase : value
8
+ case compare_value
9
+ when "no", "false", false, "0", 0
10
+ false
11
+ when "yes", "true", true, "1", 1
12
+ true
13
+ when nil
14
+ false
15
+ else
16
+ !!compare_value
17
+ end
18
+ end
19
+ end
20
+ end
21
+
@@ -1,12 +1,12 @@
1
- # coding: utf-8
2
- require "active_support"
3
- require "active_filter/filter/date_time_filter"
4
-
5
- module ActiveFilter
6
- class DateFilter < DateTimeFilter
7
- def convert_value(value)
8
- value.to_date
9
- end
10
- end
11
- end
12
-
1
+ # coding: utf-8
2
+ require "active_support"
3
+ require "active_filter/filter/date_time_filter"
4
+
5
+ module ActiveFilter
6
+ class DateFilter < DateTimeFilter
7
+ def convert_value(value)
8
+ value.to_date
9
+ end
10
+ end
11
+ end
12
+
@@ -1,16 +1,16 @@
1
- # coding: utf-8
2
- require "active_support"
3
- require "active_filter/filter"
4
-
5
- module ActiveFilter
6
- class DateTimeFilter < Filter
7
- def lookup_type
8
- ["exact", "gt", "lt", "gte", "lte"]
9
- end
10
-
11
- def convert_value(value)
12
- value.to_datetime
13
- end
14
- end
15
- end
16
-
1
+ # coding: utf-8
2
+ require "active_support"
3
+ require "active_filter/filter"
4
+
5
+ module ActiveFilter
6
+ class DateTimeFilter < Filter
7
+ def lookup_type
8
+ ["exact", "gt", "lt", "gte", "lte"]
9
+ end
10
+
11
+ def convert_value(value)
12
+ value.to_datetime
13
+ end
14
+ end
15
+ end
16
+
@@ -1,8 +1,8 @@
1
- # coding: utf-8
2
- require "active_support"
3
- require "active_filter/filter/integer_filter"
4
-
5
- module ActiveFilter
6
- class DecimalFilter < IntegerFilter;end
7
- end
8
-
1
+ # coding: utf-8
2
+ require "active_support"
3
+ require "active_filter/filter/integer_filter"
4
+
5
+ module ActiveFilter
6
+ class DecimalFilter < IntegerFilter;end
7
+ end
8
+
@@ -1,11 +1,11 @@
1
- # coding: utf-8
2
- require "active_filter/filter/integer_filter"
3
-
4
- module ActiveFilter
5
- class FloatFilter < IntegerFilter
6
- def convert_value(value)
7
- value.to_f
8
- end
9
- end
10
- end
11
-
1
+ # coding: utf-8
2
+ require "active_filter/filter/integer_filter"
3
+
4
+ module ActiveFilter
5
+ class FloatFilter < IntegerFilter
6
+ def convert_value(value)
7
+ value.to_f
8
+ end
9
+ end
10
+ end
11
+
@@ -1,15 +1,15 @@
1
- # coding: utf-8
2
- require "active_filter/filter"
3
-
4
- module ActiveFilter
5
- class IntegerFilter < Filter
6
- def lookup_type
7
- ["exact", "gt", "lt", "gte", "lte"]
8
- end
9
-
10
- def convert_value(value)
11
- value.to_i
12
- end
13
- end
14
- end
15
-
1
+ # coding: utf-8
2
+ require "active_filter/filter"
3
+
4
+ module ActiveFilter
5
+ class IntegerFilter < Filter
6
+ def lookup_type
7
+ ["exact", "gt", "lt", "gte", "lte"]
8
+ end
9
+
10
+ def convert_value(value)
11
+ value.to_i
12
+ end
13
+ end
14
+ end
15
+
@@ -1,11 +1,11 @@
1
- # coding: utf-8
2
- require "active_filter/filter"
3
-
4
- module ActiveFilter
5
- class StringFilter < Filter
6
- def lookup_type
7
- ["exact", "contains"]
8
- end
9
- end
10
- end
11
-
1
+ # coding: utf-8
2
+ require "active_filter/filter"
3
+
4
+ module ActiveFilter
5
+ class StringFilter < Filter
6
+ def lookup_type
7
+ ["exact", "contains"]
8
+ end
9
+ end
10
+ end
11
+
@@ -1,7 +1,7 @@
1
- # coding: utf-8
2
- require "active_filter/filter/string_filter"
3
-
4
- module ActiveFilter
5
- class TextFilter < StringFilter;end
6
- end
7
-
1
+ # coding: utf-8
2
+ require "active_filter/filter/string_filter"
3
+
4
+ module ActiveFilter
5
+ class TextFilter < StringFilter;end
6
+ end
7
+
@@ -1,12 +1,12 @@
1
- # coding: utf-8
2
- require "active_support"
3
- require "active_filter/filter/date_time_filter"
4
-
5
- module ActiveFilter
6
- class TimeFilter < DateTimeFilter
7
- def convert_value(value)
8
- value.to_time
9
- end
10
- end
11
- end
12
-
1
+ # coding: utf-8
2
+ require "active_support"
3
+ require "active_filter/filter/date_time_filter"
4
+
5
+ module ActiveFilter
6
+ class TimeFilter < DateTimeFilter
7
+ def convert_value(value)
8
+ value.to_time
9
+ end
10
+ end
11
+ end
12
+
@@ -1,3 +1,3 @@
1
- module ActiveFilter
2
- VERSION = "0.0.6"
3
- end
1
+ module ActiveFilter
2
+ VERSION = "0.0.7"
3
+ end
@@ -1,15 +1,15 @@
1
- # coding: utf-8
2
- module ActiveFilter
3
- module Generators
4
- class FilterGenerator < ::Rails::Generators::NamedBase
5
- source_root File.expand_path("../templates", __FILE__)
6
-
7
- argument :attributes, :type => :array, :default => [], :banner => "field field"
8
-
9
- def create_filter_file
10
- template "filter.rb", "app/filters/#{file_name}_filter.rb"
11
- end
12
- end
13
- end
14
- end
15
-
1
+ # coding: utf-8
2
+ module ActiveFilter
3
+ module Generators
4
+ class FilterGenerator < ::Rails::Generators::NamedBase
5
+ source_root File.expand_path("../templates", __FILE__)
6
+
7
+ argument :attributes, :type => :array, :default => [], :banner => "field field"
8
+
9
+ def create_filter_file
10
+ template "filter.rb", "app/filters/#{file_name}_filter.rb"
11
+ end
12
+ end
13
+ end
14
+ end
15
+
@@ -1,4 +1,4 @@
1
- # desc "Explaining what the task does"
2
- # task :active_filter do
3
- # # Task goes here
4
- # end
1
+ # desc "Explaining what the task does"
2
+ # task :active_filter do
3
+ # # Task goes here
4
+ # end
metadata CHANGED
@@ -1,94 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
5
- prerelease:
4
+ version: 0.0.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - tnakamura
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-14 00:00:00.000000000 Z
11
+ date: 2013-08-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activerecord
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
28
39
  - !ruby/object:Gem::Version
29
40
  version: '3'
30
41
  - !ruby/object:Gem::Dependency
31
42
  name: rails
32
43
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
44
  requirements:
35
- - - ! '>='
45
+ - - '>='
36
46
  - !ruby/object:Gem::Version
37
47
  version: '3'
38
48
  type: :runtime
39
49
  prerelease: false
40
50
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
51
  requirements:
43
- - - ! '>='
52
+ - - '>='
44
53
  - !ruby/object:Gem::Version
45
54
  version: '3'
46
55
  - !ruby/object:Gem::Dependency
47
56
  name: sqlite3
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
- - - ! '>='
59
+ - - '>='
52
60
  - !ruby/object:Gem::Version
53
61
  version: '0'
54
62
  type: :development
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
- - - ! '>='
66
+ - - '>='
60
67
  - !ruby/object:Gem::Version
61
68
  version: '0'
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: rspec
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
- - - ! '>='
73
+ - - '>='
68
74
  - !ruby/object:Gem::Version
69
75
  version: '0'
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
- - - ! '>='
80
+ - - '>='
76
81
  - !ruby/object:Gem::Version
77
82
  version: '0'
78
83
  - !ruby/object:Gem::Dependency
79
84
  name: rspec-rails
80
85
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
86
  requirements:
83
- - - ! '>='
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: factory_girl_rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: database_cleaner
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
84
116
  - !ruby/object:Gem::Version
85
117
  version: '0'
86
118
  type: :development
87
119
  prerelease: false
88
120
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
121
  requirements:
91
- - - ! '>='
122
+ - - '>='
92
123
  - !ruby/object:Gem::Version
93
124
  version: '0'
94
125
  description: ActiveFilter is a Rails engine for allowing users to filter scope dynamically.
@@ -121,32 +152,25 @@ files:
121
152
  - README.md
122
153
  homepage: https://github.com/tnakamura/active_filter
123
154
  licenses: []
155
+ metadata: {}
124
156
  post_install_message:
125
157
  rdoc_options: []
126
158
  require_paths:
127
159
  - lib
128
160
  required_ruby_version: !ruby/object:Gem::Requirement
129
- none: false
130
161
  requirements:
131
- - - ! '>='
162
+ - - '>='
132
163
  - !ruby/object:Gem::Version
133
164
  version: '0'
134
- segments:
135
- - 0
136
- hash: -272579427
137
165
  required_rubygems_version: !ruby/object:Gem::Requirement
138
- none: false
139
166
  requirements:
140
- - - ! '>='
167
+ - - '>='
141
168
  - !ruby/object:Gem::Version
142
169
  version: '0'
143
- segments:
144
- - 0
145
- hash: -272579427
146
170
  requirements: []
147
171
  rubyforge_project:
148
- rubygems_version: 1.8.24
172
+ rubygems_version: 2.0.0
149
173
  signing_key:
150
- specification_version: 3
174
+ specification_version: 4
151
175
  summary: A rails engine for filtering scope based on user selections.
152
176
  test_files: []