blot 1.1.1 → 1.2.0
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 +4 -4
- data/CHANGELOG.md +26 -0
- data/README.md +41 -17
- data/lib/blot/helpers/grid.rb +20 -3
- data/lib/blot/version.rb +1 -1
- data/spec/blot/helpers/grid_spec.rb +52 -24
- data/spec/blot/helpers/visibility_spec.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75fb82eb36721ba625375899e41786b2f1af8dd9
|
4
|
+
data.tar.gz: aeb72d5a8b0e61f2a0230c254e6bf9204bf21358
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2befd7af52d2815d14e87587d2db752460602a5d8fb4525d5164b822f88ef601625244311dab11aa40fd4c1d7a8e8db813e878ac6359bc996079b60425d5862b
|
7
|
+
data.tar.gz: 23042442e8b71804da4f9352b6ab55e2973e09ceb875ec9fe64dc990940ed50e138ab859f8e902ecb3c2540c63e0ea9561cd95e7803584b2f3d6e2bda3b19e87
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## 1.2.0
|
4
|
+
|
5
|
+
From @BenMorganIO
|
6
|
+
|
7
|
+
- Added `center` tag.
|
8
|
+
- You are no longer required to set `wrapper(class: 'wrapper')` anymore. It is now simply: `wrapper`.
|
9
|
+
- The `wrapper` method is backwards compatible if options are provided.
|
10
|
+
|
11
|
+
## 1.1.1
|
12
|
+
|
13
|
+
From @BenMorganIO
|
14
|
+
|
15
|
+
- Content from `layout` is now HTML safe.
|
16
|
+
- `layout` can now be provided `nil` content.
|
17
|
+
|
18
|
+
## 1.1.0
|
19
|
+
|
20
|
+
From @BenMorganIO
|
21
|
+
|
22
|
+
- Added `layout` method with options to include styles into the head.
|
23
|
+
|
24
|
+
## 1.0.0
|
25
|
+
|
26
|
+
Initial release
|
data/README.md
CHANGED
@@ -97,15 +97,15 @@ The grid in Blot matches Ink very well. It is able to produce rows, sub-grids, c
|
|
97
97
|
```ruby
|
98
98
|
container do
|
99
99
|
row do
|
100
|
-
wrapper(class: '
|
100
|
+
wrapper(class: 'last') do
|
101
101
|
columns(:twelve, class: 'panel') { '.twelve.columns' }
|
102
102
|
end
|
103
103
|
end
|
104
104
|
row do
|
105
|
-
wrapper
|
105
|
+
wrapper do
|
106
106
|
columns(:six, class: 'panel') { '.six.columns' }
|
107
107
|
end
|
108
|
-
wrapper(class: '
|
108
|
+
wrapper(class: 'last') do
|
109
109
|
columns(:six, class: 'panel') { '.six.columns' }
|
110
110
|
end
|
111
111
|
end
|
@@ -166,10 +166,34 @@ end
|
|
166
166
|
|
167
167
|
```ruby
|
168
168
|
row do
|
169
|
-
|
169
|
+
center do
|
170
|
+
'Content'
|
171
|
+
end
|
172
|
+
end
|
173
|
+
```
|
174
|
+
|
175
|
+
```html
|
176
|
+
<table class="row">
|
177
|
+
<tr>
|
178
|
+
<td align="center" class="center">
|
179
|
+
<center>
|
180
|
+
|
181
|
+
Content
|
182
|
+
|
183
|
+
</center>
|
184
|
+
</td>
|
185
|
+
</tr>
|
186
|
+
</table>
|
187
|
+
```
|
188
|
+
|
189
|
+
#### Render Centered Content from Columns
|
190
|
+
|
191
|
+
```ruby
|
192
|
+
row do
|
193
|
+
wrapper do
|
170
194
|
columns(:six, class: 'center panel') { 'Centered content' }
|
171
195
|
end
|
172
|
-
wrapper(class: '
|
196
|
+
wrapper(class: 'last') do
|
173
197
|
columns(:six, class: 'center panel') do
|
174
198
|
image_tag 'http://placehold.it/125x125&text=Centered%20Image', class: 'center', alt: 'centered image'
|
175
199
|
end
|
@@ -212,7 +236,7 @@ end
|
|
212
236
|
|
213
237
|
```ruby
|
214
238
|
row do
|
215
|
-
wrapper(class: '
|
239
|
+
wrapper(class: 'offset-by-four') do
|
216
240
|
columns(:eight, class: 'panel') { 'Offset Content' }
|
217
241
|
end
|
218
242
|
end
|
@@ -239,13 +263,13 @@ end
|
|
239
263
|
|
240
264
|
```ruby
|
241
265
|
row do
|
242
|
-
wrapper
|
266
|
+
wrapper do
|
243
267
|
columns(:four, class: 'left-text-pad') { 'Text' }
|
244
268
|
end
|
245
|
-
wrapper
|
269
|
+
wrapper do
|
246
270
|
columns(:four) { 'Text' }
|
247
271
|
end
|
248
|
-
wrapper(class: '
|
272
|
+
wrapper(class: 'last') do
|
249
273
|
columns(:four, class: 'right-text-pad') { 'Text' }
|
250
274
|
end
|
251
275
|
end
|
@@ -292,7 +316,7 @@ end
|
|
292
316
|
|
293
317
|
```ruby
|
294
318
|
row do
|
295
|
-
|
319
|
+
center do
|
296
320
|
container(class: 'wrapper last') do
|
297
321
|
columns(:twelve) { 'Content' }
|
298
322
|
end
|
@@ -331,13 +355,13 @@ end
|
|
331
355
|
|
332
356
|
```ruby
|
333
357
|
row do
|
334
|
-
wrapper
|
358
|
+
wrapper do
|
335
359
|
columns(:eight, sub_columns: true) do
|
336
360
|
sub_columns(:eight) { '.eight.sub-columns' } +
|
337
361
|
sub_columns(:four, class: 'last') { '.four.sub-columns' }
|
338
362
|
end
|
339
363
|
end
|
340
|
-
wrapper(class: '
|
364
|
+
wrapper(class: 'last') do
|
341
365
|
columns(:four) { '.four.columns' }
|
342
366
|
end
|
343
367
|
end
|
@@ -376,8 +400,8 @@ end
|
|
376
400
|
```ruby
|
377
401
|
container do
|
378
402
|
block_grid(up: :two) do
|
379
|
-
|
380
|
-
|
403
|
+
content_tag(:td) { 'Column #1' }
|
404
|
+
content_tag(:td) { 'Column #2' }
|
381
405
|
end
|
382
406
|
end
|
383
407
|
```
|
@@ -403,10 +427,10 @@ end
|
|
403
427
|
|
404
428
|
```ruby
|
405
429
|
row do
|
406
|
-
wrapper
|
430
|
+
wrapper do
|
407
431
|
columns(:eight) { 'Main content' }
|
408
432
|
end
|
409
|
-
wrapper(class: '
|
433
|
+
wrapper(class: 'last') do
|
410
434
|
columns(:four, class: 'panel') { 'Panel content' }
|
411
435
|
end
|
412
436
|
end
|
@@ -506,7 +530,7 @@ hide_for_small
|
|
506
530
|
|
507
531
|
```ruby
|
508
532
|
row do
|
509
|
-
wrapper(class: '
|
533
|
+
wrapper(class: 'last') do
|
510
534
|
show_for_small do
|
511
535
|
columns(:twelve, class: 'panel') { '.show-for-small' }
|
512
536
|
end
|
data/lib/blot/helpers/grid.rb
CHANGED
@@ -13,7 +13,9 @@ module Blot
|
|
13
13
|
def container(options={})
|
14
14
|
content_tag :table, class: 'container' do
|
15
15
|
content_tag :tr do
|
16
|
-
|
16
|
+
content_tag :td, options do
|
17
|
+
yield if block_given?
|
18
|
+
end
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
@@ -42,7 +44,9 @@ module Blot
|
|
42
44
|
content = if options[:sub_columns]
|
43
45
|
block_given? ? yield : nil
|
44
46
|
elsif !options.empty? || block_given?
|
45
|
-
|
47
|
+
content_tag :td, options do
|
48
|
+
optional_content(options) { yield if block_given? }
|
49
|
+
end
|
46
50
|
else
|
47
51
|
nil
|
48
52
|
end
|
@@ -55,16 +59,29 @@ module Blot
|
|
55
59
|
|
56
60
|
def sub_columns(width, options={})
|
57
61
|
options[:class] = "#{width} sub-columns #{options[:class]}".strip
|
58
|
-
|
62
|
+
content_tag :td, options do
|
63
|
+
optional_content(options) { yield if block_given? }
|
64
|
+
end
|
59
65
|
end
|
60
66
|
alias :sub_column :sub_columns
|
61
67
|
|
62
68
|
def wrapper(options={}, &block)
|
69
|
+
unless options.delete(:wrapper).is_a?(FalseClass) || options[:class] && options[:class].split(' ').include?('wrapper')
|
70
|
+
options[:class] = "wrapper #{options[:class]}".squish
|
71
|
+
end
|
63
72
|
content_tag :td, options do
|
64
73
|
optional_content(options) { yield if block_given? }
|
65
74
|
end
|
66
75
|
end
|
67
76
|
|
77
|
+
def center(&block)
|
78
|
+
content_tag :td, class: 'center', align: 'center' do
|
79
|
+
content_tag :center do
|
80
|
+
yield if block_given?
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
68
85
|
private
|
69
86
|
|
70
87
|
def expander
|
data/lib/blot/version.rb
CHANGED
@@ -105,29 +105,57 @@ describe Blot::Helpers::Grid do
|
|
105
105
|
end
|
106
106
|
|
107
107
|
describe '.wrapper' do
|
108
|
-
it 'can be empty' do
|
109
|
-
expect(view.wrapper).to eql <<-HTML.compress
|
108
|
+
it 'can be empty by setting to false' do
|
109
|
+
expect(view.wrapper(wrapper: false)).to eql <<-HTML.compress
|
110
110
|
<td></td>
|
111
111
|
HTML
|
112
112
|
end
|
113
113
|
|
114
114
|
it 'can yield content' do
|
115
115
|
expect(view.wrapper { "Content" }).to eql <<-HTML.compress
|
116
|
-
<td>Content</td>
|
116
|
+
<td class="wrapper">Content</td>
|
117
117
|
HTML
|
118
118
|
end
|
119
119
|
|
120
120
|
it 'can have a class' do
|
121
|
-
expect(view.wrapper(class: '
|
122
|
-
<td class="wrapper">Content</td>
|
121
|
+
expect(view.wrapper(class: 'last') { 'Content' }).to eql <<-HTML.compress
|
122
|
+
<td class="wrapper last">Content</td>
|
123
123
|
HTML
|
124
124
|
end
|
125
125
|
|
126
126
|
it 'can have multiple classes' do
|
127
|
-
expect(view.wrapper(class: 'wrapper last') { 'Content' }).to eql <<-HTML.compress
|
128
|
-
<td class="wrapper last">Content</td>
|
127
|
+
expect(view.wrapper(class: 'my-wrapper last') { 'Content' }).to eql <<-HTML.compress
|
128
|
+
<td class="wrapper my-wrapper last">Content</td>
|
129
129
|
HTML
|
130
130
|
end
|
131
|
+
|
132
|
+
it 'can have wrapper as a class' do
|
133
|
+
expect(view.wrapper(class: 'wrapper')).to eql <<-HTML.compress
|
134
|
+
<td class="wrapper"></td>
|
135
|
+
HTML
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe '.center' do
|
140
|
+
it 'can be empty' do
|
141
|
+
expect(view.center).to eql <<-HTML.compress
|
142
|
+
<td align="center" class="center">
|
143
|
+
<center></center>
|
144
|
+
</td>
|
145
|
+
HTML
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'can yield centered content' do
|
149
|
+
expect(view.center { 'Content' }).to eql <<-HTML.compress
|
150
|
+
<td align="center" class="center">
|
151
|
+
<center>Content</center>
|
152
|
+
</td>
|
153
|
+
HTML
|
154
|
+
end
|
155
|
+
|
156
|
+
it 'cannot have classes' do
|
157
|
+
expect { view.center(class: 'wrapper') }.to raise_error(ArgumentError)
|
158
|
+
end
|
131
159
|
end
|
132
160
|
|
133
161
|
context 'private' do
|
@@ -145,15 +173,15 @@ describe Blot::Helpers::Grid do
|
|
145
173
|
it 'can render two rows, twelve and six by six' do
|
146
174
|
example = view.container do
|
147
175
|
view.row do
|
148
|
-
view.wrapper(class: '
|
176
|
+
view.wrapper(class: 'last') do
|
149
177
|
view.columns(:twelve, class: 'panel') { '.twelve.columns' }
|
150
178
|
end
|
151
179
|
end +
|
152
180
|
view.row do
|
153
|
-
view.wrapper
|
181
|
+
view.wrapper do
|
154
182
|
view.columns(:six, class: 'panel') { '.six.columns' }
|
155
183
|
end +
|
156
|
-
view.wrapper(class: '
|
184
|
+
view.wrapper(class: 'last') do
|
157
185
|
view.columns(:six, class: 'panel') { '.six.columns' }
|
158
186
|
end
|
159
187
|
end
|
@@ -212,10 +240,10 @@ describe Blot::Helpers::Grid do
|
|
212
240
|
|
213
241
|
it 'can render centered content' do
|
214
242
|
example = view.row do
|
215
|
-
view.wrapper
|
243
|
+
view.wrapper do
|
216
244
|
view.columns(:six, class: 'center panel') { 'Centered content' }
|
217
245
|
end +
|
218
|
-
view.wrapper(class: '
|
246
|
+
view.wrapper(class: 'last') do
|
219
247
|
view.columns(:six, class: 'center panel') do
|
220
248
|
image_tag 'http://placehold.it/125x125&text=Centered%20Image', class: 'center', alt: 'centered image'
|
221
249
|
end
|
@@ -256,7 +284,7 @@ describe Blot::Helpers::Grid do
|
|
256
284
|
|
257
285
|
it 'can render offset columns' do
|
258
286
|
example = view.row do
|
259
|
-
view.wrapper(class: '
|
287
|
+
view.wrapper(class: 'offset-by-four last') do
|
260
288
|
view.columns(:eight, class: 'panel') { 'Offset Content' }
|
261
289
|
end
|
262
290
|
end
|
@@ -264,7 +292,7 @@ describe Blot::Helpers::Grid do
|
|
264
292
|
expect(example).to eql <<-HTML.compress
|
265
293
|
<table class="row">
|
266
294
|
<tr>
|
267
|
-
<td class="wrapper offset-by-four">
|
295
|
+
<td class="wrapper offset-by-four last">
|
268
296
|
|
269
297
|
<table class="eight columns">
|
270
298
|
<tr>
|
@@ -281,13 +309,13 @@ describe Blot::Helpers::Grid do
|
|
281
309
|
|
282
310
|
it 'can render text-padding' do
|
283
311
|
example = view.row do
|
284
|
-
view.wrapper
|
312
|
+
view.wrapper do
|
285
313
|
view.columns(:four, class: 'left-text-pad') { 'Text' }
|
286
314
|
end +
|
287
|
-
view.wrapper
|
315
|
+
view.wrapper do
|
288
316
|
view.columns(:four) { 'Text' }
|
289
317
|
end +
|
290
|
-
view.wrapper(class: '
|
318
|
+
view.wrapper(class: 'last') do
|
291
319
|
view.columns(:four, class: 'right-text-pad') { 'Text' }
|
292
320
|
end
|
293
321
|
end
|
@@ -332,7 +360,7 @@ describe Blot::Helpers::Grid do
|
|
332
360
|
|
333
361
|
it 'can render full-width rows' do
|
334
362
|
example = view.row do
|
335
|
-
view.
|
363
|
+
view.center do
|
336
364
|
view.container(class: 'wrapper last') do
|
337
365
|
view.columns(:twelve) { 'Content' }
|
338
366
|
end
|
@@ -369,13 +397,13 @@ describe Blot::Helpers::Grid do
|
|
369
397
|
|
370
398
|
it 'can render a sub-grid' do
|
371
399
|
example = view.row do
|
372
|
-
view.wrapper
|
400
|
+
view.wrapper do
|
373
401
|
view.columns(:eight, sub_columns: true) do
|
374
402
|
view.sub_columns(:eight) { '.eight.sub-columns' } +
|
375
403
|
view.sub_columns(:four, class: 'last') { '.four.sub-columns' }
|
376
404
|
end
|
377
405
|
end +
|
378
|
-
view.wrapper(class: '
|
406
|
+
view.wrapper(class: 'last') do
|
379
407
|
view.columns(:four) { '.four.columns' }
|
380
408
|
end
|
381
409
|
end
|
@@ -412,8 +440,8 @@ describe Blot::Helpers::Grid do
|
|
412
440
|
it 'can render a block-grid' do
|
413
441
|
example = view.container do
|
414
442
|
view.block_grid(up: :two) do
|
415
|
-
view.
|
416
|
-
view.
|
443
|
+
view.content_tag(:td) { 'Column #1' } +
|
444
|
+
view.content_tag(:td) { 'Column #2' }
|
417
445
|
end
|
418
446
|
end
|
419
447
|
|
@@ -437,10 +465,10 @@ describe Blot::Helpers::Grid do
|
|
437
465
|
|
438
466
|
it 'can render a sidebar' do
|
439
467
|
example = view.row do
|
440
|
-
view.wrapper
|
468
|
+
view.wrapper do
|
441
469
|
view.columns(:eight) { 'Main content' }
|
442
470
|
end +
|
443
|
-
view.wrapper(class: '
|
471
|
+
view.wrapper(class: 'last') do
|
444
472
|
view.columns(:four, class: 'panel') { 'Panel content' }
|
445
473
|
end
|
446
474
|
end
|
@@ -30,7 +30,7 @@ describe Blot::Helpers::Visibility do
|
|
30
30
|
context 'example' do
|
31
31
|
it 'can render visibility of columns in a row' do
|
32
32
|
example = view.row do
|
33
|
-
view.wrapper(class: '
|
33
|
+
view.wrapper(class: 'last') do
|
34
34
|
view.show_for_small do
|
35
35
|
view.columns(:twelve, class: 'panel') { '.show-for-small' }
|
36
36
|
end +
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben A Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -119,6 +119,7 @@ extra_rdoc_files: []
|
|
119
119
|
files:
|
120
120
|
- ".gitignore"
|
121
121
|
- ".rspec"
|
122
|
+
- CHANGELOG.md
|
122
123
|
- Gemfile
|
123
124
|
- LICENSE.txt
|
124
125
|
- README.md
|