condensation 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
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