filterable_sortable 0.0.1 → 0.0.2
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/README.md +11 -2
- data/filterable_sortable.gemspec +1 -1
- data/lib/filterable_sortable.rb +14 -2
- data/lib/filterable_sortable/version.rb +1 -1
- metadata +12 -20
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d2fc6f256b4d67a18b33b20af2cb6aec7f49d929
|
4
|
+
data.tar.gz: 5bc251c07c2a831c186ba0aee95367fa32922350
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 19d1a05d69f1f36ab1eb10dbd849534d689e5c615e9a392ddd41134bf119ccfe6604d89481a1be1f3c31e50c6f2dbb49653c1e8432a10bc6057a2b71cd57cb1d
|
7
|
+
data.tar.gz: 2c44e1d961a8cb20a142bf94f5fb92800a4d2e3c2a7af2b45d5924bf870c765c26fb7577f41d243958e1a44ffbe8b03698483a002cd4ad6fc80ffae83ffc3eab
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# FilterableSortable
|
2
2
|
|
3
|
-
Gem generates :filtered and :sorted scopes, can be easily used for building admin
|
3
|
+
Gem generates :filtered and :sorted scopes, can be easily used for building admin namespace or other filterable sortable architecture.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -41,11 +41,20 @@ In controllers add scopes to index action. I use 'will_paginate' gem, so here is
|
|
41
41
|
```
|
42
42
|
|
43
43
|
### Views
|
44
|
+
#### Filtering and sorting
|
44
45
|
|
45
46
|
In views you can use links with params for order and filter. Example in Haml.
|
46
47
|
|
47
48
|
```ruby
|
48
|
-
= link_to 'Name', posts_path(filter: :name, order: {field: :name, direction: :ASC})
|
49
|
+
= link_to 'Name', posts_path(filter: {custom: :name}, order: {field: :name, direction: :ASC})
|
50
|
+
```
|
51
|
+
#### Searching
|
52
|
+
|
53
|
+
Simple search is also acts as filter, works as scope, already defined in gem, so enjoy it.
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
= form_tag posts_path do
|
57
|
+
= text_field_tag :'filter[search]'
|
49
58
|
```
|
50
59
|
|
51
60
|
## Contributing
|
data/filterable_sortable.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = ["gaar4ica@gmail.com"]
|
11
11
|
s.description = 'Gem generates :filtered and :sorted scopes, can be easily used for building admin zone or other filterable sortable architecture.'
|
12
12
|
s.summary = 'Model-based filterable and sortable functionality.'
|
13
|
-
s.homepage = ""
|
13
|
+
s.homepage = "https://github.com/gaar4ica/filterable_sortable"
|
14
14
|
s.license = "MIT"
|
15
15
|
|
16
16
|
s.files = `git ls-files`.split($/)
|
data/lib/filterable_sortable.rb
CHANGED
@@ -5,8 +5,20 @@ module FilterableSortable
|
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
7
|
included do
|
8
|
-
|
8
|
+
|
9
|
+
scope :filtered, lambda { |filter|
|
10
|
+
if filter[:search]
|
11
|
+
search(filter[:search])
|
12
|
+
elsif filter[:custom]
|
13
|
+
end
|
14
|
+
}
|
15
|
+
|
16
|
+
scope :search, lambda { |term|
|
17
|
+
conditions = Array.new(self.attribute_names).delete_if{|i| i.in? ["created_at", "updated_at"] }.collect{|f| "#{f} like '%#{term}%'"}.join(' OR ')
|
18
|
+
where(conditions)
|
19
|
+
}
|
20
|
+
|
9
21
|
scope :ordered, lambda { |ordered| order("#{ordered[:field]} #{ordered[:direction]}") if ordered }
|
10
|
-
end
|
11
22
|
|
23
|
+
end
|
12
24
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filterable_sortable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Anna Kazakova (gaar4ica)
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-21 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,33 +27,29 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: activesupport
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
description: Gem generates :filtered and :sorted scopes, can be easily used for building
|
@@ -75,29 +68,28 @@ files:
|
|
75
68
|
- filterable_sortable.gemspec
|
76
69
|
- lib/filterable_sortable.rb
|
77
70
|
- lib/filterable_sortable/version.rb
|
78
|
-
homepage:
|
71
|
+
homepage: https://github.com/gaar4ica/filterable_sortable
|
79
72
|
licenses:
|
80
73
|
- MIT
|
74
|
+
metadata: {}
|
81
75
|
post_install_message:
|
82
76
|
rdoc_options: []
|
83
77
|
require_paths:
|
84
78
|
- lib
|
85
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
-
none: false
|
87
80
|
requirements:
|
88
|
-
- -
|
81
|
+
- - '>='
|
89
82
|
- !ruby/object:Gem::Version
|
90
83
|
version: '0'
|
91
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
-
none: false
|
93
85
|
requirements:
|
94
|
-
- -
|
86
|
+
- - '>='
|
95
87
|
- !ruby/object:Gem::Version
|
96
88
|
version: '0'
|
97
89
|
requirements: []
|
98
90
|
rubyforge_project:
|
99
|
-
rubygems_version:
|
91
|
+
rubygems_version: 2.0.3
|
100
92
|
signing_key:
|
101
|
-
specification_version:
|
93
|
+
specification_version: 4
|
102
94
|
summary: Model-based filterable and sortable functionality.
|
103
95
|
test_files: []
|