fusionary-easel_helpers 0.2.4 → 0.2.5

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.
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require 'rake/testtask'
3
3
  require 'rake/rdoctask'
4
4
  require 'echoe'
5
5
 
6
- Echoe.new("easel_helpers", "0.2.4") do |p|
6
+ Echoe.new("easel_helpers", "0.2.5") do |p|
7
7
  p.description = "Fusionary Rails View Helpers"
8
8
  p.url = "http://github.com/fusionary/easel_helpers"
9
9
  p.author = "Joshua Clayton"
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{easel_helpers}
5
- s.version = "0.2.4"
5
+ s.version = "0.2.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Joshua Clayton"]
9
- s.date = %q{2009-05-20}
9
+ s.date = %q{2009-05-22}
10
10
  s.description = %q{Fusionary Rails View Helpers}
11
11
  s.email = %q{joshua.clayton@gmail.com}
12
12
  s.extra_rdoc_files = ["lib/easel_helpers/helpers/date_helper.rb", "lib/easel_helpers/helpers/flash_helper.rb", "lib/easel_helpers/helpers/form_helper.rb", "lib/easel_helpers/helpers/grid_helper.rb", "lib/easel_helpers/helpers/link_helper.rb", "lib/easel_helpers/helpers/structure_helper.rb", "lib/easel_helpers/helpers/table_helper.rb", "lib/easel_helpers/helpers.rb", "lib/easel_helpers/rails_partial_caching.rb", "lib/easel_helpers.rb", "README.textile", "tasks/easel_helpers_tasks.rake"]
@@ -2,8 +2,21 @@ module EaselHelpers
2
2
  module Helpers
3
3
  module FlashHelper
4
4
 
5
- def render_flash(flash)
6
- flash.keys.map do |key|
5
+ def render_flash(flash, options = {})
6
+ except_keys = [options[:except]].flatten.compact
7
+ only_keys = [options[:only]].flatten.compact
8
+
9
+ raise ArgumentError, ":only and :except options conflict; use one or the other" if except_keys.any? && only_keys.any?
10
+
11
+ keys = if except_keys.any?
12
+ flash.keys - except_keys
13
+ elsif only_keys.any?
14
+ flash.keys & only_keys
15
+ else
16
+ flash.keys
17
+ end
18
+
19
+ keys.map do |key|
7
20
  content_tag :p, flash[key], :class => [key, "box", "single-line"].join(" ") unless flash[key].blank?
8
21
  end.join
9
22
  end
@@ -34,9 +34,9 @@ module EaselHelpers
34
34
  "col-last"
35
35
  end
36
36
 
37
- def column(size=nil, *args, &block)
37
+ def column(*args, &block)
38
38
  @_easel_column_count ||= application_width
39
- col(size, *args, &block)
39
+ col(*args, &block)
40
40
  end
41
41
 
42
42
  def container(size=nil, *args, &block)
@@ -107,8 +107,8 @@ module EaselHelpers
107
107
  @_easel_current_width.pop
108
108
  end
109
109
 
110
- def col(size=nil, *args, &block)
111
- size = :full if size.blank?
110
+ def col(*args, &block)
111
+ size = (MULTIPLE_FRACTIONS.include?(args.first.to_s) || args.first.is_a?(Integer)) ? args.shift : :full
112
112
 
113
113
  increase_depth(size)
114
114
  output_tag = generate_output_tag(size, *args, &block)
@@ -12,18 +12,39 @@ class FlashHelperTest < EaselHelpers::ViewTestCase
12
12
 
13
13
  should "display all flash messages present" do
14
14
  show_view %(<%= render_flash(:structure => "Flash message", :error => "Warning message") %>) do
15
- assert_select "p.structure.box.single-line", "Flash message"
16
- assert_select "p.error.box.single-line", "Warning message"
15
+ assert_select "p.structure", "Flash message"
16
+ assert_select "p.error", "Warning message"
17
17
  end
18
18
  end
19
19
 
20
20
  should "not display a flash if it is blank" do
21
21
  show_view %(<%= render_flash(:structure => "", :error => nil) %>) do
22
- assert_select "p.structure.box.single-line", false
23
- assert_select "p.error.box.single-line", false
22
+ assert_select "p.structure", false
23
+ assert_select "p.error", false
24
24
  end
25
25
  end
26
26
 
27
+ should "filter by the :only option" do
28
+ show_view %(<%= render_flash({:structure => "Flash message", :error => "Warning message", :notice => "Notice!"}, {:only => [:structure, :error]}) %>) do
29
+ assert_select "p.structure", "Flash message"
30
+ assert_select "p.error", "Warning message"
31
+ assert_select "p.notice", false
32
+ end
33
+ end
34
+
35
+ should "filter by the :except option" do
36
+ show_view %(<%= render_flash({:structure => "Flash message", :error => "Warning message", :notice => "Notice!"}, {:except => [:structure, :error]}) %>) do
37
+ assert_select "p.structure", false
38
+ assert_select "p.error", false
39
+ assert_select "p.notice", "Notice!"
40
+ end
41
+ end
42
+
43
+ should "raise an error of :only and :except are both passed" do
44
+ assert_raise ArgumentError, /conflict/ do
45
+ show_view %(<%= render_flash({:structure => "Flash message"}, {:except => [:structure, :error], :only => :structure}) %>)
46
+ end
47
+ end
27
48
  end
28
49
 
29
50
  end
@@ -1,148 +1,179 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class GridHelperTest < EaselHelpers::ViewTestCase
4
- should "properly assign classes for a simple column layout" do
5
- template = %(
6
- <% container do %>
7
- <% column do %>
8
- <% column :half, :id => "primary" do %>
9
- <% column :one_third do %>
10
- one third of one half of 24 is 4
4
+
5
+ context "advanced grid structures" do
6
+
7
+ should "properly assign classes for a simple column layout" do
8
+ template = %(
9
+ <% container do %>
10
+ <% column do %>
11
+ <% column :half, :id => "primary" do %>
12
+ <% column :one_third do %>
13
+ one third of one half of 24 is 4
14
+ <% end %>
15
+ <% column :one_third, :last, prepend_one_third do %>
16
+ one third of one half of 24 is 4 (but prepended 4 as well)
17
+ <% end %>
18
+ <hr/>
19
+ more text
11
20
  <% end %>
12
- <% column :one_third, :last, prepend_one_third do %>
13
- one third of one half of 24 is 4 (but prepended 4 as well)
21
+ <% column :half, :last, :id => "secondary" do %>
22
+ second column
14
23
  <% end %>
15
24
  <hr/>
16
- more text
17
- <% end %>
18
- <% column :half, :last, :id => "secondary" do %>
19
- second column
25
+ text
20
26
  <% end %>
21
- <hr/>
22
- text
23
27
  <% end %>
24
- <% end %>
25
- )
28
+ )
29
+
30
+ show_view template do
31
+ assert_select ".container", 1
32
+ assert_select ".col-24", 1
33
+ assert_select ".col-12", 2
34
+ assert_select ".col-12#primary", 1
35
+ assert_select ".col-12#secondary", 1
36
+ assert_select ".col-4", 2
37
+ assert_select ".prepend-4", 1
38
+ assert_select ".col-24.col-last", 0
39
+ assert_select ".col-12.col-last", 1
40
+ assert_select ".col-4.col-last", 1
41
+ assert_select "hr", 2
42
+ end
43
+ end
26
44
 
27
- show_view template do
28
- assert_select ".container", 1
29
- assert_select ".col-24", 1
30
- assert_select ".col-12", 2
31
- assert_select ".col-12#primary", 1
32
- assert_select ".col-12#secondary", 1
33
- assert_select ".col-4", 2
34
- assert_select ".prepend-4", 1
35
- assert_select ".col-24.col-last", 0
36
- assert_select ".col-12.col-last", 1
37
- assert_select ".col-4.col-last", 1
38
- assert_select "hr", 2
45
+ should "properly assign classes for generic helpers" do
46
+ template = %(
47
+ <% column do %>
48
+ <% fieldset :hform, :half do %>
49
+ <% set :one_third do %>text<% end %>
50
+ <% set :two_thirds, :last do %>more text<% end %>
51
+ <% end %>
52
+ <% recordset :half, :last do %>table<% end %>
53
+ <% end %>
54
+ )
55
+
56
+ show_view template do
57
+ assert_select "div.col-24" do
58
+ assert_select "fieldset.hform.col-12" do
59
+ assert_select "div.col-4", "text"
60
+ assert_select "div.col-8.col-last", "more text"
61
+ end
62
+ assert_select "table.col-12.col-last", "table"
63
+ end
64
+ end
39
65
  end
40
- end
41
-
42
- should "properly assign classes for generic helpers" do
43
- template = %(
44
- <% column do %>
66
+
67
+ should "properly assign classes for generic helpers without column wrappers" do
68
+ template = %(
45
69
  <% fieldset :hform, :half do %>
46
70
  <% set :one_third do %>text<% end %>
47
71
  <% set :two_thirds, :last do %>more text<% end %>
72
+ <% column do %>
73
+ <% column :one_third do %>one third<% end %>
74
+ <% column :two_thirds, :last do %>
75
+ <% column :half do %>half<% end %>
76
+ <% column :half, :last do %>last half<% end %>
77
+ <% end %>
78
+ <% end %>
48
79
  <% end %>
49
- <% recordset :half, :last do %>table<% end %>
50
- <% end %>
51
- )
52
-
53
- show_view template do
54
- assert_select "div.col-24" do
80
+ <% column :one_third do %>
81
+ <% column :one_fourth do %>two wide<% end %>
82
+ <% column :half do %>four wide<% end %>
83
+ <% column :one_fourth, :last do %>two more wide<% end %>
84
+ <% end %>
85
+ <% recordset :one_sixth, :last do %>table<% end %>
86
+ )
87
+
88
+ show_view template do
55
89
  assert_select "fieldset.hform.col-12" do
56
90
  assert_select "div.col-4", "text"
57
91
  assert_select "div.col-8.col-last", "more text"
92
+
93
+ assert_select "div.col-12.col-last" do
94
+ assert_select "div.col-4", "one third"
95
+ assert_select "div.col-8.col-last" do
96
+ assert_select "div.col-4", "half"
97
+ assert_select "div.col-4.col-last", "last half"
98
+ end
99
+ end
58
100
  end
59
- assert_select "table.col-12.col-last", "table"
101
+ assert_select "div.col-8" do
102
+ assert_select "div.col-2", "two wide"
103
+ assert_select "div.col-4", "four wide"
104
+ assert_select "div.col-2.col-last", "two more wide"
105
+ end
106
+ assert_select "table.col-4.col-last", "table"
60
107
  end
61
108
  end
62
- end
63
-
64
- should "properly assign classes for generic helpers without column wrappers" do
65
- template = %(
66
- <% fieldset :hform, :half do %>
67
- <% set :one_third do %>text<% end %>
68
- <% set :two_thirds, :last do %>more text<% end %>
69
- <% column do %>
70
- <% column :one_third do %>one third<% end %>
71
- <% column :two_thirds, :last do %>
72
- <% column :half do %>half<% end %>
73
- <% column :half, :last do %>last half<% end %>
109
+
110
+ should "properly assign classes for a deeply-nested view" do
111
+ template = %(
112
+ <% container do %>
113
+ <% column :half do %>
114
+ <% fieldset :hform, :half do %>
115
+ <% set :one_third do %>text<% end %>
116
+ <% set :two_thirds, :last do %>more text<% end %>
117
+ <% end %>
118
+ <% recordset :half, :last do %>table<% end %>
119
+ <% end %>
120
+ <% column :one_third do %>one third!<% end %>
121
+ <% column :one_sixth, :last do %>
122
+ <% fieldset :vform, :full do %>
123
+ <% set do %>text<% end %>
124
+ <% end %>
74
125
  <% end %>
75
126
  <% end %>
76
- <% end %>
77
- <% column :one_third do %>
78
- <% column :one_fourth do %>two wide<% end %>
79
- <% column :half do %>four wide<% end %>
80
- <% column :one_fourth, :last do %>two more wide<% end %>
81
- <% end %>
82
- <% recordset :one_sixth, :last do %>table<% end %>
83
- )
84
-
85
- show_view template do
86
- assert_select "fieldset.hform.col-12" do
87
- assert_select "div.col-4", "text"
88
- assert_select "div.col-8.col-last", "more text"
89
-
90
- assert_select "div.col-12.col-last" do
91
- assert_select "div.col-4", "one third"
92
- assert_select "div.col-8.col-last" do
93
- assert_select "div.col-4", "half"
94
- assert_select "div.col-4.col-last", "last half"
127
+ )
128
+
129
+ show_view template do
130
+ assert_select "div.container" do
131
+ assert_select "div.col-12" do
132
+ assert_select "fieldset.hform.col-6" do
133
+ assert_select "div.col-2", "text"
134
+ assert_select "div.col-4.col-last", "more text"
135
+ end
136
+ assert_select "table.col-6.col-last", "table"
137
+ end
138
+
139
+ assert_select "div.col-8", "one third!"
140
+
141
+ assert_select "div.col-4.col-last" do
142
+ assert_select "fieldset.vform.col-4.col-last" do
143
+ assert_select "div", "text"
144
+ end
95
145
  end
96
146
  end
97
147
  end
98
- assert_select "div.col-8" do
99
- assert_select "div.col-2", "two wide"
100
- assert_select "div.col-4", "four wide"
101
- assert_select "div.col-2.col-last", "two more wide"
102
- end
103
- assert_select "table.col-4.col-last", "table"
104
148
  end
149
+
105
150
  end
106
151
 
107
- should "properly assign classes for a deeply-nested view" do
108
- template = %(
109
- <% container do %>
110
- <% column :half do %>
111
- <% fieldset :hform, :half do %>
112
- <% set :one_third do %>text<% end %>
113
- <% set :two_thirds, :last do %>more text<% end %>
114
- <% end %>
115
- <% recordset :half, :last do %>table<% end %>
116
- <% end %>
117
- <% column :one_third do %>one third!<% end %>
118
- <% column :one_sixth, :last do %>
119
- <% fieldset :vform, :full do %>
120
- <% set do %>text<% end %>
121
- <% end %>
122
- <% end %>
123
- <% end %>
124
- )
152
+ context "column" do
125
153
 
126
- show_view template do
127
- assert_select "div.container" do
128
- assert_select "div.col-12" do
129
- assert_select "fieldset.hform.col-6" do
130
- assert_select "div.col-2", "text"
131
- assert_select "div.col-4.col-last", "more text"
132
- end
133
- assert_select "table.col-6.col-last", "table"
134
- end
135
-
136
- assert_select "div.col-8", "one third!"
137
-
138
- assert_select "div.col-4.col-last" do
139
- assert_select "fieldset.vform.col-4.col-last" do
140
- assert_select "div", "text"
141
- end
154
+ should "allow assigning options hash without having to define a width" do
155
+ show_view %(<% column :id => "my-custom-id", :class => "content" do %>words<% end %>) do
156
+ assert_select "div.col-24.content#my-custom-id", "words"
157
+ end
158
+ end
159
+
160
+ should "allow explicit column assignment" do
161
+ show_view %(
162
+ <% column 6, :sidebar do %>
163
+ <% column :id => "main" do %>main sidebar<% end %>
164
+ <% column :half do %>three<% end %>
165
+ <% column :one_third do %>two<% end %>
166
+ <% column 1, :last do %>one<% end %>
167
+ <% end %>
168
+ ) do
169
+ assert_select "div.col-6.sidebar" do
170
+ assert_select "div.col-6.col-last#main", "main sidebar"
171
+ assert_select "div.col-3", "three"
172
+ assert_select "div.col-2", "two"
173
+ assert_select "div.col-1.col-last", "one"
142
174
  end
143
-
144
175
  end
145
176
  end
177
+
146
178
  end
147
-
148
179
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fusionary-easel_helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Clayton
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-20 00:00:00 -07:00
12
+ date: 2009-05-22 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency