active_filter 0.0.6 → 0.0.7
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 +7 -0
- data/MIT-LICENSE +20 -20
- data/README.md +5 -2
- data/Rakefile +27 -27
- data/lib/active_filter.rb +7 -7
- data/lib/active_filter/base.rb +34 -38
- data/lib/active_filter/filter.rb +4 -0
- data/lib/active_filter/filter/boolean_filter.rb +21 -21
- data/lib/active_filter/filter/date_filter.rb +12 -12
- data/lib/active_filter/filter/date_time_filter.rb +16 -16
- data/lib/active_filter/filter/decimal_filter.rb +8 -8
- data/lib/active_filter/filter/float_filter.rb +11 -11
- data/lib/active_filter/filter/integer_filter.rb +15 -15
- data/lib/active_filter/filter/string_filter.rb +11 -11
- data/lib/active_filter/filter/text_filter.rb +7 -7
- data/lib/active_filter/filter/time_filter.rb +12 -12
- 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 +59 -35
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 [](https://travis-ci.org/tnakamura/active_filter) [](https://codeclimate.com/github/tnakamura/active_filter) [](https://gemnasium.com/tnakamura/active_filter) [](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(
|
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
|
data/lib/active_filter/base.rb
CHANGED
@@ -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
|
-
|
170
|
-
|
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
|
data/lib/active_filter/filter.rb
CHANGED
@@ -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.
|
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.
|
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-
|
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:
|
172
|
+
rubygems_version: 2.0.0
|
149
173
|
signing_key:
|
150
|
-
specification_version:
|
174
|
+
specification_version: 4
|
151
175
|
summary: A rails engine for filtering scope based on user selections.
|
152
176
|
test_files: []
|