condensation 1.5.0 → 1.6.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.rubocop_todo.yml +35 -0
  4. data/Rakefile +6 -6
  5. data/condensation.gemspec +18 -16
  6. data/lib/condensation.rb +9 -7
  7. data/lib/condensation/extensions.rb +7 -5
  8. data/lib/condensation/filters.rb +15 -13
  9. data/lib/condensation/filters/advance_date_to_next.rb +13 -9
  10. data/lib/condensation/filters/at_midnight.rb +12 -8
  11. data/lib/condensation/filters/days_since.rb +10 -6
  12. data/lib/condensation/filters/days_until.rb +10 -6
  13. data/lib/condensation/filters/default.rb +2 -2
  14. data/lib/condensation/filters/hmac_sha256.rb +12 -0
  15. data/lib/condensation/filters/hyperlink.rb +1 -1
  16. data/lib/condensation/filters/in_time_zone.rb +6 -6
  17. data/lib/condensation/filters/md5.rb +12 -0
  18. data/lib/condensation/filters/replace_inner_html.rb +4 -4
  19. data/lib/condensation/filters/strip_commas.rb +2 -2
  20. data/lib/condensation/filters/url_encode.rb +4 -2
  21. data/lib/condensation/filters/weeks_since.rb +10 -6
  22. data/lib/condensation/filters/weeks_until.rb +10 -6
  23. data/lib/condensation/sanitizer.rb +4 -2
  24. data/lib/condensation/version.rb +1 -1
  25. data/spec/condensation/filters/advance_date_to_next_spec.rb +39 -39
  26. data/spec/condensation/filters/at_midnight_spec.rb +29 -29
  27. data/spec/condensation/filters/days_since_spec.rb +34 -34
  28. data/spec/condensation/filters/days_until_spec.rb +39 -39
  29. data/spec/condensation/filters/default_spec.rb +19 -19
  30. data/spec/condensation/filters/hmac_sha256_spec.rb +21 -0
  31. data/spec/condensation/filters/hyperlink_spec.rb +23 -23
  32. data/spec/condensation/filters/in_time_zone_spec.rb +10 -10
  33. data/spec/condensation/filters/md5_spec.rb +21 -0
  34. data/spec/condensation/filters/replace_inner_html_spec.rb +10 -10
  35. data/spec/condensation/filters/strip_commas_spec.rb +10 -10
  36. data/spec/condensation/filters/timestamp_spec.rb +34 -34
  37. data/spec/condensation/filters/url_encode_spec.rb +10 -10
  38. data/spec/condensation/filters/weeks_since_spec.rb +34 -34
  39. data/spec/condensation/filters/weeks_until_spec.rb +39 -39
  40. data/spec/condensation/sanitizer_spec.rb +4 -4
  41. data/spec/condensation_spec.rb +1 -1
  42. data/spec/spec_helper.rb +1 -2
  43. metadata +25 -3
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ describe Condensation::Filters::HmacSha256 do
4
+ def render_with_filter(template, context)
5
+ template.render(context, filters: [Condensation::Filters::HmacSha256])
6
+ end
7
+
8
+ it 'should convert a string into a SHA-256 hash using a hash message authentication code' do
9
+ template = Liquid::Template.parse("{{ text | hmac_sha256: 'abcd' }}")
10
+
11
+ result = render_with_filter(template, 'text' => 'The foo to the bar')
12
+ result.must_equal 'ea8ffbac691e798b71e9604fd8cbd58a55618f5b29bb1dbd781aac769edb2901'
13
+ end
14
+
15
+ it 'should handle nil values' do
16
+ template = Liquid::Template.parse("{{ text | hmac_sha256: '' }}")
17
+
18
+ result = render_with_filter(template, 'text' => nil)
19
+ result.must_equal ''
20
+ end
21
+ end
@@ -2,49 +2,49 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  describe Condensation::Filters::Hyperlink do
4
4
  def render_with_filter(template, context)
5
- template.render(context, :filters => [Condensation::Filters::Hyperlink])
5
+ template.render(context, filters: [Condensation::Filters::Hyperlink])
6
6
  end
7
7
 
8
- it "should use the URL as the anchor text if none provided" do
9
- url = "http://www.example.com"
10
- template = Liquid::Template.parse("{{ url | hyperlink }}")
11
- result = render_with_filter(template, { "url" => url })
8
+ it 'should use the URL as the anchor text if none provided' do
9
+ url = 'http://www.example.com'
10
+ template = Liquid::Template.parse('{{ url | hyperlink }}')
11
+ result = render_with_filter(template, 'url' => url)
12
12
  result.must_equal "<a href='#{url}'>#{url}</a>"
13
13
  end
14
14
 
15
- it "should use the provided anchor text" do
16
- url = "http://www.example.com"
15
+ it 'should use the provided anchor text' do
16
+ url = 'http://www.example.com'
17
17
  template = Liquid::Template.parse("{{ url | hyperlink: 'Click here!' }}")
18
- result = render_with_filter(template, { "url" => url })
18
+ result = render_with_filter(template, 'url' => url)
19
19
  result.must_equal "<a href='#{url}'>Click here!</a>"
20
20
  end
21
21
 
22
- it "should escape HTML in the URL" do
23
- url = "<script>attack.me()</script>"
24
- escaped = "&lt;script&gt;attack.me()&lt;/script&gt;"
25
- template = Liquid::Template.parse("{{ url | hyperlink }}")
26
- result = render_with_filter(template, { "url" => url })
22
+ it 'should escape HTML in the URL' do
23
+ url = '<script>attack.me()</script>'
24
+ escaped = '&lt;script&gt;attack.me()&lt;/script&gt;'
25
+ template = Liquid::Template.parse('{{ url | hyperlink }}')
26
+ result = render_with_filter(template, 'url' => url)
27
27
  result.must_equal "<a href='#{escaped}'>#{escaped}</a>"
28
28
  end
29
29
 
30
- it "should escape HTML in the anchor text" do
31
- url = "http://www.example.com"
32
- text = "<script>attack.me()</script>"
33
- escaped = "&lt;script&gt;attack.me()&lt;/script&gt;"
30
+ it 'should escape HTML in the anchor text' do
31
+ url = 'http://www.example.com'
32
+ text = '<script>attack.me()</script>'
33
+ escaped = '&lt;script&gt;attack.me()&lt;/script&gt;'
34
34
  template = Liquid::Template.parse("{{ url | hyperlink: '#{text}' }}")
35
- result = render_with_filter(template, { "url" => url })
35
+ result = render_with_filter(template, 'url' => url)
36
36
  result.must_equal "<a href='#{url}'>#{escaped}</a>"
37
37
  end
38
38
 
39
- it "should return empty string if input is nil" do
40
- template = Liquid::Template.parse("{{ url | hyperlink }}")
39
+ it 'should return empty string if input is nil' do
40
+ template = Liquid::Template.parse('{{ url | hyperlink }}')
41
41
  result = render_with_filter(template, {})
42
- result.must_equal ""
42
+ result.must_equal ''
43
43
  end
44
44
 
45
- it "should handle numeric input" do
45
+ it 'should handle numeric input' do
46
46
  template = Liquid::Template.parse("{{ url | hyperlink: 'Bar' }}")
47
- result = render_with_filter(template, { "url" => 1 })
47
+ result = render_with_filter(template, 'url' => 1)
48
48
  result.must_equal "<a href='1'>Bar</a>"
49
49
  end
50
50
  end
@@ -2,24 +2,24 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  describe Condensation::Filters::InTimeZone do
4
4
  def render_with_filter(template, context)
5
- template.render(context, :filters => [Condensation::Filters::InTimeZone])
5
+ template.render(context, filters: [Condensation::Filters::InTimeZone])
6
6
  end
7
7
 
8
- it "should handle UTC ISO 8601 dates" do
9
- created_at = "2015-01-01T10:00:00Z"
8
+ it 'should handle UTC ISO 8601 dates' do
9
+ created_at = '2015-01-01T10:00:00Z'
10
10
  template = Liquid::Template.parse("{{ created_at | in_time_zone: 'America/Los_Angeles' }}")
11
- result = render_with_filter(template, { "created_at" => created_at })
12
- result.must_equal "2015-01-01 02:00:00 -0800"
11
+ result = render_with_filter(template, 'created_at' => created_at)
12
+ result.must_equal '2015-01-01 02:00:00 -0800'
13
13
 
14
14
  template = Liquid::Template.parse("{{ created_at | in_time_zone: 'Indian/Maldives' }}")
15
- result = render_with_filter(template, { "created_at" => created_at })
16
- result.must_equal "2015-01-01 15:00:00 +0500"
15
+ result = render_with_filter(template, 'created_at' => created_at)
16
+ result.must_equal '2015-01-01 15:00:00 +0500'
17
17
  end
18
18
 
19
- it "should handle Time input" do
19
+ it 'should handle Time input' do
20
20
  created_at = Time.utc(2015, 1, 1, 10, 0, 0)
21
21
  template = Liquid::Template.parse("{{ created_at | in_time_zone: 'America/Los_Angeles' }}")
22
- result = render_with_filter(template, { "created_at" => created_at })
23
- result.must_equal "2015-01-01 02:00:00 -0800"
22
+ result = render_with_filter(template, 'created_at' => created_at)
23
+ result.must_equal '2015-01-01 02:00:00 -0800'
24
24
  end
25
25
  end
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ describe Condensation::Filters::MD5 do
4
+ def render_with_filter(template, context)
5
+ template.render(context, filters: [Condensation::Filters::MD5])
6
+ end
7
+
8
+ it 'should return a MD5 hash of the input' do
9
+ template = Liquid::Template.parse('{{ text | md5 }}')
10
+
11
+ result = render_with_filter(template, 'text' => 'The foo to the bar')
12
+ result.must_equal '9dd755a53b119d3e8d7106aafe7d9d44'
13
+ end
14
+
15
+ it 'should handle nil values' do
16
+ template = Liquid::Template.parse('{{ text | md5 }}')
17
+
18
+ result = render_with_filter(template, 'text' => nil)
19
+ result.must_equal ''
20
+ end
21
+ end
@@ -2,17 +2,17 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  describe Condensation::Filters::ReplaceInnerHTML do
4
4
  def render_with_filter(template, context)
5
- template.render(context, :filters => [Condensation::Filters::ReplaceInnerHTML])
5
+ template.render(context, filters: [Condensation::Filters::ReplaceInnerHTML])
6
6
  end
7
7
 
8
- it "should replace the inner content of a given HTML tag" do
8
+ it 'should replace the inner content of a given HTML tag' do
9
9
  tag = "<a href='http://www.example.com'>Foo</a>"
10
10
  template = Liquid::Template.parse("{{ example_link | replace_inner_html: 'Bar' }}")
11
- result = render_with_filter(template, { "example_link" => tag })
11
+ result = render_with_filter(template, 'example_link' => tag)
12
12
  result.must_equal "<a href='http://www.example.com'>Bar</a>"
13
13
  end
14
14
 
15
- it "should not alter malformed input" do
15
+ it 'should not alter malformed input' do
16
16
  tags = [
17
17
  "< a href='http://www.example.com'>Foo</a>",
18
18
  "<a href='http://www.example.com'>Foo< /a>",
@@ -22,20 +22,20 @@ describe Condensation::Filters::ReplaceInnerHTML do
22
22
 
23
23
  tags.each do |tag|
24
24
  template = Liquid::Template.parse("{{ example_link | replace_inner_html: 'Bar' }}")
25
- result = render_with_filter(template, { "example_link" => tag })
25
+ result = render_with_filter(template, 'example_link' => tag)
26
26
  result.must_equal tag
27
27
  end
28
28
  end
29
29
 
30
- it "should return empty string if input is nil" do
30
+ it 'should return empty string if input is nil' do
31
31
  template = Liquid::Template.parse("{{ example_link | replace_inner_html: 'Bar' }}")
32
32
  result = render_with_filter(template, {})
33
- result.must_equal ""
33
+ result.must_equal ''
34
34
  end
35
35
 
36
- it "should handle numeric input" do
36
+ it 'should handle numeric input' do
37
37
  template = Liquid::Template.parse("{{ example_link | replace_inner_html: 'Bar' }}")
38
- result = render_with_filter(template, { "example_link" => 1 })
39
- result.must_equal "1"
38
+ result = render_with_filter(template, 'example_link' => 1)
39
+ result.must_equal '1'
40
40
  end
41
41
  end
@@ -2,20 +2,20 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  describe Condensation::Filters::StripCommas do
4
4
  def render_with_filter(template, context)
5
- template.render(context, :filters => [Condensation::Filters::StripCommas])
5
+ template.render(context, filters: [Condensation::Filters::StripCommas])
6
6
  end
7
7
 
8
- it "remove commas" do
9
- tag = "foo, bar, bop"
10
- template = Liquid::Template.parse("{{ tag | strip_commas }}")
11
- result = render_with_filter(template, { "tag" => tag })
12
- result.must_equal "foo bar bop"
8
+ it 'remove commas' do
9
+ tag = 'foo, bar, bop'
10
+ template = Liquid::Template.parse('{{ tag | strip_commas }}')
11
+ result = render_with_filter(template, 'tag' => tag)
12
+ result.must_equal 'foo bar bop'
13
13
  end
14
14
 
15
- it "should handle nil values" do
15
+ it 'should handle nil values' do
16
16
  tag = nil
17
- template = Liquid::Template.parse("{{ tags | strip_commas }}")
18
- result = render_with_filter(template, { "tag" => tag })
19
- result.must_equal ""
17
+ template = Liquid::Template.parse('{{ tags | strip_commas }}')
18
+ result = render_with_filter(template, 'tag' => tag)
19
+ result.must_equal ''
20
20
  end
21
21
  end
@@ -2,63 +2,63 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  describe Condensation::Filters::Timestamp do
4
4
  def render_with_filter(template, context)
5
- template.render(context, :filters => [Condensation::Filters::Timestamp])
5
+ template.render(context, filters: [Condensation::Filters::Timestamp])
6
6
  end
7
7
 
8
- it "should handle UTC ISO 8601 dates" do
9
- created_at = "2015-06-11T10:00:00Z" # a Thursday
10
- template = Liquid::Template.parse("{{ created_at | timestamp }}")
11
- result = render_with_filter(template, { "created_at" => created_at })
8
+ it 'should handle UTC ISO 8601 dates' do
9
+ created_at = '2015-06-11T10:00:00Z' # a Thursday
10
+ template = Liquid::Template.parse('{{ created_at | timestamp }}')
11
+ result = render_with_filter(template, 'created_at' => created_at)
12
12
  result.must_equal Time.parse(created_at).to_i.to_s
13
13
  end
14
14
 
15
- it "should handle non-UTC ISO 8601 dates" do
16
- created_at = "2015-06-11T20:00:00-07:00" # a Thursday
17
- template = Liquid::Template.parse("{{ created_at | timestamp }}")
18
- result = render_with_filter(template, { "created_at" => created_at })
15
+ it 'should handle non-UTC ISO 8601 dates' do
16
+ created_at = '2015-06-11T20:00:00-07:00' # a Thursday
17
+ template = Liquid::Template.parse('{{ created_at | timestamp }}')
18
+ result = render_with_filter(template, 'created_at' => created_at)
19
19
  result.must_equal Time.parse(created_at).to_i.to_s
20
20
  end
21
21
 
22
- it "should handle YMD formatted dates" do
23
- created_at = "2015-06-11" # a Thursday
24
- template = Liquid::Template.parse("{{ created_at | timestamp }}")
25
- result = render_with_filter(template, { "created_at" => created_at })
22
+ it 'should handle YMD formatted dates' do
23
+ created_at = '2015-06-11' # a Thursday
24
+ template = Liquid::Template.parse('{{ created_at | timestamp }}')
25
+ result = render_with_filter(template, 'created_at' => created_at)
26
26
  result.must_equal Time.parse(created_at).to_i.to_s
27
27
  end
28
28
 
29
- it "should handle UTC Time input" do
29
+ it 'should handle UTC Time input' do
30
30
  created_at = Time.utc(2015, 6, 11, 10, 0, 0) # a Thursday
31
- template = Liquid::Template.parse("{{ created_at | timestamp }}")
32
- result = render_with_filter(template, { "created_at" => created_at })
31
+ template = Liquid::Template.parse('{{ created_at | timestamp }}')
32
+ result = render_with_filter(template, 'created_at' => created_at)
33
33
  result.must_equal created_at.to_i.to_s
34
34
  end
35
35
 
36
- it "should handle non-UTC ActiveSupport::TimeWithZone input" do
37
- zone = ActiveSupport::TimeZone["Indian/Maldives"] # UTC+05:00
36
+ it 'should handle non-UTC ActiveSupport::TimeWithZone input' do
37
+ zone = ActiveSupport::TimeZone['Indian/Maldives'] # UTC+05:00
38
38
  created_at = Time.utc(2015, 6, 11, 10, 0, 0).in_time_zone(zone) # Thu, 11 Jun 2015 15:00:00 MVT +05:00
39
- template = Liquid::Template.parse("{{ created_at | timestamp }}")
40
- result = render_with_filter(template, { "created_at" => created_at })
39
+ template = Liquid::Template.parse('{{ created_at | timestamp }}')
40
+ result = render_with_filter(template, 'created_at' => created_at)
41
41
  result.must_equal created_at.to_i.to_s
42
42
  end
43
43
 
44
- it "should render an error given an invalid date" do
45
- created_at = "foo"
46
- template = Liquid::Template.parse("{{ created_at | timestamp }}")
47
- result = render_with_filter(template, { "created_at" => created_at })
48
- result.must_equal "Liquid error: cannot convert foo to timestamp"
44
+ it 'should render an error given an invalid date' do
45
+ created_at = 'foo'
46
+ template = Liquid::Template.parse('{{ created_at | timestamp }}')
47
+ result = render_with_filter(template, 'created_at' => created_at)
48
+ result.must_equal 'Liquid error: cannot convert foo to timestamp'
49
49
  end
50
50
 
51
- it "should handle empty string input" do
52
- created_at = ""
53
- template = Liquid::Template.parse("{{ created_at | timestamp }}")
54
- result = render_with_filter(template, { "created_at" => created_at })
55
- result.must_equal ""
51
+ it 'should handle empty string input' do
52
+ created_at = ''
53
+ template = Liquid::Template.parse('{{ created_at | timestamp }}')
54
+ result = render_with_filter(template, 'created_at' => created_at)
55
+ result.must_equal ''
56
56
  end
57
57
 
58
- it "should handle nil input" do
58
+ it 'should handle nil input' do
59
59
  created_at = nil
60
- template = Liquid::Template.parse("{{ created_at | timestamp }}")
61
- result = render_with_filter(template, { "created_at" => created_at })
62
- result.must_equal ""
60
+ template = Liquid::Template.parse('{{ created_at | timestamp }}')
61
+ result = render_with_filter(template, 'created_at' => created_at)
62
+ result.must_equal ''
63
63
  end
64
64
  end
@@ -2,20 +2,20 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  describe Condensation::Filters::UrlEncode do
4
4
  def render_with_filter(template, context)
5
- template.render(context, :filters => [Condensation::Filters::UrlEncode])
5
+ template.render(context, filters: [Condensation::Filters::UrlEncode])
6
6
  end
7
7
 
8
- it "encode the input" do
9
- email = "derrick+1@example.com"
10
- template = Liquid::Template.parse("{{ email | url_encode }}")
11
- result = render_with_filter(template, { "email" => email })
12
- result.must_equal "derrick%2B1%40example.com"
8
+ it 'encode the input' do
9
+ email = 'derrick+1@example.com'
10
+ template = Liquid::Template.parse('{{ email | url_encode }}')
11
+ result = render_with_filter(template, 'email' => email)
12
+ result.must_equal 'derrick%2B1%40example.com'
13
13
  end
14
14
 
15
- it "should handle nil values" do
15
+ it 'should handle nil values' do
16
16
  email = nil
17
- template = Liquid::Template.parse("{{ email | url_encode }}")
18
- result = render_with_filter(template, { "email" => email })
19
- result.must_equal ""
17
+ template = Liquid::Template.parse('{{ email | url_encode }}')
18
+ result = render_with_filter(template, 'email' => email)
19
+ result.must_equal ''
20
20
  end
21
21
  end
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
2
 
3
3
  describe Condensation::Filters::WeeksSince do
4
4
  def render_with_filter(template, context)
5
- template.render(context, :filters => [Condensation::Filters::WeeksSince])
5
+ template.render(context, filters: [Condensation::Filters::WeeksSince])
6
6
  end
7
7
 
8
8
  let(:now) do
@@ -17,52 +17,52 @@ describe Condensation::Filters::WeeksSince do
17
17
  Timecop.return
18
18
  end
19
19
 
20
- it "should handle UTC ISO 8601 dates" do
21
- created_at = "2014-05-15T10:00:00Z"
22
- template = Liquid::Template.parse("{{ created_at | weeks_since }}")
23
- result = render_with_filter(template, { "created_at" => created_at })
24
- result.must_equal "2"
20
+ it 'should handle UTC ISO 8601 dates' do
21
+ created_at = '2014-05-15T10:00:00Z'
22
+ template = Liquid::Template.parse('{{ created_at | weeks_since }}')
23
+ result = render_with_filter(template, 'created_at' => created_at)
24
+ result.must_equal '2'
25
25
  end
26
26
 
27
- it "should handle non-UTC ISO 8601 dates" do
28
- created_at = "2014-05-15T20:00:00-07:00"
29
- template = Liquid::Template.parse("{{ created_at | weeks_since }}")
30
- result = render_with_filter(template, { "created_at" => created_at })
31
- result.must_equal "1"
27
+ it 'should handle non-UTC ISO 8601 dates' do
28
+ created_at = '2014-05-15T20:00:00-07:00'
29
+ template = Liquid::Template.parse('{{ created_at | weeks_since }}')
30
+ result = render_with_filter(template, 'created_at' => created_at)
31
+ result.must_equal '1'
32
32
  end
33
33
 
34
- it "should handle Time input" do
34
+ it 'should handle Time input' do
35
35
  created_at = Time.utc(2014, 5, 1, 0, 0, 0)
36
- template = Liquid::Template.parse("{{ created_at | weeks_since }}")
37
- result = render_with_filter(template, { "created_at" => created_at })
38
- result.must_equal "4"
36
+ template = Liquid::Template.parse('{{ created_at | weeks_since }}')
37
+ result = render_with_filter(template, 'created_at' => created_at)
38
+ result.must_equal '4'
39
39
  end
40
40
 
41
- it "should handle malformed dates" do
42
- created_at = "foo"
43
- template = Liquid::Template.parse("{{ created_at | weeks_since }}")
44
- result = render_with_filter(template, { "created_at" => created_at })
45
- result.must_equal ""
41
+ it 'should handle malformed dates' do
42
+ created_at = 'foo'
43
+ template = Liquid::Template.parse('{{ created_at | weeks_since }}')
44
+ result = render_with_filter(template, 'created_at' => created_at)
45
+ result.must_equal ''
46
46
  end
47
47
 
48
- it "should be zero for times in the future" do
49
- created_at = "2014-06-01T20:00:00Z"
50
- template = Liquid::Template.parse("{{ created_at | weeks_since }}")
51
- result = render_with_filter(template, { "created_at" => created_at })
52
- result.must_equal "0"
48
+ it 'should be zero for times in the future' do
49
+ created_at = '2014-06-01T20:00:00Z'
50
+ template = Liquid::Template.parse('{{ created_at | weeks_since }}')
51
+ result = render_with_filter(template, 'created_at' => created_at)
52
+ result.must_equal '0'
53
53
  end
54
54
 
55
- it "should handle empty string input" do
56
- created_at = ""
57
- template = Liquid::Template.parse("{{ created_at | weeks_since }}")
58
- result = render_with_filter(template, { "created_at" => created_at })
59
- result.must_equal ""
55
+ it 'should handle empty string input' do
56
+ created_at = ''
57
+ template = Liquid::Template.parse('{{ created_at | weeks_since }}')
58
+ result = render_with_filter(template, 'created_at' => created_at)
59
+ result.must_equal ''
60
60
  end
61
61
 
62
- it "should handle nil input" do
62
+ it 'should handle nil input' do
63
63
  created_at = nil
64
- template = Liquid::Template.parse("{{ created_at | weeks_since }}")
65
- result = render_with_filter(template, { "created_at" => created_at })
66
- result.must_equal ""
64
+ template = Liquid::Template.parse('{{ created_at | weeks_since }}')
65
+ result = render_with_filter(template, 'created_at' => created_at)
66
+ result.must_equal ''
67
67
  end
68
68
  end