meta_search 0.9.4 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +5 -0
- data/VERSION +1 -1
- data/lib/meta_search/helpers/form_builder.rb +16 -8
- data/meta_search.gemspec +2 -2
- data/test/test_view_helpers.rb +9 -9
- metadata +3 -3
data/CHANGELOG
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
Changes since 0.9.4 (2010-09-18):
|
2
|
+
* Rename check_boxes and collection_check_boxes to checks and
|
3
|
+
collection_checks. Alias to the old names if not already taken. This
|
4
|
+
is to avoid conflicts with SimpleForm.
|
5
|
+
|
1
6
|
Changes since 0.9.3 (2010-09-08):
|
2
7
|
* Minor documentation fixes.
|
3
8
|
* Add sort_link helper to FormBuilder, to spare keystrokes if sort_links
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.5
|
@@ -6,6 +6,14 @@ module MetaSearch
|
|
6
6
|
module Helpers
|
7
7
|
module FormBuilder
|
8
8
|
|
9
|
+
def self.included(base)
|
10
|
+
# Only take on the check_boxes method names if someone else (Hi, José!) hasn't grabbed them.
|
11
|
+
base.class_eval do
|
12
|
+
alias_method :check_boxes, :checks unless method_defined?(:check_boxes)
|
13
|
+
alias_method :collection_check_boxes, :collection_checks unless method_defined?(:collection_check_boxes)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
9
17
|
# Like other form_for field methods (text_field, hidden_field, password_field) etc,
|
10
18
|
# but takes a list of hashes between the +method+ parameter and the trailing option hash,
|
11
19
|
# if any, to specify a number of fields to create in multiparameter fashion.
|
@@ -70,7 +78,7 @@ module MetaSearch
|
|
70
78
|
#
|
71
79
|
# <h4>How many heads?</h4>
|
72
80
|
# <ul>
|
73
|
-
# <% f.
|
81
|
+
# <% f.checks :number_of_heads_in,
|
74
82
|
# [['One', 1], ['Two', 2], ['Three', 3]], :class => 'checkboxy' do |check| %>
|
75
83
|
# <li>
|
76
84
|
# <%= check.box %>
|
@@ -83,10 +91,10 @@ module MetaSearch
|
|
83
91
|
#
|
84
92
|
# <b>Grouping:</b>
|
85
93
|
#
|
86
|
-
# Chain <tt>in_groups_of(<num>, false)</tt> on
|
94
|
+
# Chain <tt>in_groups_of(<num>, false)</tt> on checks like so:
|
87
95
|
# <h4>How many heads?</h4>
|
88
96
|
# <p>
|
89
|
-
# <% f.
|
97
|
+
# <% f.checks(:number_of_heads_in,
|
90
98
|
# [['One', 1], ['Two', 2], ['Three', 3]],
|
91
99
|
# :class => 'checkboxy').in_groups_of(2, false) do |checks| %>
|
92
100
|
# <% checks.each do |check| %>
|
@@ -96,23 +104,23 @@ module MetaSearch
|
|
96
104
|
# <br />
|
97
105
|
# <% end %>
|
98
106
|
# </p>
|
99
|
-
def
|
107
|
+
def checks(method, choices = [], options = {}, &block)
|
100
108
|
unless choices.first.respond_to?(:first) && choices.first.respond_to?(:last)
|
101
109
|
raise ArgumentError, 'invalid choice array specified'
|
102
110
|
end
|
103
|
-
|
111
|
+
collection_checks(method, choices, :last, :first, options, &block)
|
104
112
|
end
|
105
113
|
|
106
|
-
# Just like +
|
114
|
+
# Just like +checks+, but this time you can pass in a collection, value, and text method,
|
107
115
|
# as with collection_select.
|
108
116
|
#
|
109
117
|
# Example:
|
110
118
|
#
|
111
|
-
# <% f.
|
119
|
+
# <% f.collection_checks :head_sizes_in, HeadSize.all,
|
112
120
|
# :id, :name, :class => 'headcheck' do |check| %>
|
113
121
|
# <%= check.box %> <%= check.label %>
|
114
122
|
# <% end %>
|
115
|
-
def
|
123
|
+
def collection_checks(method, collection, value_method, text_method, options = {}, &block)
|
116
124
|
check_boxes = []
|
117
125
|
collection.each do |choice|
|
118
126
|
text = choice.send(text_method)
|
data/meta_search.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{meta_search}
|
8
|
-
s.version = "0.9.
|
8
|
+
s.version = "0.9.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ernie Miller"]
|
12
|
-
s.date = %q{2010-09-
|
12
|
+
s.date = %q{2010-09-28}
|
13
13
|
s.description = %q{
|
14
14
|
Allows simple search forms to be created against an AR3 model
|
15
15
|
and its associations, has useful view helpers for sort links
|
data/test/test_view_helpers.rb
CHANGED
@@ -75,7 +75,7 @@ class TestViewHelpers < ActionView::TestCase
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
-
context "A form using
|
78
|
+
context "A form using checks with three choices" do
|
79
79
|
setup do
|
80
80
|
@s = Company.search
|
81
81
|
form_for @s do |f|
|
@@ -84,7 +84,7 @@ class TestViewHelpers < ActionView::TestCase
|
|
84
84
|
end
|
85
85
|
|
86
86
|
should "return an array of check boxes without a block" do
|
87
|
-
assert @f.
|
87
|
+
assert @f.checks(:id_in, [['One', 1], ['Two', 2], ['Three', 3]]).all?{|c| c.is_a?(MetaSearch::Check)}
|
88
88
|
end
|
89
89
|
|
90
90
|
should "generate the expected HTML with a block" do
|
@@ -104,7 +104,7 @@ class TestViewHelpers < ActionView::TestCase
|
|
104
104
|
EXPECTED
|
105
105
|
assert_dom_equal expected,
|
106
106
|
render(:to => :string, :inline => <<-ERB)
|
107
|
-
<%= @f.
|
107
|
+
<%= @f.checks(:id_in, [['One', 1], ['Two', 2], ['Three', 3]]) do |c| -%>
|
108
108
|
<p>
|
109
109
|
<%= c.label %>
|
110
110
|
<%= c.box %>
|
@@ -114,7 +114,7 @@ class TestViewHelpers < ActionView::TestCase
|
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
117
|
-
context "A form using
|
117
|
+
context "A form using checks with three choices and a previous selection" do
|
118
118
|
setup do
|
119
119
|
@s = Company.search
|
120
120
|
@s.id_in = [1, 3]
|
@@ -124,7 +124,7 @@ class TestViewHelpers < ActionView::TestCase
|
|
124
124
|
end
|
125
125
|
|
126
126
|
should "return an array of check boxes without a block" do
|
127
|
-
assert @f.
|
127
|
+
assert @f.checks(:id_in, [['One', 1], ['Two', 2], ['Three', 3]]).all?{|c| c.is_a?(MetaSearch::Check)}
|
128
128
|
end
|
129
129
|
|
130
130
|
should "generate the expected HTML with a block" do
|
@@ -144,7 +144,7 @@ class TestViewHelpers < ActionView::TestCase
|
|
144
144
|
EXPECTED
|
145
145
|
assert_dom_equal expected,
|
146
146
|
render(:to => :string, :inline => <<-ERB)
|
147
|
-
<%= @f.
|
147
|
+
<%= @f.checks(:id_in, [['One', 1], ['Two', 2], ['Three', 3]]) do |c| -%>
|
148
148
|
<p>
|
149
149
|
<%= c.label %>
|
150
150
|
<%= c.box %>
|
@@ -154,7 +154,7 @@ class TestViewHelpers < ActionView::TestCase
|
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
157
|
-
context "A form using
|
157
|
+
context "A form using collection_checks with companies" do
|
158
158
|
setup do
|
159
159
|
@s = Company.search
|
160
160
|
form_for @s do |f|
|
@@ -163,11 +163,11 @@ class TestViewHelpers < ActionView::TestCase
|
|
163
163
|
end
|
164
164
|
|
165
165
|
should "return an array of check boxes without a block" do
|
166
|
-
assert @f.
|
166
|
+
assert @f.collection_checks(:id_in, Company.all, :id, :name).all?{|c| c.is_a?(MetaSearch::Check)}
|
167
167
|
end
|
168
168
|
|
169
169
|
should "generate the expected HTML with a block" do
|
170
|
-
@f.
|
170
|
+
@f.collection_checks(:id_in, Company.all, :id, :name) do |c|
|
171
171
|
concat render :to => :string, :inline => "<p><%= c.label %> <%= c.box %></p>", :locals => {:c => c}
|
172
172
|
end
|
173
173
|
assert_dom_equal output_buffer,
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 9
|
8
|
-
-
|
9
|
-
version: 0.9.
|
8
|
+
- 5
|
9
|
+
version: 0.9.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Ernie Miller
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-09-
|
17
|
+
date: 2010-09-28 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|