active_filter 0.0.5 → 0.0.6
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.
- data/MIT-LICENSE +20 -20
- data/Rakefile +27 -27
- data/lib/active_filter.rb +7 -8
- data/lib/active_filter/base.rb +107 -91
- data/lib/active_filter/filter.rb +0 -64
- data/lib/active_filter/filter/boolean_filter.rb +21 -0
- data/lib/active_filter/filter/date_filter.rb +12 -0
- data/lib/active_filter/filter/date_time_filter.rb +16 -0
- data/lib/active_filter/filter/decimal_filter.rb +8 -0
- data/lib/active_filter/filter/float_filter.rb +11 -0
- data/lib/active_filter/filter/integer_filter.rb +15 -0
- data/lib/active_filter/filter/string_filter.rb +11 -0
- data/lib/active_filter/filter/text_filter.rb +7 -0
- data/lib/active_filter/filter/time_filter.rb +12 -0
- data/lib/active_filter/version.rb +3 -3
- data/lib/generators/active_filter/filter_generator.rb +15 -15
- data/lib/tasks/active_filter_tasks.rake +4 -4
- metadata +14 -5
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/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,8 +1,7 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require "active_filter/version"
|
3
|
-
require "active_filter/
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
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
|
data/lib/active_filter/base.rb
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
require "active_filter/filter"
|
3
|
+
require "active_filter/filter/string_filter"
|
4
|
+
require "active_filter/filter/text_filter"
|
5
|
+
require "active_filter/filter/integer_filter"
|
6
|
+
require "active_filter/filter/float_filter"
|
7
|
+
require "active_filter/filter/decimal_filter"
|
8
|
+
require "active_filter/filter/boolean_filter"
|
9
|
+
require "active_filter/filter/date_time_filter"
|
10
|
+
require "active_filter/filter/date_filter"
|
11
|
+
require "active_filter/filter/time_filter"
|
3
12
|
|
4
13
|
module ActiveFilter
|
5
14
|
class Base
|
@@ -11,19 +20,19 @@ module ActiveFilter
|
|
11
20
|
@data = data
|
12
21
|
@scope = scope
|
13
22
|
|
14
|
-
columns = self.
|
15
|
-
|
23
|
+
columns = self.model.columns
|
24
|
+
|
16
25
|
# fields で指定した列だけをフィルタ可能にする
|
17
|
-
fields = self.class._fields
|
26
|
+
fields = self.class.__send__(:_fields)
|
18
27
|
unless fields.empty?
|
19
28
|
columns = columns.select { |column|
|
20
29
|
fields.include?(column.name) ||
|
21
30
|
fields.include?(column.name.to_sym)
|
22
31
|
}
|
23
32
|
end
|
24
|
-
|
33
|
+
|
25
34
|
# exclude で指定した列を除外する
|
26
|
-
excludes = self.class._exclude
|
35
|
+
excludes = self.class.__send__(:_exclude)
|
27
36
|
unless excludes.empty?
|
28
37
|
columns = columns.reject { |column|
|
29
38
|
fields.include?(column.name) ||
|
@@ -36,91 +45,52 @@ module ActiveFilter
|
|
36
45
|
}
|
37
46
|
end
|
38
47
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
end
|
48
|
+
module ClassMethods
|
49
|
+
# フィルタを作成する対象のモデルを指定します。
|
50
|
+
def model(klass)
|
51
|
+
# Class クラスのインスタンスである ActiveFilter::Base オブジェクトの
|
52
|
+
# インスタンス変数にモデルの型を格納
|
53
|
+
unless klass.ancestors.include?(ActiveRecord::Base)
|
54
|
+
raise ArgumentError.new("klass required inherit ActiveRecord::Base")
|
55
|
+
end
|
56
|
+
@model = klass
|
57
|
+
end
|
50
58
|
|
51
|
-
|
52
|
-
|
53
|
-
|
59
|
+
def fields(*names)
|
60
|
+
# Class クラスのインスタンスである ActiveFilter::Base オブジェクトの
|
61
|
+
# インスタンス変数にフィールド名を格納
|
62
|
+
@fields = names
|
63
|
+
end
|
54
64
|
|
55
|
-
|
56
|
-
|
57
|
-
when :primary_key
|
58
|
-
return Filter.new(column.name)
|
59
|
-
when :string
|
60
|
-
return StringFilter.new(column.name)
|
61
|
-
when :text
|
62
|
-
return TextFilter.new(column.name)
|
63
|
-
when :integer
|
64
|
-
return IntegerFilter.new(column.name)
|
65
|
-
when :float
|
66
|
-
return FloatFilter.new(column.name)
|
67
|
-
when :decimal
|
68
|
-
return DecimalFilter.new(column.name)
|
69
|
-
when :datetime
|
70
|
-
return DateTimeFilter.new(column.name)
|
71
|
-
when :timestamp
|
72
|
-
return Filter.new(column.name)
|
73
|
-
when :time
|
74
|
-
return TimeFilter.new(column.name)
|
75
|
-
when :date
|
76
|
-
return DateFilter.new(column.name)
|
77
|
-
when :binary
|
78
|
-
return Filter.new(column.name)
|
79
|
-
when :boolean
|
80
|
-
return BooleanFilter.new(column.name)
|
81
|
-
else
|
82
|
-
raise ArgumentError.new("#{column.type} is not supported.")
|
65
|
+
def exclude(*names)
|
66
|
+
@excludes = names
|
83
67
|
end
|
84
|
-
end
|
85
|
-
private :_create_filter_from_column
|
86
68
|
|
87
|
-
|
88
|
-
|
89
|
-
def _scoped
|
90
|
-
if @scope.nil?
|
91
|
-
self.class._model.scoped
|
92
|
-
else
|
93
|
-
@scope
|
69
|
+
def order(*names)
|
70
|
+
@orders = names
|
94
71
|
end
|
95
|
-
end
|
96
|
-
private :_scoped
|
97
72
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
# インスタンス変数にモデルの型を格納
|
102
|
-
unless klass.ancestors.include?(ActiveRecord::Base)
|
103
|
-
raise ArgumentError.new("klass required inherit ActiveRecord::Base")
|
73
|
+
private
|
74
|
+
def _model
|
75
|
+
@model
|
104
76
|
end
|
105
|
-
@model = klass
|
106
|
-
end
|
107
77
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
@fields = names
|
112
|
-
end
|
78
|
+
def _fields
|
79
|
+
@fields ||= []
|
80
|
+
end
|
113
81
|
|
114
|
-
|
115
|
-
|
116
|
-
|
82
|
+
def _exclude
|
83
|
+
@excludes ||= []
|
84
|
+
end
|
117
85
|
|
118
|
-
|
119
|
-
|
86
|
+
def _orders
|
87
|
+
@orders ||= []
|
88
|
+
end
|
120
89
|
end
|
90
|
+
extend ClassMethods
|
121
91
|
|
122
92
|
def model
|
123
|
-
self.class._model
|
93
|
+
self.class.__send__(:_model)
|
124
94
|
end
|
125
95
|
|
126
96
|
def each(&block)
|
@@ -135,19 +105,6 @@ module ActiveFilter
|
|
135
105
|
self
|
136
106
|
end
|
137
107
|
|
138
|
-
def _lookups_from_filter(filter)
|
139
|
-
lookups = { filter.name => "exact" }
|
140
|
-
|
141
|
-
lookup_types = [filter.lookup_type].flatten
|
142
|
-
lookup_types.each do |lookup_type|
|
143
|
-
lookup = "#{filter.name}__#{lookup_type}"
|
144
|
-
lookups[lookup] = lookup_type
|
145
|
-
end
|
146
|
-
|
147
|
-
lookups
|
148
|
-
end
|
149
|
-
private :_lookups_from_filter
|
150
|
-
|
151
108
|
def to_scope
|
152
109
|
scope = _scoped
|
153
110
|
matched = false
|
@@ -173,12 +130,71 @@ module ActiveFilter
|
|
173
130
|
scope = scope.where("1 = 2")
|
174
131
|
end
|
175
132
|
|
176
|
-
self.class._orders.each do |order|
|
133
|
+
self.class.__send__(:_orders).each do |order|
|
177
134
|
scope = scope.order(order.to_s)
|
178
135
|
end
|
179
136
|
|
180
137
|
scope
|
181
138
|
end
|
139
|
+
|
140
|
+
private
|
141
|
+
# コンストラクタで受け取ったスコープまたは
|
142
|
+
# model.scoped を返す
|
143
|
+
def _scoped
|
144
|
+
if @scope.nil?
|
145
|
+
if ActiveRecord::VERSION::STRING < '4.0'
|
146
|
+
self.model.scoped
|
147
|
+
else
|
148
|
+
# Rails 4 以上のとき
|
149
|
+
self.model.all
|
150
|
+
end
|
151
|
+
else
|
152
|
+
@scope
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
def _lookups_from_filter(filter)
|
157
|
+
lookups = { filter.name => "exact" }
|
158
|
+
|
159
|
+
lookup_types = [filter.lookup_type].flatten
|
160
|
+
lookup_types.each do |lookup_type|
|
161
|
+
lookup = "#{filter.name}__#{lookup_type}"
|
162
|
+
lookups[lookup] = lookup_type
|
163
|
+
end
|
164
|
+
|
165
|
+
lookups
|
166
|
+
end
|
167
|
+
|
168
|
+
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)
|
194
|
+
else
|
195
|
+
raise ArgumentError.new("#{column.type} is not supported.")
|
196
|
+
end
|
197
|
+
end
|
182
198
|
end
|
183
199
|
end
|
184
200
|
|
data/lib/active_filter/filter.rb
CHANGED
@@ -36,69 +36,5 @@ module ActiveFilter
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
39
|
-
|
40
|
-
class StringFilter < Filter
|
41
|
-
def lookup_type
|
42
|
-
["exact", "contains"]
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
class TextFilter < StringFilter;end
|
47
|
-
|
48
|
-
class IntegerFilter < Filter
|
49
|
-
def lookup_type
|
50
|
-
["exact", "gt", "lt", "gte", "lte"]
|
51
|
-
end
|
52
|
-
|
53
|
-
def convert_value(value)
|
54
|
-
value.to_i
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
class FloatFilter < IntegerFilter
|
59
|
-
def convert_value(value)
|
60
|
-
value.to_f
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
class DecimalFilter < IntegerFilter;end
|
65
|
-
|
66
|
-
class DateTimeFilter < Filter
|
67
|
-
def lookup_type
|
68
|
-
["exact", "gt", "lt", "gte", "lte"]
|
69
|
-
end
|
70
|
-
|
71
|
-
def convert_value(value)
|
72
|
-
value.to_datetime
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
class DateFilter < DateTimeFilter
|
77
|
-
def convert_value(value)
|
78
|
-
value.to_date
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
class TimeFilter < DateTimeFilter
|
83
|
-
def convert_value(value)
|
84
|
-
value.to_time
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
class BooleanFilter < Filter
|
89
|
-
def convert_value(value)
|
90
|
-
compare_value = value.is_a?(String) ? value.downcase : value
|
91
|
-
case compare_value
|
92
|
-
when "no", "false", false, "0", 0
|
93
|
-
false
|
94
|
-
when "yes", "true", true, "1", 1
|
95
|
-
true
|
96
|
-
when nil
|
97
|
-
false
|
98
|
-
else
|
99
|
-
!!compare_value
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
39
|
end
|
104
40
|
|
@@ -0,0 +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
|
+
|
@@ -0,0 +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,3 +1,3 @@
|
|
1
|
-
module ActiveFilter
|
2
|
-
VERSION = "0.0.
|
3
|
-
end
|
1
|
+
module ActiveFilter
|
2
|
+
VERSION = "0.0.6"
|
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,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -100,6 +100,15 @@ extra_rdoc_files: []
|
|
100
100
|
files:
|
101
101
|
- lib/active_filter/base.rb
|
102
102
|
- lib/active_filter/engine.rb
|
103
|
+
- lib/active_filter/filter/boolean_filter.rb
|
104
|
+
- lib/active_filter/filter/date_filter.rb
|
105
|
+
- lib/active_filter/filter/date_time_filter.rb
|
106
|
+
- lib/active_filter/filter/decimal_filter.rb
|
107
|
+
- lib/active_filter/filter/float_filter.rb
|
108
|
+
- lib/active_filter/filter/integer_filter.rb
|
109
|
+
- lib/active_filter/filter/string_filter.rb
|
110
|
+
- lib/active_filter/filter/text_filter.rb
|
111
|
+
- lib/active_filter/filter/time_filter.rb
|
103
112
|
- lib/active_filter/filter.rb
|
104
113
|
- lib/active_filter/railtie.rb
|
105
114
|
- lib/active_filter/version.rb
|
@@ -124,7 +133,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
124
133
|
version: '0'
|
125
134
|
segments:
|
126
135
|
- 0
|
127
|
-
hash:
|
136
|
+
hash: -272579427
|
128
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
138
|
none: false
|
130
139
|
requirements:
|
@@ -133,10 +142,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
142
|
version: '0'
|
134
143
|
segments:
|
135
144
|
- 0
|
136
|
-
hash:
|
145
|
+
hash: -272579427
|
137
146
|
requirements: []
|
138
147
|
rubyforge_project:
|
139
|
-
rubygems_version: 1.8.
|
148
|
+
rubygems_version: 1.8.24
|
140
149
|
signing_key:
|
141
150
|
specification_version: 3
|
142
151
|
summary: A rails engine for filtering scope based on user selections.
|