jekyll-minibundle 3.0.0 → 4.0.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +78 -66
  3. data/README.md +117 -101
  4. data/Rakefile +8 -26
  5. data/jekyll-minibundle.gemspec +5 -11
  6. data/lib/jekyll/minibundle/asset_bundle.rb +1 -1
  7. data/lib/jekyll/minibundle/asset_file_drop.rb +1 -3
  8. data/lib/jekyll/minibundle/asset_file_registry.rb +2 -2
  9. data/lib/jekyll/minibundle/asset_tag_markup.rb +1 -1
  10. data/lib/jekyll/minibundle/bundle_file.rb +3 -0
  11. data/lib/jekyll/minibundle/development_file.rb +2 -0
  12. data/lib/jekyll/minibundle/hashes.rb +1 -3
  13. data/lib/jekyll/minibundle/stamp_file.rb +3 -0
  14. data/lib/jekyll/minibundle/variable_template.rb +3 -1
  15. data/lib/jekyll/minibundle/variable_template_registry.rb +2 -2
  16. data/lib/jekyll/minibundle/version.rb +1 -1
  17. metadata +8 -184
  18. data/test/fixture/site/_assets/scripts/app.js +0 -5
  19. data/test/fixture/site/_assets/scripts/dependency.js +0 -4
  20. data/test/fixture/site/_assets/styles/common.css +0 -2
  21. data/test/fixture/site/_assets/styles/reset.css +0 -2
  22. data/test/fixture/site/_bin/remove_comments +0 -4
  23. data/test/fixture/site/_bin/with_count +0 -15
  24. data/test/fixture/site/_config.yml +0 -3
  25. data/test/fixture/site/_layouts/default.html +0 -29
  26. data/test/fixture/site/_tmp/site.css +0 -3
  27. data/test/fixture/site/about.html +0 -4
  28. data/test/fixture/site/assets/site.css +0 -2
  29. data/test/fixture/site/index.html +0 -4
  30. data/test/integration/minibundle_development_mode_test.rb +0 -554
  31. data/test/integration/minibundle_production_mode_test.rb +0 -900
  32. data/test/integration/ministamp_development_mode_test.rb +0 -235
  33. data/test/integration/ministamp_production_mode_test.rb +0 -342
  34. data/test/integration/static_files_as_asset_sources_test.rb +0 -75
  35. data/test/support/assertions.rb +0 -26
  36. data/test/support/fixture_config.rb +0 -20
  37. data/test/support/static_file_config.rb +0 -23
  38. data/test/support/test_case.rb +0 -175
  39. data/test/unit/asset_bundle_test.rb +0 -57
  40. data/test/unit/asset_file_drop_test.rb +0 -66
  41. data/test/unit/asset_file_registry_test.rb +0 -237
  42. data/test/unit/asset_tag_markup_test.rb +0 -46
  43. data/test/unit/bundle_file_properties_test.rb +0 -108
  44. data/test/unit/bundle_file_writing_test.rb +0 -155
  45. data/test/unit/development_file_properties_test.rb +0 -97
  46. data/test/unit/development_file_writing_test.rb +0 -50
  47. data/test/unit/environment_test.rb +0 -29
  48. data/test/unit/files_test.rb +0 -61
  49. data/test/unit/hashes_test.rb +0 -43
  50. data/test/unit/jekyll_static_file_api_test.rb +0 -172
  51. data/test/unit/mini_bundle_block_test.rb +0 -125
  52. data/test/unit/mini_stamp_tag_test.rb +0 -64
  53. data/test/unit/stamp_file_properties_test.rb +0 -98
  54. data/test/unit/stamp_file_writing_test.rb +0 -130
  55. data/test/unit/variable_template_test.rb +0 -121
@@ -1,121 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../support/test_case'
4
- require 'jekyll/minibundle/variable_template'
5
-
6
- module Jekyll::Minibundle::Test
7
- class VariableTemplateTest < TestCase
8
- VARIABLES = {
9
- 'var1' => 41,
10
- 'var2' => '42',
11
- 'var3' => 43
12
- }.freeze
13
-
14
- def test_render_single_variable
15
- assert_equal('41', render('{{var1}}', VARIABLES))
16
- assert_equal('abc 41 zz', render('abc {{var1}} zz', VARIABLES))
17
- end
18
-
19
- def test_render_many_variables
20
- assert_equal('414243', render('{{var1}}{{var2}}{{var3}}', VARIABLES))
21
- assert_equal('abc 41 42efg43hij', render('abc {{var1}} {{var2}}efg{{var3}}hij', VARIABLES))
22
- end
23
-
24
- def test_render_single_variable_many_times
25
- assert_equal('4141', render('{{var1}}{{var1}}', VARIABLES))
26
- end
27
-
28
- def test_strip_whitespace_around_variable_name
29
- assert_equal('41 42', render("{{ var1\t}} {{ \n var2\n}}", VARIABLES))
30
- end
31
-
32
- def test_render_empty_string_for_nil_variable
33
- assert_equal('', render('{{nosuch}}', VARIABLES))
34
- end
35
-
36
- def test_variable_name_can_be_anything_but_closing_tag
37
- assert_equal('42', render('{{ foo {{ 3… } bar }}', 'foo {{ 3… } bar' => 42))
38
- end
39
-
40
- def test_return_template_without_variables_as_is
41
- assert_equal('', render('', VARIABLES))
42
- assert_equal('abc', render('abc', VARIABLES))
43
- end
44
-
45
- def test_raise_error_if_nil_template
46
- err = assert_raises(ArgumentError) { VariableTemplate.compile(nil) }
47
- assert_equal('Nil template', err.to_s)
48
- end
49
-
50
- def test_raise_error_if_unclosed_open_tag
51
- err = assert_raises(VariableTemplate::SyntaxError) { VariableTemplate.compile('beg{{var}end') }
52
- expected = <<~MESSAGE
53
- Missing closing tag ("}}") for variable opening tag ("{{") at position 5 in template (position highlighted with "@"):
54
- beg{{@var}end
55
- MESSAGE
56
- assert_equal(expected, err.to_s)
57
- end
58
-
59
- def test_application_to_same_compiled_template_many_times
60
- template = VariableTemplate.compile('the answer is {{var}}, obviously')
61
- assert_equal('the answer is 42, obviously', template.render('var' => 42))
62
- assert_equal('the answer is 21, obviously', template.render('var' => 21))
63
- end
64
-
65
- def test_nonascii_template_and_variables
66
- variables = {
67
- '…first' => 'after first…',
68
- 'yötön yö' => 'yö'
69
- }
70
- actual = render('begin… {{ …first }} middle {{yötön yö}} …end', variables)
71
- expected = 'begin… after first… middle yö …end'
72
- assert_equal(expected, actual)
73
- end
74
-
75
- def test_escapes_with_backslash
76
- assert_equal('\\', render('\\\\', VARIABLES))
77
- assert_equal('{', render('\\{', VARIABLES))
78
- assert_equal('}', render('\\}', VARIABLES))
79
- assert_equal('\\a', render('\\a', VARIABLES))
80
- assert_equal('{{var1}}', render('\{{var1}}', VARIABLES))
81
- assert_equal('{{var1}}', render('{\{var1}}', VARIABLES))
82
- assert_equal('{{var1}}', render('\{{var1\}}', VARIABLES))
83
- assert_equal('{{var1}}', render('\{{var1}\}', VARIABLES))
84
- assert_equal('bar', render('{{foo\\}}', 'foo\\' => 'bar'))
85
- end
86
-
87
- def test_generator_escapes_text_token
88
- assert_equal('#{}', render('#{}', {})) # rubocop:disable Lint/InterpolationCheck
89
- assert_equal('"hey"', render('"hey"', {}))
90
- assert_equal("'hey'", render("'hey'", {}))
91
- end
92
-
93
- def test_generator_escapes_variable_token
94
- assert_equal('42', render('{{ \\ }}', '\\' => 42))
95
- assert_equal('42', render("{{ ' }}", "'" => 42))
96
- assert_equal('42', render('{{ " }}', '"' => 42))
97
- assert_equal('42', render('{{ #{} }}', '#{}' => 42)) # rubocop:disable Lint/InterpolationCheck
98
- assert_equal("beg'42'end", render("beg'{{ 'var' }}'end", "'var'" => 42))
99
- end
100
-
101
- def test_complex_template
102
- variables = {
103
- 'integer' => 42,
104
- 'string' => 'a rather long string',
105
- 'sneaky… \\' => 'clever…'
106
- }
107
-
108
- template = 'begin "ä\\{\\ö\\\\{{integer}}middle \{{trap}} and {{ string }} also {{ sneaky… \\}} end'
109
- expected = 'begin "ä{\\ö\\42middle {{trap}} and a rather long string also clever… end'
110
- actual = render(template, variables)
111
-
112
- assert_equal(expected, actual)
113
- end
114
-
115
- private
116
-
117
- def render(template, values)
118
- VariableTemplate.compile(template).render(values)
119
- end
120
- end
121
- end