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 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 zone or other filterable sortable architecture.
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
@@ -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($/)
@@ -5,8 +5,20 @@ module FilterableSortable
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
- scope :filtered, lambda { |filtered| }
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
@@ -1,3 +1,3 @@
1
1
  module FilterableSortable
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  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.1
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-12 00:00:00.000000000 Z
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: 1.8.25
91
+ rubygems_version: 2.0.3
100
92
  signing_key:
101
- specification_version: 3
93
+ specification_version: 4
102
94
  summary: Model-based filterable and sortable functionality.
103
95
  test_files: []