inky-rb 1.3.6.3 → 1.3.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile.lock +3 -5
- data/inky.gemspec +1 -0
- data/lib/component_factory.rb +34 -33
- data/lib/inky.rb +7 -9
- data/lib/inky/rails/version.rb +2 -1
- data/spec/cases/button/no_link.inky +1 -0
- data/spec/cases/button/with_expand_class.inky +3 -0
- data/spec/cases/button/with_image.inky +3 -0
- data/spec/cases/button/with_link.inky +3 -0
- data/spec/cases/button/with_tricky_class.inky +19 -0
- data/spec/cases/callout/basic.inky +1 -0
- data/spec/cases/callout/with_attributes.inky +3 -0
- data/spec/cases/general/multiple_root.inky +2 -0
- data/spec/cases/general/no_tag.inky +1 -0
- data/spec/cases/general/root_within_text.inky +3 -0
- data/spec/cases/general/void_html_elements.inky +6 -0
- data/spec/cases/grid/columns.inky +1 -0
- data/spec/cases/grid/container.inky +1 -0
- data/spec/cases/grid/container_with_align.inky +1 -0
- data/spec/cases/grid/row.inky +1 -0
- data/spec/cases/grid/row_with_columns.inky +5 -0
- data/spec/cases/menu/item.inky +1 -0
- data/spec/cases/menu/menu.inky +1 -0
- data/spec/cases/menu/menu_with_align.inky +1 -0
- data/spec/cases/menu/menu_with_items.inky +5 -0
- data/spec/cases/spacer/basic.inky +5 -0
- data/spec/cases/spacer/with_size.inky +5 -0
- data/spec/cases/spacer/with_size_lg.inky +4 -0
- data/spec/cases/spacer/with_size_sm.inky +5 -0
- data/spec/cases/spacer/with_size_sm_and_lg.inky +5 -0
- data/spec/cases/wrapper/basic.inky +1 -0
- data/spec/cases/wrapper/with_align.inky +1 -0
- data/spec/cases/wrapper/with_attributes.inky +1 -0
- data/spec/cases_spec.rb +55 -0
- data/spec/components_spec.rb +1 -3
- data/spec/grid_spec.rb +4 -4
- data/spec/spec_helper.rb +12 -5
- metadata +61 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a4008c29bb92a467214a676eb6dfa34286f7333
|
4
|
+
data.tar.gz: 2a5e4bf73fe574f8d952aed07ad6324c7aecfdad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c67e33eb5035b4e02333642e3781eb70292bb7b1b2dcdf3fc3af6d54c8802f7085f232cbef1bb9198f3a0f048b2b926b510631aa72f8c841d95d594c14a5bef
|
7
|
+
data.tar.gz: 6f1d96ad26149214322c00e279f8ffbea12c531f9d30848c1d43af5b5beec3d08187580c82e9b90f34dcd8269c945d6090d7a47f66664aa9d01b311639def83b
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
inky-rb (1.3.
|
4
|
+
inky-rb (1.3.7.0)
|
5
5
|
foundation_emails (~> 2)
|
6
6
|
nokogiri
|
7
7
|
|
@@ -10,14 +10,12 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
ast (2.3.0)
|
12
12
|
diff-lcs (1.2.5)
|
13
|
-
foundation_emails (2.2.
|
13
|
+
foundation_emails (2.2.1.0)
|
14
14
|
mini_portile2 (2.1.0)
|
15
|
-
nokogiri (1.6.8)
|
15
|
+
nokogiri (1.6.8.1)
|
16
16
|
mini_portile2 (~> 2.1.0)
|
17
|
-
pkg-config (~> 1.1.7)
|
18
17
|
parser (2.3.1.4)
|
19
18
|
ast (~> 2.2)
|
20
|
-
pkg-config (1.1.7)
|
21
19
|
powerpack (0.1.1)
|
22
20
|
rainbow (2.1.0)
|
23
21
|
rake (11.2.2)
|
data/inky.gemspec
CHANGED
@@ -9,6 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.description = 'Inky is an HTML-based templating language that converts simple HTML into complex, responsive email-ready HTML. Designed for Foundation for Emails, a responsive email framework from ZURB. '
|
10
10
|
s.authors = ["ZURB"]
|
11
11
|
s.email = ['foundation@zurb.com']
|
12
|
+
s.homepage = 'https://github.com/zurb/inky-rb'
|
12
13
|
|
13
14
|
s.files = `git ls-files -z`.split("\x0")
|
14
15
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
data/lib/component_factory.rb
CHANGED
@@ -4,7 +4,7 @@ module ComponentFactory
|
|
4
4
|
# TODO: Handle changed names
|
5
5
|
transform_method = :"_transform_#{component_lookup[elem.name]}"
|
6
6
|
return unless respond_to?(transform_method)
|
7
|
-
|
7
|
+
send(transform_method, elem, inner)
|
8
8
|
end
|
9
9
|
|
10
10
|
tags = %w[class id href size large no-expander small target]
|
@@ -18,13 +18,16 @@ module ComponentFactory
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def _has_class(elem, klass)
|
21
|
-
|
21
|
+
elem.attr('class') =~ /(^|\s)#{klass}($|\s)/
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
def _combine_classes(elem, extra_classes)
|
25
|
+
[elem['class'], extra_classes].join(' ')
|
26
|
+
end
|
27
|
+
|
28
|
+
def _combine_attributes(elem, extra_classes = nil)
|
29
|
+
classes = _combine_classes(elem, extra_classes)
|
30
|
+
[_pass_through_attributes(elem), classes && %{class="#{classes}"}].join
|
28
31
|
end
|
29
32
|
|
30
33
|
def _target_attribute(elem)
|
@@ -40,30 +43,30 @@ module ComponentFactory
|
|
40
43
|
end
|
41
44
|
inner = "<center>#{inner}</center>" if expand
|
42
45
|
|
43
|
-
classes =
|
46
|
+
classes = _combine_classes(component, 'button')
|
44
47
|
expander = '<td class="expander"></td>' if expand
|
45
|
-
%{<table class="#{classes
|
48
|
+
%{<table class="#{classes}"><tr><td><table><tr><td>#{inner}</td></tr></table></td>#{expander}</tr></table>}
|
46
49
|
end
|
47
50
|
|
48
51
|
def _transform_menu(component, inner)
|
49
|
-
|
50
|
-
%{<table
|
52
|
+
attributes = _combine_attributes(component, 'menu')
|
53
|
+
%{<table #{attributes}><tr><td><table><tr>#{inner}</tr></table></td></tr></table>}
|
51
54
|
end
|
52
55
|
|
53
56
|
def _transform_menu_item(component, inner)
|
54
57
|
target = _target_attribute(component)
|
55
|
-
|
58
|
+
attributes = _combine_attributes(component, 'menu-item')
|
59
|
+
%{<th #{attributes}><a href="#{component.attr('href')}"#{target}>#{inner}</a></th>}
|
56
60
|
end
|
57
61
|
|
58
62
|
def _transform_container(component, inner)
|
59
|
-
|
60
|
-
%{<table
|
63
|
+
attributes = _combine_attributes(component, 'container')
|
64
|
+
%{<table #{attributes} align="center"><tbody><tr><td>#{inner}</td></tr></tbody></table>}
|
61
65
|
end
|
62
66
|
|
63
67
|
def _transform_row(component, inner)
|
64
|
-
|
65
|
-
|
66
|
-
%{<table #{attrs}class="#{classes.join(' ')}"><tbody><tr>#{inner}</tr></tbody></table>}
|
68
|
+
attributes = _combine_attributes(component, 'row')
|
69
|
+
%{<table #{attributes}><tbody><tr>#{inner}</tr></tbody></table>}
|
67
70
|
end
|
68
71
|
|
69
72
|
# in inky.js this is factored out into makeClumn. TBD if we need that here.
|
@@ -76,20 +79,20 @@ module ComponentFactory
|
|
76
79
|
small_size = small_val || column_count
|
77
80
|
large_size = large_val || small_val || (column_count / col_count).to_i
|
78
81
|
|
79
|
-
classes =
|
82
|
+
classes = _combine_classes(component, "small-#{small_size} large-#{large_size} columns")
|
80
83
|
|
81
|
-
classes
|
82
|
-
classes
|
84
|
+
classes << ' first' unless component.previous_element
|
85
|
+
classes << ' last' unless component.next_element
|
83
86
|
|
84
87
|
subrows = component.elements.css(".row").to_a.concat(component.elements.css("row").to_a)
|
85
88
|
expander = %{<th class="expander"></th>} if large_size.to_i == column_count && subrows.empty?
|
86
89
|
|
87
|
-
%{<th class="#{classes
|
90
|
+
%{<th class="#{classes}" #{_pass_through_attributes(component)}><table><tr><th>#{inner}</th>#{expander}</tr></table></th>}
|
88
91
|
end
|
89
92
|
|
90
93
|
def _transform_block_grid(component, inner)
|
91
|
-
classes =
|
92
|
-
%{<table class="#{classes
|
94
|
+
classes = _combine_classes(component, "block-grid up-#{component.attr('up')}")
|
95
|
+
%{<table class="#{classes}"><tr>#{inner}</tr></table>}
|
93
96
|
end
|
94
97
|
|
95
98
|
def _transform_center(component, _inner)
|
@@ -97,25 +100,24 @@ module ComponentFactory
|
|
97
100
|
# sometimes appears to miss elements that show up in size
|
98
101
|
component.elements.each do |child|
|
99
102
|
child['align'] = 'center'
|
100
|
-
|
101
|
-
child['class'] = child_classes.join(' ')
|
103
|
+
child['class'] = _combine_classes(child, 'float-center')
|
102
104
|
items = component.elements.css(".menu-item").to_a.concat(component.elements.css("item").to_a)
|
103
105
|
items.each do |item|
|
104
|
-
|
105
|
-
item['class'] = item_classes.join(' ')
|
106
|
+
item['class'] = _combine_classes(item, 'float-center')
|
106
107
|
end
|
107
108
|
end
|
108
109
|
component.to_s
|
109
110
|
end
|
110
111
|
|
111
112
|
def _transform_callout(component, inner)
|
112
|
-
classes =
|
113
|
-
|
113
|
+
classes = _combine_classes(component, 'callout-inner')
|
114
|
+
attributes = _pass_through_attributes(component)
|
115
|
+
%{<table #{attributes}class="callout"><tr><th class="#{classes}">#{inner}</th><th class="expander"></th></tr></table>}
|
114
116
|
end
|
115
117
|
|
116
118
|
def _transform_spacer(component, _inner)
|
117
|
-
classes =
|
118
|
-
build_table = ->(size, extra) { %{<table class="#{classes
|
119
|
+
classes = _combine_classes(component, 'spacer')
|
120
|
+
build_table = ->(size, extra) { %{<table class="#{classes} #{extra}"><tbody><tr><td height="#{size}px" style="font-size:#{size}px;line-height:#{size}px;"> </td></tr></tbody></table>} }
|
119
121
|
size = component.attr('size')
|
120
122
|
size_sm = component.attr('size-sm')
|
121
123
|
size_lg = component.attr('size-lg')
|
@@ -123,7 +125,6 @@ module ComponentFactory
|
|
123
125
|
html = ''
|
124
126
|
html << build_table[size_sm, 'hide-for-large'] if size_sm
|
125
127
|
html << build_table[size_lg, 'show-for-large'] if size_lg
|
126
|
-
html = "<span>#{html}</span>" if size_sm && size_lg
|
127
128
|
html
|
128
129
|
else
|
129
130
|
build_table[size || 16, nil]
|
@@ -131,7 +132,7 @@ module ComponentFactory
|
|
131
132
|
end
|
132
133
|
|
133
134
|
def _transform_wrapper(component, inner)
|
134
|
-
|
135
|
-
%{<table
|
135
|
+
attributes = _combine_attributes(component, 'wrapper')
|
136
|
+
%{<table #{attributes} align="center"><tr><td class="wrapper-inner">#{inner}</td></tr></table>}
|
136
137
|
end
|
137
138
|
end
|
data/lib/inky.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Inky
|
2
2
|
class Core
|
3
3
|
require 'nokogiri'
|
4
|
-
|
4
|
+
require_relative 'component_factory'
|
5
5
|
attr_accessor :components, :column_count, :component_lookup, :component_tags
|
6
6
|
|
7
7
|
include ComponentFactory
|
@@ -31,17 +31,15 @@ module Inky
|
|
31
31
|
def release_the_kraken(xml_string)
|
32
32
|
xml_string = xml_string.gsub(/doctype/i, 'DOCTYPE')
|
33
33
|
raws, str = Inky::Core.extract_raws(xml_string)
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
parse_cmd = str =~ /<html/i ? :parse : :fragment
|
35
|
+
html = Nokogiri::HTML.public_send(parse_cmd, str)
|
36
|
+
html.elements.each do |elem|
|
37
|
+
transform_doc(elem)
|
38
|
+
end
|
39
|
+
string = html.to_html(encoding: 'US-ASCII')
|
38
40
|
Inky::Core.re_inject_raws(string, raws)
|
39
41
|
end
|
40
42
|
|
41
|
-
def components_exist?(_xml_doc)
|
42
|
-
true
|
43
|
-
end
|
44
|
-
|
45
43
|
def transform_doc(elem)
|
46
44
|
if elem.respond_to?(:children)
|
47
45
|
elem.children.each do |child|
|
data/lib/inky/rails/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
<button>I'm missing an href</button>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<button href="http://example.com" class="noexpand">
|
2
|
+
A label
|
3
|
+
</button>
|
4
|
+
|
5
|
+
<button href="http://example.com" class="expand-niet">
|
6
|
+
A label
|
7
|
+
</button>
|
8
|
+
|
9
|
+
<button href="http://example.com" class="expand foo">
|
10
|
+
A label
|
11
|
+
</button>
|
12
|
+
|
13
|
+
<button href="http://example.com" class="foo expand">
|
14
|
+
A label
|
15
|
+
</button>
|
16
|
+
|
17
|
+
<button href="http://example.com" class="foo expand bar">
|
18
|
+
A label
|
19
|
+
</button>
|
@@ -0,0 +1 @@
|
|
1
|
+
<callout>Simple callout</callout>
|
@@ -0,0 +1 @@
|
|
1
|
+
Very simple test...
|
@@ -0,0 +1 @@
|
|
1
|
+
<columns class="some classes" foo="bar">First column</columns>
|
@@ -0,0 +1 @@
|
|
1
|
+
<container class="klass" foo="bar">some content</container>
|
@@ -0,0 +1 @@
|
|
1
|
+
<container align="left">some content</container>
|
@@ -0,0 +1 @@
|
|
1
|
+
<row class="some klasses" foo="bar">columns here</row>
|
@@ -0,0 +1 @@
|
|
1
|
+
<item class="some classes" foo="bar" href="http://example.com">An item</item>
|
@@ -0,0 +1 @@
|
|
1
|
+
<menu class="some classes" foo="bar"/>
|
@@ -0,0 +1 @@
|
|
1
|
+
<menu align="left"/>
|
@@ -0,0 +1 @@
|
|
1
|
+
<wrapper>In the wrap</wrapper>
|
@@ -0,0 +1 @@
|
|
1
|
+
<wrapper align="left">In the wrap</wrapper>
|
@@ -0,0 +1 @@
|
|
1
|
+
<wrapper class="some classes" foo="bar">In the wrap</wrapper>
|
data/spec/cases_spec.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
INKY_VERSION_REQUIRED = Inky::NODE_VERSION
|
5
|
+
|
6
|
+
def npm_packages
|
7
|
+
JSON.parse(`npm list -g --depth=1 --json=true`)
|
8
|
+
rescue
|
9
|
+
puts <<-Err
|
10
|
+
npm not detected, skipping comparison tests.
|
11
|
+
Err
|
12
|
+
nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def inky_cli_ok?
|
16
|
+
return unless packages = npm_packages
|
17
|
+
version = packages['dependencies']['inky-cli']['dependencies']['inky']['version']
|
18
|
+
return true if version >= INKY_VERSION_REQUIRED
|
19
|
+
puts "Requires inky version #{INKY_VERSION_REQUIRED}+, currently installed #{version}"
|
20
|
+
false
|
21
|
+
rescue
|
22
|
+
puts <<-Err
|
23
|
+
inky-cli not globally installed, skipping comparison tests.
|
24
|
+
Install with:
|
25
|
+
npm install inky-cli -g
|
26
|
+
Err
|
27
|
+
false
|
28
|
+
end
|
29
|
+
|
30
|
+
RSpec.describe "Inky-rb" do
|
31
|
+
context "compared to inky-cli" do
|
32
|
+
Dir['./spec/cases/*'].each do |path|
|
33
|
+
folder = File.basename(path)
|
34
|
+
output_path = "./spec/_cases_output/#{File.basename(folder)}"
|
35
|
+
sources = "#{path}/*.inky"
|
36
|
+
source_paths = Dir[sources]
|
37
|
+
|
38
|
+
context "for #{folder} components" do
|
39
|
+
before(:all) do
|
40
|
+
shell = source_paths.map { |p| "inky #{p} #{output_path}" }
|
41
|
+
`#{shell.join(' && ')}`
|
42
|
+
end
|
43
|
+
|
44
|
+
source_paths.each do |filepath|
|
45
|
+
file = File.basename(filepath, '.inky')
|
46
|
+
content = File.read(filepath)
|
47
|
+
exec = content =~ /^<!--\s*(pending|skip)/ ? $1 : :it
|
48
|
+
send exec, "provides the same results for #{file}" do
|
49
|
+
compare(content, File.read("#{output_path}/#{file}.inky"))
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end if inky_cli_ok?
|
55
|
+
end
|
data/spec/components_spec.rb
CHANGED
@@ -301,7 +301,6 @@ RSpec.describe "Spacer" do
|
|
301
301
|
it 'creates a spacer element for small and large screens with correct sizes' do
|
302
302
|
input = '<spacer size-sm="10" size-lg="20"></spacer>'
|
303
303
|
expected = <<-HTML
|
304
|
-
<span>
|
305
304
|
<table class="spacer hide-for-large">
|
306
305
|
<tbody>
|
307
306
|
<tr>
|
@@ -316,7 +315,6 @@ RSpec.describe "Spacer" do
|
|
316
315
|
</tr>
|
317
316
|
</tbody>
|
318
317
|
</table>
|
319
|
-
</span>
|
320
318
|
HTML
|
321
319
|
|
322
320
|
compare(input, expected)
|
@@ -356,7 +354,7 @@ end
|
|
356
354
|
RSpec.describe "raw" do
|
357
355
|
it 'creates a wrapper that ignores anything inside' do
|
358
356
|
input = "<body><raw><<LCG ProgramTG LCG Coupon Code Default='246996'>></raw></body>"
|
359
|
-
expected = "<body><<LCG ProgramTG LCG Coupon Code Default='246996'>></body
|
357
|
+
expected = "<body><<LCG ProgramTG LCG Coupon Code Default='246996'>></body>"
|
360
358
|
|
361
359
|
# Can't do vanilla compare because the second will fail to parse
|
362
360
|
inky = Inky::Core.new
|
data/spec/grid_spec.rb
CHANGED
@@ -4,7 +4,7 @@ RSpec.describe "Container" do
|
|
4
4
|
it "creates a container table" do
|
5
5
|
input = '<container></container>'
|
6
6
|
expected = <<-HTML
|
7
|
-
<table class="container">
|
7
|
+
<table class="container" align="center">
|
8
8
|
<tbody>
|
9
9
|
<tr>
|
10
10
|
<td></td>
|
@@ -18,7 +18,7 @@ RSpec.describe "Container" do
|
|
18
18
|
it 'works when parsing a full HTML document' do
|
19
19
|
input = <<-INKY
|
20
20
|
<!doctype html> <html>
|
21
|
-
<head></head>
|
21
|
+
<head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"></head>
|
22
22
|
<body>
|
23
23
|
<container></container>
|
24
24
|
</body>
|
@@ -27,9 +27,9 @@ RSpec.describe "Container" do
|
|
27
27
|
expected = <<-HTML
|
28
28
|
<!DOCTYPE html>
|
29
29
|
<html>
|
30
|
-
<head></head>
|
30
|
+
<head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"></head>
|
31
31
|
<body>
|
32
|
-
<table class="container">
|
32
|
+
<table class="container" align="center">
|
33
33
|
<tbody>
|
34
34
|
<tr>
|
35
35
|
<td></td>
|
data/spec/spec_helper.rb
CHANGED
@@ -2,11 +2,18 @@ require 'inky'
|
|
2
2
|
|
3
3
|
def reformat_html(html)
|
4
4
|
html
|
5
|
-
.gsub(/\s+/, ' ')
|
6
|
-
.gsub(/> *</, ">\n<")
|
7
|
-
.gsub(%r{<(\w+)([^>]*)>\n</\1>}, '<\1\2/>')
|
8
|
-
.gsub(/ "/, '"').gsub(/\=" /, '="')
|
9
|
-
.gsub(/ </, '<').gsub(/> /, '>')
|
5
|
+
.gsub(/\s+/, ' ') # Compact all whitespace to a single space
|
6
|
+
.gsub(/> *</, ">\n<") # Use returns between tags
|
7
|
+
.gsub(%r{<(\w+)([^>]*)>\n</\1>}, '<\1\2/>') # Auto close empty tags, e.g. <hr>\n</hr> => <hr/>
|
8
|
+
.gsub(/ "/, '"').gsub(/\=" /, '="') # Remove leading/trailing spaces inside attributes
|
9
|
+
.gsub(/ </, '<').gsub(/> /, '>') # Remove leading/trailing spaces inside tags
|
10
|
+
.gsub(' data-parsed=""', '') # Don't consider this known inky-node artefact
|
11
|
+
.gsub(' ', ' ') # These are the same entity...
|
12
|
+
.gsub(/(align="[^"]+") (class="[^"]+")/, '\2 \1') # Tweak order to match inky-node on container
|
13
|
+
.gsub(/class\="([^"]+)"/) do # Sort class names
|
14
|
+
classes = $1.split(' ').sort.join(' ')
|
15
|
+
%{class="#{classes}"}
|
16
|
+
end
|
10
17
|
end
|
11
18
|
|
12
19
|
def compare(input, expected)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inky-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ZURB
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: foundation_emails
|
@@ -122,10 +122,39 @@ files:
|
|
122
122
|
- lib/inky/rails/engine.rb
|
123
123
|
- lib/inky/rails/template_handler.rb
|
124
124
|
- lib/inky/rails/version.rb
|
125
|
+
- spec/cases/button/no_link.inky
|
126
|
+
- spec/cases/button/with_expand_class.inky
|
127
|
+
- spec/cases/button/with_image.inky
|
128
|
+
- spec/cases/button/with_link.inky
|
129
|
+
- spec/cases/button/with_tricky_class.inky
|
130
|
+
- spec/cases/callout/basic.inky
|
131
|
+
- spec/cases/callout/with_attributes.inky
|
132
|
+
- spec/cases/general/multiple_root.inky
|
133
|
+
- spec/cases/general/no_tag.inky
|
134
|
+
- spec/cases/general/root_within_text.inky
|
135
|
+
- spec/cases/general/void_html_elements.inky
|
136
|
+
- spec/cases/grid/columns.inky
|
137
|
+
- spec/cases/grid/container.inky
|
138
|
+
- spec/cases/grid/container_with_align.inky
|
139
|
+
- spec/cases/grid/row.inky
|
140
|
+
- spec/cases/grid/row_with_columns.inky
|
141
|
+
- spec/cases/menu/item.inky
|
142
|
+
- spec/cases/menu/menu.inky
|
143
|
+
- spec/cases/menu/menu_with_align.inky
|
144
|
+
- spec/cases/menu/menu_with_items.inky
|
145
|
+
- spec/cases/spacer/basic.inky
|
146
|
+
- spec/cases/spacer/with_size.inky
|
147
|
+
- spec/cases/spacer/with_size_lg.inky
|
148
|
+
- spec/cases/spacer/with_size_sm.inky
|
149
|
+
- spec/cases/spacer/with_size_sm_and_lg.inky
|
150
|
+
- spec/cases/wrapper/basic.inky
|
151
|
+
- spec/cases/wrapper/with_align.inky
|
152
|
+
- spec/cases/wrapper/with_attributes.inky
|
153
|
+
- spec/cases_spec.rb
|
125
154
|
- spec/components_spec.rb
|
126
155
|
- spec/grid_spec.rb
|
127
156
|
- spec/spec_helper.rb
|
128
|
-
homepage:
|
157
|
+
homepage: https://github.com/zurb/inky-rb
|
129
158
|
licenses: []
|
130
159
|
metadata: {}
|
131
160
|
post_install_message:
|
@@ -151,6 +180,35 @@ summary: Inky is an HTML-based templating language that converts simple HTML int
|
|
151
180
|
complex, responsive email-ready HTML. Designed for Foundation for Emails, a responsive
|
152
181
|
email framework from ZURB.
|
153
182
|
test_files:
|
183
|
+
- spec/cases/button/no_link.inky
|
184
|
+
- spec/cases/button/with_expand_class.inky
|
185
|
+
- spec/cases/button/with_image.inky
|
186
|
+
- spec/cases/button/with_link.inky
|
187
|
+
- spec/cases/button/with_tricky_class.inky
|
188
|
+
- spec/cases/callout/basic.inky
|
189
|
+
- spec/cases/callout/with_attributes.inky
|
190
|
+
- spec/cases/general/multiple_root.inky
|
191
|
+
- spec/cases/general/no_tag.inky
|
192
|
+
- spec/cases/general/root_within_text.inky
|
193
|
+
- spec/cases/general/void_html_elements.inky
|
194
|
+
- spec/cases/grid/columns.inky
|
195
|
+
- spec/cases/grid/container.inky
|
196
|
+
- spec/cases/grid/container_with_align.inky
|
197
|
+
- spec/cases/grid/row.inky
|
198
|
+
- spec/cases/grid/row_with_columns.inky
|
199
|
+
- spec/cases/menu/item.inky
|
200
|
+
- spec/cases/menu/menu.inky
|
201
|
+
- spec/cases/menu/menu_with_align.inky
|
202
|
+
- spec/cases/menu/menu_with_items.inky
|
203
|
+
- spec/cases/spacer/basic.inky
|
204
|
+
- spec/cases/spacer/with_size.inky
|
205
|
+
- spec/cases/spacer/with_size_lg.inky
|
206
|
+
- spec/cases/spacer/with_size_sm.inky
|
207
|
+
- spec/cases/spacer/with_size_sm_and_lg.inky
|
208
|
+
- spec/cases/wrapper/basic.inky
|
209
|
+
- spec/cases/wrapper/with_align.inky
|
210
|
+
- spec/cases/wrapper/with_attributes.inky
|
211
|
+
- spec/cases_spec.rb
|
154
212
|
- spec/components_spec.rb
|
155
213
|
- spec/grid_spec.rb
|
156
214
|
- spec/spec_helper.rb
|