filter_form 0.7.1 → 0.7.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 +13 -5
- data/README.md +4 -2
- data/lib/filter_form/input_options/boolean/base.rb +20 -0
- data/lib/filter_form/input_options/checkbox/base.rb +7 -7
- data/lib/filter_form/input_options/select/base.rb +2 -24
- data/lib/filter_form/input_options/shared/with_associations.rb +31 -0
- data/lib/filter_form/input_options_builder.rb +5 -0
- data/lib/filter_form/version.rb +1 -1
- metadata +18 -15
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OWYwNGI3ZjY3OGZhZDIxOGQ5Mzc1N2QxMTBlYWQ2NmUwMTZiMWM0ZQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YjlhZjZmNDZmYmNjM2QzMDM0OTE1ZGQzMzkwZDg0NzMxNWY1N2NiMg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
Y2UzNTJiYjMyM2Y2Y2E4MTAxZWNlYTllZmQ5Y2E5YjRiZjI0NThmZTFiMTZl
|
10
|
+
YzkxOGIxY2U4MzY0ZGE1MjhkZTYyODJiYTg3MDVjZDQ0ZTQ5NmU2NmYwZGM2
|
11
|
+
NzNmOTlmMGE1OGNiMTgyNDhkYjAzZjQ3MDcxMDRiMmQ5NDA4MDU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MDBkYjkxYTJiNjhmNjJkOTYyZDZkOGUyMTQzNGI4ZDk1YzcxNTNmMjZhZTNk
|
14
|
+
ZTk5MzgzNThiZjJiM2FiOWRmZjliYzhlZWQ2ZmQxNzE0ZTQwYTI2NTg1ODI5
|
15
|
+
Nzk5YjhmZDRhYjZmODE0ZTAzNTc4ZjczMjU4N2Q2ODA4NDA5M2U=
|
data/README.md
CHANGED
@@ -40,6 +40,7 @@ In your view file:
|
|
40
40
|
<%= f.filter_input :city # belongs_to %>
|
41
41
|
<%= f.filter_input :parents # has_many %>
|
42
42
|
<%= f.filter_input :amount # money %>
|
43
|
+
<%= f.filter_input :gender, as: :check_boxes, collection: [[:male, 'Male'], [:female, 'Female']] # checkboxes %>
|
43
44
|
<%= f.button :submit %>
|
44
45
|
<% end %>
|
45
46
|
```
|
@@ -56,8 +57,9 @@ In your view file:
|
|
56
57
|
`decimal` | `decimal` | `eq` | `input[type="number"]` |
|
57
58
|
`date` | `date` | `eq` | `input[type="text"]` |
|
58
59
|
`datetime` | `datetime` | `eq` | `input[type="text"]` |
|
59
|
-
`select` | `belongs_to`/`has_many`/`has_and_belongs_to_many` associations
|
60
|
-
`money` |
|
60
|
+
`select` | `belongs_to`/`has_many`/`has_and_belongs_to_many` associations | `eq` | `select` |
|
61
|
+
`money` | [monetized](https://github.com/RubyMoney/money-rails) attribute | `eq` | `input[type="number"]` |
|
62
|
+
`check_boxes` | `any' | `in` | `input[type=checkbox]` |
|
61
63
|
|
62
64
|
### Customization
|
63
65
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module FilterForm
|
2
|
+
module InputOptions
|
3
|
+
module Boolean
|
4
|
+
class Base < FilterForm::InputOptions::Base
|
5
|
+
DEFAULT_PREDICATE = :true
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def additional_options
|
10
|
+
{ as: :boolean }
|
11
|
+
end
|
12
|
+
|
13
|
+
def additional_input_options
|
14
|
+
super.merge(checked: !!input_value)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -2,19 +2,19 @@ module FilterForm
|
|
2
2
|
module InputOptions
|
3
3
|
module Checkbox
|
4
4
|
class Base < FilterForm::InputOptions::Base
|
5
|
-
|
5
|
+
include FilterForm::InputOptions::Shared::WithAssociations
|
6
|
+
|
7
|
+
DEFAULT_PREDICATE = :in
|
6
8
|
|
7
9
|
private
|
8
10
|
|
9
11
|
def additional_options
|
10
|
-
{
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
super.merge(checked: !!input_value)
|
12
|
+
{
|
13
|
+
as: :check_boxes,
|
14
|
+
collection: collection
|
15
|
+
}
|
15
16
|
end
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
19
20
|
end
|
20
|
-
|
@@ -2,6 +2,8 @@ module FilterForm
|
|
2
2
|
module InputOptions
|
3
3
|
module Select
|
4
4
|
class Base < FilterForm::InputOptions::Base
|
5
|
+
include FilterForm::InputOptions::Shared::WithAssociations
|
6
|
+
|
5
7
|
DEFAULT_PREDICATE = :eq
|
6
8
|
|
7
9
|
private
|
@@ -15,18 +17,6 @@ module FilterForm
|
|
15
17
|
}
|
16
18
|
end
|
17
19
|
|
18
|
-
def collection
|
19
|
-
if options[:collection]
|
20
|
-
options[:collection]
|
21
|
-
elsif belongs_to?
|
22
|
-
attribute_name.to_s.camelize.constantize.all
|
23
|
-
elsif collection?
|
24
|
-
attribute_name.to_s.camelize.singularize.constantize.all
|
25
|
-
else
|
26
|
-
object.klass.uniq.pluck(attribute_name)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
20
|
def input_attribute_name
|
31
21
|
if association
|
32
22
|
"#{ attribute_name }_id"
|
@@ -42,18 +32,6 @@ module FilterForm
|
|
42
32
|
super
|
43
33
|
end
|
44
34
|
end
|
45
|
-
|
46
|
-
def association
|
47
|
-
object.klass.reflections[attribute_name]
|
48
|
-
end
|
49
|
-
|
50
|
-
def belongs_to?
|
51
|
-
association && association.belongs_to?
|
52
|
-
end
|
53
|
-
|
54
|
-
def collection?
|
55
|
-
association && association.collection?
|
56
|
-
end
|
57
35
|
end
|
58
36
|
end
|
59
37
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module FilterForm
|
2
|
+
module InputOptions
|
3
|
+
module Shared
|
4
|
+
module WithAssociations
|
5
|
+
def collection
|
6
|
+
if options[:collection]
|
7
|
+
options[:collection]
|
8
|
+
elsif belongs_to?
|
9
|
+
attribute_name.to_s.camelize.constantize.all
|
10
|
+
elsif collection?
|
11
|
+
attribute_name.to_s.camelize.singularize.constantize.all
|
12
|
+
else
|
13
|
+
object.klass.uniq.pluck(attribute_name)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def association
|
18
|
+
object.klass.reflections[attribute_name]
|
19
|
+
end
|
20
|
+
|
21
|
+
def belongs_to?
|
22
|
+
association && association.belongs_to?
|
23
|
+
end
|
24
|
+
|
25
|
+
def collection?
|
26
|
+
association && association.collection?
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'filter_form/input_options/base'
|
2
|
+
require 'filter_form/input_options/shared/with_associations'
|
2
3
|
|
3
4
|
require 'filter_form/input_options/select/base'
|
4
5
|
|
@@ -8,6 +9,8 @@ require 'filter_form/input_options/string/date'
|
|
8
9
|
require 'filter_form/input_options/number/base'
|
9
10
|
require 'filter_form/input_options/number/money'
|
10
11
|
|
12
|
+
require 'filter_form/input_options/boolean/base'
|
13
|
+
|
11
14
|
require 'filter_form/input_options/checkbox/base'
|
12
15
|
|
13
16
|
module FilterForm
|
@@ -51,6 +54,8 @@ module FilterForm
|
|
51
54
|
when :select2
|
52
55
|
'select/select2'
|
53
56
|
when :boolean
|
57
|
+
'boolean/base'
|
58
|
+
when :check_boxes
|
54
59
|
'checkbox/base'
|
55
60
|
else
|
56
61
|
_type
|
data/lib/filter_form/version.rb
CHANGED
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filter_form
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evgeny Li
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: simple_form
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - '>='
|
17
|
+
- - ! '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - '>='
|
24
|
+
- - ! '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ransack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - '>='
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - '>='
|
38
|
+
- - ! '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: jquery-rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - '>='
|
45
|
+
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - '>='
|
52
|
+
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: select2-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - '>='
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - '>='
|
66
|
+
- - ! '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
@@ -84,14 +84,14 @@ dependencies:
|
|
84
84
|
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - '>='
|
87
|
+
- - ! '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - '>='
|
94
|
+
- - ! '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
description: Build filter forms easily
|
@@ -111,10 +111,12 @@ files:
|
|
111
111
|
- lib/filter_form.rb
|
112
112
|
- lib/filter_form/form_helper.rb
|
113
113
|
- lib/filter_form/input_options/base.rb
|
114
|
+
- lib/filter_form/input_options/boolean/base.rb
|
114
115
|
- lib/filter_form/input_options/checkbox/base.rb
|
115
116
|
- lib/filter_form/input_options/number/base.rb
|
116
117
|
- lib/filter_form/input_options/number/money.rb
|
117
118
|
- lib/filter_form/input_options/select/base.rb
|
119
|
+
- lib/filter_form/input_options/shared/with_associations.rb
|
118
120
|
- lib/filter_form/input_options/string/base.rb
|
119
121
|
- lib/filter_form/input_options/string/date.rb
|
120
122
|
- lib/filter_form/input_options_builder.rb
|
@@ -131,18 +133,19 @@ require_paths:
|
|
131
133
|
- lib
|
132
134
|
required_ruby_version: !ruby/object:Gem::Requirement
|
133
135
|
requirements:
|
134
|
-
- - '>='
|
136
|
+
- - ! '>='
|
135
137
|
- !ruby/object:Gem::Version
|
136
138
|
version: '0'
|
137
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
140
|
requirements:
|
139
|
-
- - '>='
|
141
|
+
- - ! '>='
|
140
142
|
- !ruby/object:Gem::Version
|
141
143
|
version: '0'
|
142
144
|
requirements: []
|
143
145
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.
|
146
|
+
rubygems_version: 2.1.5
|
145
147
|
signing_key:
|
146
148
|
specification_version: 4
|
147
149
|
summary: Build your filter forms automatically
|
148
150
|
test_files: []
|
151
|
+
has_rdoc:
|