haml 5.0.0 → 5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +18 -0
- data/.gitmodules +3 -0
- data/.travis.yml +38 -0
- data/CHANGELOG.md +43 -19
- data/Gemfile +18 -0
- data/README.md +1 -0
- data/Rakefile +6 -12
- data/TODO +24 -0
- data/benchmark.rb +66 -0
- data/haml.gemspec +39 -0
- data/lib/haml/.gitattributes +1 -0
- data/lib/haml/attribute_parser.rb +4 -0
- data/lib/haml/compiler.rb +2 -1
- data/lib/haml/helpers/safe_erubi_template.rb +0 -8
- data/lib/haml/options.rb +3 -0
- data/lib/haml/railtie.rb +11 -2
- data/lib/haml/temple_engine.rb +1 -0
- data/lib/haml/version.rb +1 -1
- data/test/attribute_parser_test.rb +4 -0
- data/test/engine_test.rb +7 -0
- data/test/filters_test.rb +2 -7
- data/test/template_test.rb +10 -0
- data/yard/default/.gitignore +1 -0
- data/yard/default/fulldoc/html/css/common.sass +15 -0
- data/yard/default/layout/html/footer.erb +12 -0
- metadata +13 -65
- data/test/erb/_av_partial_1.erb +0 -12
- data/test/erb/_av_partial_2.erb +0 -8
- data/test/erb/action_view.erb +0 -62
- data/test/erb/standard.erb +0 -55
- data/test/gemfiles/Gemfile.rails-4.0.x +0 -11
- data/test/gemfiles/Gemfile.rails-4.0.x.lock +0 -87
- data/test/gemfiles/Gemfile.rails-4.1.x +0 -5
- data/test/gemfiles/Gemfile.rails-4.2.x +0 -5
- data/test/gemfiles/Gemfile.rails-5.0.x +0 -4
- data/test/markaby/standard.mab +0 -52
- data/test/mocks/article.rb +0 -6
- data/test/results/bemit.xhtml +0 -4
- data/test/results/content_for_layout.xhtml +0 -12
- data/test/results/eval_suppressed.xhtml +0 -9
- data/test/results/helpers.xhtml +0 -72
- data/test/results/helpful.xhtml +0 -13
- data/test/results/just_stuff.xhtml +0 -71
- data/test/results/list.xhtml +0 -12
- data/test/results/nuke_inner_whitespace.xhtml +0 -40
- data/test/results/nuke_outer_whitespace.xhtml +0 -140
- data/test/results/original_engine.xhtml +0 -20
- data/test/results/partial_layout.xhtml +0 -6
- data/test/results/partial_layout_erb.xhtml +0 -6
- data/test/results/partials.xhtml +0 -22
- data/test/results/render_layout.xhtml +0 -3
- data/test/results/silent_script.xhtml +0 -74
- data/test/results/standard.xhtml +0 -159
- data/test/results/tag_parsing.xhtml +0 -23
- data/test/results/very_basic.xhtml +0 -5
- data/test/results/whitespace_handling.xhtml +0 -91
- data/test/template_test_helper.rb +0 -38
- data/test/templates/_av_partial_1.haml +0 -9
- data/test/templates/_av_partial_2.haml +0 -5
- data/test/templates/_layout.erb +0 -3
- data/test/templates/_layout_for_partial.haml +0 -3
- data/test/templates/_partial.haml +0 -8
- data/test/templates/_text_area.haml +0 -3
- data/test/templates/_text_area_helper.html.haml +0 -4
- data/test/templates/action_view.haml +0 -47
- data/test/templates/bemit.haml +0 -3
- data/test/templates/breakage.haml +0 -8
- data/test/templates/content_for_layout.haml +0 -8
- data/test/templates/eval_suppressed.haml +0 -11
- data/test/templates/helpers.haml +0 -55
- data/test/templates/helpful.haml +0 -11
- data/test/templates/just_stuff.haml +0 -86
- data/test/templates/list.haml +0 -12
- data/test/templates/nuke_inner_whitespace.haml +0 -32
- data/test/templates/nuke_outer_whitespace.haml +0 -144
- data/test/templates/original_engine.haml +0 -17
- data/test/templates/partial_layout.haml +0 -3
- data/test/templates/partial_layout_erb.erb +0 -4
- data/test/templates/partialize.haml +0 -1
- data/test/templates/partials.haml +0 -12
- data/test/templates/render_layout.haml +0 -2
- data/test/templates/silent_script.haml +0 -45
- data/test/templates/standard.haml +0 -43
- data/test/templates/standard_ugly.haml +0 -1
- data/test/templates/tag_parsing.haml +0 -21
- data/test/templates/very_basic.haml +0 -4
- data/test/templates/whitespace_handling.haml +0 -87
- data/test/templates/with_bom.haml +0 -1
- data/test/test_helper.rb +0 -99
data/lib/haml/version.rb
CHANGED
@@ -65,6 +65,10 @@ class AttributeParserTeset < Haml::TestCase
|
|
65
65
|
it { assert_parse(nil, '%Q[f#{o}o] => bar ') }
|
66
66
|
end
|
67
67
|
|
68
|
+
describe 'string interpolation' do
|
69
|
+
it { assert_parse({ 'foo' => %q["#{bar baz, '/abc/'}"] }, %q[{foo: "#{bar baz, '/abc/'}"}]) }
|
70
|
+
end
|
71
|
+
|
68
72
|
describe 'multi lines' do
|
69
73
|
it { assert_parse({ 'a' => 'b', 'c' => 'd' }, "{a: b,\nc: d}") }
|
70
74
|
end
|
data/test/engine_test.rb
CHANGED
@@ -151,6 +151,13 @@ class EngineTest < Haml::TestCase
|
|
151
151
|
assert_equal("<p class='3'>foo</p>", render("%p{:class => 1+2} foo").chomp)
|
152
152
|
end
|
153
153
|
|
154
|
+
def test_attributes_with_interpolation
|
155
|
+
assert_equal("<iframe id='test' src='http://www.google.com/abc/'></iframe>\n", render(<<-'HAML'))
|
156
|
+
- base_url = "http://www.google.com"
|
157
|
+
%iframe#test{src: "#{File.join base_url, '/abc/'}"}
|
158
|
+
HAML
|
159
|
+
end
|
160
|
+
|
154
161
|
def test_class_attr_with_array
|
155
162
|
assert_equal("<p class='a b'>foo</p>\n", render("%p{:class => %w[a b]} foo")) # basic
|
156
163
|
assert_equal("<p class='a b css'>foo</p>\n", render("%p.css{:class => %w[a b]} foo")) # merge with css
|
data/test/filters_test.rb
CHANGED
@@ -126,23 +126,18 @@ end
|
|
126
126
|
|
127
127
|
class ErbFilterTest < Haml::TestCase
|
128
128
|
test "multiline expressions should work" do
|
129
|
-
html = "foobarbaz\n"
|
129
|
+
html = "foobarbaz\n\n"
|
130
130
|
haml = %Q{:erb\n <%= "foo" +\n "bar" +\n "baz" %>}
|
131
131
|
assert_equal(html, render(haml))
|
132
132
|
end
|
133
133
|
|
134
134
|
test "should evaluate in the same context as Haml" do
|
135
135
|
haml = ":erb\n <%= foo %>"
|
136
|
-
html = "bar\n"
|
136
|
+
html = "bar\n\n"
|
137
137
|
scope = Object.new.instance_eval {foo = "bar"; nil if foo; binding}
|
138
138
|
assert_equal(html, render(haml, :scope => scope))
|
139
139
|
end
|
140
140
|
|
141
|
-
test "should use Rails's XSS safety features" do
|
142
|
-
assert_equal("<img>\n", render(":erb\n <%= '<img>' %>"))
|
143
|
-
assert_equal("<img>\n", render(":erb\n <%= '<img>'.html_safe %>"))
|
144
|
-
end
|
145
|
-
|
146
141
|
end
|
147
142
|
|
148
143
|
class JavascriptFilterTest < Haml::TestCase
|
data/test/template_test.rb
CHANGED
@@ -250,6 +250,16 @@ HAML
|
|
250
250
|
assert_equal("Foo & Bar & Baz\n", render('Foo #{Haml::Util.html_safe("&")} Bar #{"&"} Baz', :action_view))
|
251
251
|
end
|
252
252
|
|
253
|
+
def test_xss_protection_with_erb_filter
|
254
|
+
if defined?(Haml::SafeErubiTemplate)
|
255
|
+
assert_equal("<img>\n\n", render(":erb\n <%= '<img>' %>", :action_view))
|
256
|
+
assert_equal("<img>\n\n", render(":erb\n <%= '<img>'.html_safe %>", :action_view))
|
257
|
+
else # For Haml::SafeErubisTemplate
|
258
|
+
assert_equal("<img>\n", render(":erb\n <%= '<img>' %>", :action_view))
|
259
|
+
assert_equal("<img>\n", render(":erb\n <%= '<img>'.html_safe %>", :action_view))
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
253
263
|
def test_rendered_string_is_html_safe
|
254
264
|
assert(render("Foo").html_safe?)
|
255
265
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
*.css
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#filecontents
|
2
|
+
*:target, dt:target + dd
|
3
|
+
background-color: #ccf
|
4
|
+
border: 1px solid #88b
|
5
|
+
dt
|
6
|
+
font-weight: bold
|
7
|
+
dd
|
8
|
+
margin:
|
9
|
+
left: 0
|
10
|
+
bottom: 0.7em
|
11
|
+
padding-left: 3em
|
12
|
+
dt:target
|
13
|
+
border-bottom-style: none
|
14
|
+
& + dd
|
15
|
+
border-top-style: none
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= superb :footer %>
|
2
|
+
<% if ENV["ANALYTICS"] %>
|
3
|
+
<script type="text/javascript">
|
4
|
+
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
5
|
+
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
6
|
+
</script>
|
7
|
+
<script type="text/javascript">
|
8
|
+
try {
|
9
|
+
var pageTracker = _gat._getTracker("<%= ENV["ANALYTICS"] %>");
|
10
|
+
pageTracker._trackPageview();
|
11
|
+
} catch(err) {}</script>
|
12
|
+
<% end %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Natalie Weizenbaum
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2017-
|
14
|
+
date: 2017-05-03 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: temple
|
@@ -111,15 +111,23 @@ executables:
|
|
111
111
|
extensions: []
|
112
112
|
extra_rdoc_files: []
|
113
113
|
files:
|
114
|
+
- ".gitignore"
|
115
|
+
- ".gitmodules"
|
116
|
+
- ".travis.yml"
|
114
117
|
- ".yardopts"
|
115
118
|
- CHANGELOG.md
|
116
119
|
- FAQ.md
|
120
|
+
- Gemfile
|
117
121
|
- MIT-LICENSE
|
118
122
|
- README.md
|
119
123
|
- REFERENCE.md
|
120
124
|
- Rakefile
|
125
|
+
- TODO
|
126
|
+
- benchmark.rb
|
121
127
|
- bin/haml
|
128
|
+
- haml.gemspec
|
122
129
|
- lib/haml.rb
|
130
|
+
- lib/haml/.gitattributes
|
123
131
|
- lib/haml/attribute_builder.rb
|
124
132
|
- lib/haml/attribute_compiler.rb
|
125
133
|
- lib/haml/attribute_parser.rb
|
@@ -151,76 +159,16 @@ files:
|
|
151
159
|
- lib/haml/version.rb
|
152
160
|
- test/attribute_parser_test.rb
|
153
161
|
- test/engine_test.rb
|
154
|
-
- test/erb/_av_partial_1.erb
|
155
|
-
- test/erb/_av_partial_2.erb
|
156
|
-
- test/erb/action_view.erb
|
157
|
-
- test/erb/standard.erb
|
158
162
|
- test/filters_test.rb
|
159
|
-
- test/gemfiles/Gemfile.rails-4.0.x
|
160
|
-
- test/gemfiles/Gemfile.rails-4.0.x.lock
|
161
|
-
- test/gemfiles/Gemfile.rails-4.1.x
|
162
|
-
- test/gemfiles/Gemfile.rails-4.2.x
|
163
|
-
- test/gemfiles/Gemfile.rails-5.0.x
|
164
163
|
- test/helper_test.rb
|
165
|
-
- test/markaby/standard.mab
|
166
|
-
- test/mocks/article.rb
|
167
164
|
- test/options_test.rb
|
168
165
|
- test/parser_test.rb
|
169
|
-
- test/results/bemit.xhtml
|
170
|
-
- test/results/content_for_layout.xhtml
|
171
|
-
- test/results/eval_suppressed.xhtml
|
172
|
-
- test/results/helpers.xhtml
|
173
|
-
- test/results/helpful.xhtml
|
174
|
-
- test/results/just_stuff.xhtml
|
175
|
-
- test/results/list.xhtml
|
176
|
-
- test/results/nuke_inner_whitespace.xhtml
|
177
|
-
- test/results/nuke_outer_whitespace.xhtml
|
178
|
-
- test/results/original_engine.xhtml
|
179
|
-
- test/results/partial_layout.xhtml
|
180
|
-
- test/results/partial_layout_erb.xhtml
|
181
|
-
- test/results/partials.xhtml
|
182
|
-
- test/results/render_layout.xhtml
|
183
|
-
- test/results/silent_script.xhtml
|
184
|
-
- test/results/standard.xhtml
|
185
|
-
- test/results/tag_parsing.xhtml
|
186
|
-
- test/results/very_basic.xhtml
|
187
|
-
- test/results/whitespace_handling.xhtml
|
188
166
|
- test/template_test.rb
|
189
|
-
- test/template_test_helper.rb
|
190
|
-
- test/templates/_av_partial_1.haml
|
191
|
-
- test/templates/_av_partial_2.haml
|
192
|
-
- test/templates/_layout.erb
|
193
|
-
- test/templates/_layout_for_partial.haml
|
194
|
-
- test/templates/_partial.haml
|
195
|
-
- test/templates/_text_area.haml
|
196
|
-
- test/templates/_text_area_helper.html.haml
|
197
|
-
- test/templates/action_view.haml
|
198
|
-
- test/templates/bemit.haml
|
199
|
-
- test/templates/breakage.haml
|
200
|
-
- test/templates/content_for_layout.haml
|
201
|
-
- test/templates/eval_suppressed.haml
|
202
|
-
- test/templates/helpers.haml
|
203
|
-
- test/templates/helpful.haml
|
204
|
-
- test/templates/just_stuff.haml
|
205
|
-
- test/templates/list.haml
|
206
|
-
- test/templates/nuke_inner_whitespace.haml
|
207
|
-
- test/templates/nuke_outer_whitespace.haml
|
208
|
-
- test/templates/original_engine.haml
|
209
|
-
- test/templates/partial_layout.haml
|
210
|
-
- test/templates/partial_layout_erb.erb
|
211
|
-
- test/templates/partialize.haml
|
212
|
-
- test/templates/partials.haml
|
213
|
-
- test/templates/render_layout.haml
|
214
|
-
- test/templates/silent_script.haml
|
215
|
-
- test/templates/standard.haml
|
216
|
-
- test/templates/standard_ugly.haml
|
217
|
-
- test/templates/tag_parsing.haml
|
218
|
-
- test/templates/very_basic.haml
|
219
|
-
- test/templates/whitespace_handling.haml
|
220
|
-
- test/templates/with_bom.haml
|
221
167
|
- test/temple_line_counter_test.rb
|
222
|
-
- test/test_helper.rb
|
223
168
|
- test/util_test.rb
|
169
|
+
- yard/default/.gitignore
|
170
|
+
- yard/default/fulldoc/html/css/common.sass
|
171
|
+
- yard/default/layout/html/footer.erb
|
224
172
|
homepage: http://haml.info/
|
225
173
|
licenses:
|
226
174
|
- MIT
|
data/test/erb/_av_partial_1.erb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
<h2>This is a pretty complicated partial</h2>
|
2
|
-
<div class="partial">
|
3
|
-
<p>It has several nested partials,</p>
|
4
|
-
<ul>
|
5
|
-
<% 5.times do %>
|
6
|
-
<li>
|
7
|
-
<strong>Partial:</strong>
|
8
|
-
<% @nesting = 5 %>
|
9
|
-
<%= render :partial => 'erb/av_partial_2' %>
|
10
|
-
<% end %>
|
11
|
-
</ul>
|
12
|
-
</div>
|
data/test/erb/_av_partial_2.erb
DELETED
data/test/erb/action_view.erb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en-US'>
|
3
|
-
<head>
|
4
|
-
<title>Hampton Catlin Is Totally Awesome</title>
|
5
|
-
<meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
|
6
|
-
</head>
|
7
|
-
<body>
|
8
|
-
<h1>
|
9
|
-
This is very much like the standard template,
|
10
|
-
except that it has some ActionView-specific stuff.
|
11
|
-
It's only used for benchmarking.
|
12
|
-
</h1>
|
13
|
-
<div class="crazy_partials">
|
14
|
-
<%= render :partial => 'erb/av_partial_1' %>
|
15
|
-
</div>
|
16
|
-
<!-- You're In my house now! -->
|
17
|
-
<div class='header'>
|
18
|
-
Yes, ladies and gentileman. He is just that egotistical.
|
19
|
-
Fantastic! This should be multi-line output
|
20
|
-
The question is if this would translate! Ahah!
|
21
|
-
<%= 1 + 9 + 8 + 2 %>
|
22
|
-
<%# numbers should work and this should be ignored %>
|
23
|
-
</div>
|
24
|
-
<% 120.times do |number| -%>
|
25
|
-
<%= number %>
|
26
|
-
<% end -%>
|
27
|
-
<div id='body'><%= " Quotes should be loved! Just like people!" %></div>
|
28
|
-
Wow.
|
29
|
-
<p>
|
30
|
-
<%= "Holy cow " +
|
31
|
-
"multiline " +
|
32
|
-
"tags! " +
|
33
|
-
"A pipe (|) even!" %>
|
34
|
-
<%= [1, 2, 3].collect { |n| "PipesIgnored|" } %>
|
35
|
-
<%= [1, 2, 3].collect { |n|
|
36
|
-
n.to_s
|
37
|
-
}.join("|") %>
|
38
|
-
</p>
|
39
|
-
<div class='silent'>
|
40
|
-
<% foo = String.new
|
41
|
-
foo << "this"
|
42
|
-
foo << " shouldn't"
|
43
|
-
foo << " evaluate" %>
|
44
|
-
<%= foo + "but now it should!" %>
|
45
|
-
<%# Woah crap a comment! %>
|
46
|
-
</div>
|
47
|
-
<ul class='really cool'>
|
48
|
-
<% ('a'..'f').each do |a|%>
|
49
|
-
<li><%= a %>
|
50
|
-
<% end %>
|
51
|
-
<div class='of_divs_with_underscore' id='combo'><%= @should_eval = "with this text" %></div>
|
52
|
-
<%= [ 104, 101, 108, 108, 111 ].map do |byte|
|
53
|
-
byte.chr
|
54
|
-
end %>
|
55
|
-
<div class='footer'>
|
56
|
-
<strong class='shout'>
|
57
|
-
<%= "This is a really long ruby quote. It should be loved and wrapped because its more than 50 characters. This value may change in the future and this test may look stupid.\n" +
|
58
|
-
" So, I'm just making it *really* long. God, I hope this works" %>
|
59
|
-
</strong>
|
60
|
-
</div>
|
61
|
-
</body>
|
62
|
-
</html>
|
data/test/erb/standard.erb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en-US' lang='en-US'>
|
3
|
-
<head>
|
4
|
-
<title>Hampton Catlin Is Totally Awesome</title>
|
5
|
-
<meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
|
6
|
-
</head>
|
7
|
-
<body>
|
8
|
-
<!-- You're In my house now! -->
|
9
|
-
<div class='header'>
|
10
|
-
Yes, ladies and gentileman. He is just that egotistical.
|
11
|
-
Fantastic! This should be multi-line output
|
12
|
-
The question is if this would translate! Ahah!
|
13
|
-
<%= 1 + 9 + 8 + 2 %>
|
14
|
-
<%# numbers should work and this should be ignored %>
|
15
|
-
</div>
|
16
|
-
<% 120.times do |number| -%>
|
17
|
-
<%= number %>
|
18
|
-
<% end -%>
|
19
|
-
<div id='body'><%= " Quotes should be loved! Just like people!" %></div>
|
20
|
-
Wow.
|
21
|
-
<p code="<%= 1 + 2 %>">
|
22
|
-
<%= "Holy cow " +
|
23
|
-
"multiline " +
|
24
|
-
"tags! " +
|
25
|
-
"A pipe (|) even!" %>
|
26
|
-
<%= [1, 2, 3].collect { |n| "PipesIgnored|" }.join %>
|
27
|
-
<%= [1, 2, 3].collect { |n|
|
28
|
-
n.to_s
|
29
|
-
}.join("|") %>
|
30
|
-
</p>
|
31
|
-
<% bar = 17 %>
|
32
|
-
<div class='silent' foo="<%= bar %>">
|
33
|
-
<% foo = String.new
|
34
|
-
foo << "this"
|
35
|
-
foo << " shouldn't"
|
36
|
-
foo << " evaluate" %>
|
37
|
-
<%= foo + "but now it should!" %>
|
38
|
-
<%# Woah crap a comment! %>
|
39
|
-
</div>
|
40
|
-
<ul class='really cool'>
|
41
|
-
<% ('a'..'f').each do |a|%>
|
42
|
-
<li><%= a %></li>
|
43
|
-
<% end %>
|
44
|
-
<div class='of_divs_with_underscore' id='combo'><%= @should_eval = "with this text" %></div>
|
45
|
-
<%= "foo".each_line do |line|
|
46
|
-
nil
|
47
|
-
end %>
|
48
|
-
<div class='footer'>
|
49
|
-
<strong class='shout'>
|
50
|
-
<%= "This is a really long ruby quote. It should be loved and wrapped because its more than 50 characters. This value may change in the future and this test may look stupid.\n" +
|
51
|
-
" So, I'm just making it *really* long. God, I hope this works" %>
|
52
|
-
</strong>
|
53
|
-
</div>
|
54
|
-
</body>
|
55
|
-
</html>
|
@@ -1,87 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../..
|
3
|
-
specs:
|
4
|
-
haml (4.0.7)
|
5
|
-
tilt
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: http://rubygems.org/
|
9
|
-
specs:
|
10
|
-
actionmailer (4.0.13)
|
11
|
-
actionpack (= 4.0.13)
|
12
|
-
mail (~> 2.5, >= 2.5.4)
|
13
|
-
actionpack (4.0.13)
|
14
|
-
activesupport (= 4.0.13)
|
15
|
-
builder (~> 3.1.0)
|
16
|
-
erubis (~> 2.7.0)
|
17
|
-
rack (~> 1.5.2)
|
18
|
-
rack-test (~> 0.6.2)
|
19
|
-
activemodel (4.0.13)
|
20
|
-
activesupport (= 4.0.13)
|
21
|
-
builder (~> 3.1.0)
|
22
|
-
activerecord (4.0.13)
|
23
|
-
activemodel (= 4.0.13)
|
24
|
-
activerecord-deprecated_finders (~> 1.0.2)
|
25
|
-
activesupport (= 4.0.13)
|
26
|
-
arel (~> 4.0.0)
|
27
|
-
activerecord-deprecated_finders (1.0.4)
|
28
|
-
activesupport (4.0.13)
|
29
|
-
i18n (~> 0.6, >= 0.6.9)
|
30
|
-
minitest (~> 4.2)
|
31
|
-
multi_json (~> 1.3)
|
32
|
-
thread_safe (~> 0.1)
|
33
|
-
tzinfo (~> 0.3.37)
|
34
|
-
arel (4.0.2)
|
35
|
-
builder (3.1.4)
|
36
|
-
concurrent-ruby (1.0.2)
|
37
|
-
erubis (2.7.0)
|
38
|
-
i18n (0.7.0)
|
39
|
-
mail (2.6.4)
|
40
|
-
mime-types (>= 1.16, < 4)
|
41
|
-
mime-types (2.99.2)
|
42
|
-
minitest (4.7.5)
|
43
|
-
multi_json (1.12.1)
|
44
|
-
nokogiri (1.5.11)
|
45
|
-
rack (1.5.5)
|
46
|
-
rack-test (0.6.3)
|
47
|
-
rack (>= 1.0)
|
48
|
-
rails (4.0.13)
|
49
|
-
actionmailer (= 4.0.13)
|
50
|
-
actionpack (= 4.0.13)
|
51
|
-
activerecord (= 4.0.13)
|
52
|
-
activesupport (= 4.0.13)
|
53
|
-
bundler (>= 1.3.0, < 2.0)
|
54
|
-
railties (= 4.0.13)
|
55
|
-
sprockets-rails (~> 2.0)
|
56
|
-
railties (4.0.13)
|
57
|
-
actionpack (= 4.0.13)
|
58
|
-
activesupport (= 4.0.13)
|
59
|
-
rake (>= 0.8.7)
|
60
|
-
thor (>= 0.18.1, < 2.0)
|
61
|
-
rake (11.2.2)
|
62
|
-
rbench (0.2.3)
|
63
|
-
sprockets (3.7.0)
|
64
|
-
concurrent-ruby (~> 1.0)
|
65
|
-
rack (> 1, < 3)
|
66
|
-
sprockets-rails (2.3.3)
|
67
|
-
actionpack (>= 3.0)
|
68
|
-
activesupport (>= 3.0)
|
69
|
-
sprockets (>= 2.8, < 4.0)
|
70
|
-
thor (0.19.1)
|
71
|
-
thread_safe (0.3.5)
|
72
|
-
tilt (2.0.5)
|
73
|
-
tzinfo (0.3.51)
|
74
|
-
|
75
|
-
PLATFORMS
|
76
|
-
ruby
|
77
|
-
|
78
|
-
DEPENDENCIES
|
79
|
-
haml!
|
80
|
-
mime-types (< 3)
|
81
|
-
minitest
|
82
|
-
nokogiri (~> 1.5.10)
|
83
|
-
rails (~> 4.0.0)
|
84
|
-
rbench
|
85
|
-
|
86
|
-
BUNDLED WITH
|
87
|
-
1.12.5
|