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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTQ4MDFmOTlmY2I5ODkxMDliNjViOGYyY2ViNDUxMjczOTJjNTg2MA==
4
+ OTE3NjFkMzY5ZmYwMTIyNmUzMWUyZGYyNjkxZDhmMzE0NTNhMzdkMg==
5
5
  data.tar.gz: !binary |-
6
- MTU0YTMzMmNiMTg5NTUwODQ0OGU0NmFhODhkNTIzODYxOWU2MzIxOQ==
6
+ NTlkZjNmNWExMDE5OTVhZTE4YmI4MGIwMzM1MWM0MTFmZWQ3Y2ExMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MWY2M2YyZGE0MTFkYmU4ZTk4MDRlZmE0Mjk0NmI4ODMzM2FjMjkwNjYxZTA4
10
- YmE3ODA0MDg1MGNmNTAwMTBmYWVkYWFjZTU1YWExMDZkMGYyYWJlMDI1ZmNh
11
- YzRjYjU4NGRjYmE1ZmE0ZmZkMjYwMjQ2ZGMzZDMzZjVjNTk4MGU=
9
+ NmVmZjYxMTg2MGFmYjc3ZTY0NjE4MTRmMzU1N2UxYWZjMzA4MTEzZjRiNDU3
10
+ NTY3M2FiNTQ2YTJkNGFlMWY1NGU3OGExYmUxNzNiYThkMzQ4Zjg2ZTUxMWU4
11
+ NDUyOTRkMThhZDFhZDc3ZjkyMjgyMGU4YTJiZDEwYzFhZmI5ZmY=
12
12
  data.tar.gz: !binary |-
13
- NjQ1OGYxZWZkZmQ5Y2YzZGYwYzMwYWE1N2FhMjYyNWQxNzE2OGFhNzM1YzA2
14
- ZjhmNWUxMGE5ODgwNWNkNmQyNDRkY2QzZDE4NzY2ZTdkN2NhZmE4YWI5YzYw
15
- OWMwMzIyOGIxMTk5MzEyNTFmMzNjZjhkMGU1MzQ3NmQ3NWNjMTg=
13
+ OGYxYmNjYmUzYTZkMTg2NTE4MDU4MzNkOGRkMTUwNmJmMDM0MWM5N2ViYTA4
14
+ ZTExNTMzOWUyZjYwY2ZlYzQ5ODYwZTUxNGMwNDdhN2Y1MmU4Yzk0OGMwOTM1
15
+ ZjFjOTNhODBiOTA0Mzk4YTEyMDgyNmRjZGZmYzExZTBlMWYwZGI=
@@ -1 +1 @@
1
- ruby-1.9.3-p484
1
+ ruby-1.9.3
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.9.3"
4
+ script:
5
+ - bundle exec rubocop
6
+ - bundle exec rake
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.
@@ -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.gsub(prefixes[:main], '').to_s
15
- if field.start_with?(prefixes[:from])
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
@@ -1,4 +1,4 @@
1
1
  # EasyFilter version number
2
2
  module EasyFilter
3
- VERSION = '0.0.3'
3
+ VERSION = '0.0.4'
4
4
  end
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.3
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: '0'
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: '0'
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