easy_filter 0.0.3 → 0.0.4

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 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