haml 5.0.0 → 5.0.1
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/.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
|