easy_filter 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.ruby-version +1 -1
- data/.travis.yml +6 -0
- data/README.md +11 -1
- data/easy_filter.gemspec +1 -1
- data/lib/easy_filter/model_additions.rb +25 -10
- data/lib/easy_filter/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OTE3NjFkMzY5ZmYwMTIyNmUzMWUyZGYyNjkxZDhmMzE0NTNhMzdkMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTlkZjNmNWExMDE5OTVhZTE4YmI4MGIwMzM1MWM0MTFmZWQ3Y2ExMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmVmZjYxMTg2MGFmYjc3ZTY0NjE4MTRmMzU1N2UxYWZjMzA4MTEzZjRiNDU3
|
10
|
+
NTY3M2FiNTQ2YTJkNGFlMWY1NGU3OGExYmUxNzNiYThkMzQ4Zjg2ZTUxMWU4
|
11
|
+
NDUyOTRkMThhZDFhZDc3ZjkyMjgyMGU4YTJiZDEwYzFhZmI5ZmY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OGYxYmNjYmUzYTZkMTg2NTE4MDU4MzNkOGRkMTUwNmJmMDM0MWM5N2ViYTA4
|
14
|
+
ZTExNTMzOWUyZjYwY2ZlYzQ5ODYwZTUxNGMwNDdhN2Y1MmU4Yzk0OGMwOTM1
|
15
|
+
ZjFjOTNhODBiOTA0Mzk4YTEyMDgyNmRjZGZmYzExZTBlMWYwZGI=
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-1.9.3
|
1
|
+
ruby-1.9.3
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# EasyFilter
|
2
2
|
|
3
|
-
By [Peter Kepes](https://github.com/kepes)
|
3
|
+
By [Peter Kepes](https://github.com/kepes)
|
4
|
+
|
5
|
+
[![Build Status](https://travis-ci.org/kepes/easy-filter.svg?branch=master)](https://travis-ci.org/kepes/easy-filter)
|
4
6
|
|
5
7
|
Filter and sort `ActiveRecord` model for Rails app with [Bootstrap](http://getbootstrap.com/) view helpers.
|
6
8
|
|
@@ -18,6 +20,14 @@ Or install it yourself as:
|
|
18
20
|
|
19
21
|
$ gem install easy_filter
|
20
22
|
|
23
|
+
In `application.js`:
|
24
|
+
|
25
|
+
//= require easy_filter
|
26
|
+
|
27
|
+
In `application.css.scss`:
|
28
|
+
|
29
|
+
*= require easy_filter
|
30
|
+
|
21
31
|
## Usage
|
22
32
|
|
23
33
|
Gem provide an AciveRecord model addition and a view helper.
|
data/easy_filter.gemspec
CHANGED
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency 'rake'
|
22
22
|
spec.add_development_dependency 'rspec'
|
23
23
|
spec.add_development_dependency 'rubocop'
|
24
|
-
spec.add_development_dependency 'activerecord'
|
24
|
+
spec.add_development_dependency 'activerecord', '~> 3.2'
|
25
25
|
spec.add_development_dependency 'sqlite3'
|
26
26
|
end
|
@@ -11,17 +11,10 @@ module EasyFilter
|
|
11
11
|
params.each do |key, value|
|
12
12
|
next unless key.start_with?(prefixes[:main]) && !value.blank? && key != "#{prefixes[:main]}button"
|
13
13
|
|
14
|
-
field = key
|
15
|
-
|
16
|
-
filter = filter.where("#{field.gsub(prefixes[:from], '')} >= ?", value)
|
17
|
-
elsif field.start_with?(prefixes[:to])
|
18
|
-
filter = filter.where("#{field.gsub(prefixes[:to], '')} <= ?", value)
|
19
|
-
elsif field.start_with?(prefixes[:exact])
|
20
|
-
filter = filter.where("#{field.gsub(prefixes[:exact], '')} = ?", value)
|
21
|
-
else
|
22
|
-
filter = filter.where("#{field} like ?", "%#{value}%")
|
23
|
-
end
|
14
|
+
field = del_prefix(key, prefixes[:main])
|
15
|
+
filter = add_where(filter, field, value, prefixes)
|
24
16
|
end
|
17
|
+
|
25
18
|
params[prefixes[:sort]] ||= 'id'
|
26
19
|
params[prefixes[:direction]] ||= 'desc'
|
27
20
|
|
@@ -30,5 +23,27 @@ module EasyFilter
|
|
30
23
|
|
31
24
|
filter.order("#{sort_column} #{sort_direction}")
|
32
25
|
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def add_where(filter, field, value, prefixes)
|
30
|
+
if field.start_with?(prefixes[:from])
|
31
|
+
filter.where("#{del_prefix(field, prefixes[:from])} >= ?", value)
|
32
|
+
|
33
|
+
elsif field.start_with?(prefixes[:to])
|
34
|
+
filter.where("#{del_prefix(field, prefixes[:to])} <= ?", value)
|
35
|
+
|
36
|
+
elsif field.start_with?(prefixes[:exact])
|
37
|
+
filter.where("#{del_prefix(field, prefixes[:exact])} = ?", value)
|
38
|
+
|
39
|
+
else
|
40
|
+
filter.where("#{field} like ?", "%#{value}%")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def del_prefix(name, prefix)
|
45
|
+
return name.gsub(prefix, '').to_s if name.start_with?(prefix)
|
46
|
+
name
|
47
|
+
end
|
33
48
|
end
|
34
49
|
end
|
data/lib/easy_filter/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Kepes
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: activerecord
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '3.2'
|
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
|
-
version: '
|
82
|
+
version: '3.2'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: sqlite3
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,6 +107,7 @@ files:
|
|
107
107
|
- .rubocop.yml
|
108
108
|
- .ruby-gemset
|
109
109
|
- .ruby-version
|
110
|
+
- .travis.yml
|
110
111
|
- CHANGELOG.md
|
111
112
|
- Gemfile
|
112
113
|
- LICENSE.txt
|