eac_tools 0.37.1 → 0.38.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +63 -47
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/aranha-parsers/Gemfile +8 -0
  5. data/sub/aranha-parsers/aranha-parsers.gemspec +25 -0
  6. data/sub/aranha-parsers/lib/aranha/parsers/base.rb +81 -0
  7. data/sub/aranha-parsers/lib/aranha/parsers/html/base.rb +47 -0
  8. data/sub/aranha-parsers/lib/aranha/parsers/html/item.rb +24 -0
  9. data/sub/aranha-parsers/lib/aranha/parsers/html/item_list.rb +33 -0
  10. data/sub/aranha-parsers/lib/aranha/parsers/html/node/base.rb +34 -0
  11. data/sub/aranha-parsers/lib/aranha/parsers/html/node/default/numeric_support.rb +70 -0
  12. data/sub/aranha-parsers/lib/aranha/parsers/html/node/default/string_support.rb +77 -0
  13. data/sub/aranha-parsers/lib/aranha/parsers/html/node/default.rb +34 -0
  14. data/sub/aranha-parsers/lib/aranha/parsers/html/node.rb +13 -0
  15. data/sub/aranha-parsers/lib/aranha/parsers/html.rb +11 -0
  16. data/sub/aranha-parsers/lib/aranha/parsers/invalid_state_exception.rb +8 -0
  17. data/sub/aranha-parsers/lib/aranha/parsers/json/base.rb +20 -0
  18. data/sub/aranha-parsers/lib/aranha/parsers/json.rb +11 -0
  19. data/sub/aranha-parsers/lib/aranha/parsers/patches/ofx_parser.rb +38 -0
  20. data/sub/aranha-parsers/lib/aranha/parsers/patches.rb +11 -0
  21. data/sub/aranha-parsers/lib/aranha/parsers/rspec/setup.rb +15 -0
  22. data/sub/aranha-parsers/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures.rb +74 -0
  23. data/sub/aranha-parsers/lib/aranha/parsers/rspec/source_target_fixtures_controller.rb +39 -0
  24. data/sub/aranha-parsers/lib/aranha/parsers/rspec.rb +11 -0
  25. data/sub/aranha-parsers/lib/aranha/parsers/source_address/fetch_content_error.rb +10 -0
  26. data/sub/aranha-parsers/lib/aranha/parsers/source_address/file.rb +31 -0
  27. data/sub/aranha-parsers/lib/aranha/parsers/source_address/hash_http_base.rb +92 -0
  28. data/sub/aranha-parsers/lib/aranha/parsers/source_address/hash_http_get.rb +13 -0
  29. data/sub/aranha-parsers/lib/aranha/parsers/source_address/hash_http_post.rb +13 -0
  30. data/sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb +59 -0
  31. data/sub/aranha-parsers/lib/aranha/parsers/source_address.rb +57 -0
  32. data/sub/aranha-parsers/lib/aranha/parsers/source_target_fixtures/source_target_file.rb +19 -0
  33. data/sub/aranha-parsers/lib/aranha/parsers/source_target_fixtures.rb +78 -0
  34. data/sub/aranha-parsers/lib/aranha/parsers/version.rb +7 -0
  35. data/sub/aranha-parsers/lib/aranha/parsers.rb +9 -0
  36. data/sub/aranha-parsers/spec/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures_spec.rb +9 -0
  37. data/sub/aranha-parsers/spec/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures_spec_files/fixture1.source.txt +1 -0
  38. data/sub/aranha-parsers/spec/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures_spec_files/fixture1.target.yaml +3 -0
  39. data/sub/aranha-parsers/spec/lib/aranha/parsers/source_address/http_get_spec.rb +21 -0
  40. data/sub/aranha-parsers/spec/lib/aranha/parsers/source_address_spec.rb +74 -0
  41. data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec.rb +27 -0
  42. data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub1.source.txt +1 -0
  43. data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub1.target.html +1 -0
  44. data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub2.source.html +1 -0
  45. data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub3.target.yaml +1 -0
  46. data/sub/aranha-parsers/spec/lib/rubocop_check_spec.rb +3 -0
  47. data/sub/aranha-parsers/spec/spec_helper.rb +4 -0
  48. data/sub/avm/avm.gemspec +3 -1
  49. data/sub/avm/lib/avm/executables.rb +1 -1
  50. data/sub/avm/lib/avm/file_formats/base.rb +61 -0
  51. data/sub/{avm-files/lib/avm/files/formatter.rb → avm/lib/avm/file_formats/search_formatter.rb} +23 -16
  52. data/sub/avm/lib/avm/file_formats/utf8_assert.rb +72 -0
  53. data/sub/avm/lib/avm/file_formats.rb +9 -0
  54. data/sub/avm/lib/avm/registry/file_formats.rb +10 -0
  55. data/sub/avm/lib/avm/registry.rb +2 -2
  56. data/sub/avm/lib/avm/rspec/setup.rb +2 -1
  57. data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +32 -0
  58. data/sub/avm/lib/avm/version.rb +1 -1
  59. data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +2 -2
  60. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base.rb +32 -0
  61. data/sub/{avm-files/lib/avm/files/formatter/formats.rb → avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats.rb} +3 -5
  62. data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb +1 -1
  63. data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec.rb +7 -0
  64. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec_files}/plain_text.source +0 -0
  65. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec_files}/plain_text.target +0 -0
  66. data/sub/avm-eac_latex_base0/avm-eac_latex_base0.gemspec +3 -3
  67. data/sub/avm-eac_latex_base0/lib/avm/eac_latex_base0/executables.rb +22 -0
  68. data/sub/avm-eac_latex_base0/lib/avm/eac_latex_base0/sources/build.rb +3 -1
  69. data/sub/avm-eac_latex_base0/lib/avm/eac_latex_base0/version.rb +1 -1
  70. data/sub/avm-eac_php_base0/avm-eac_php_base0.gemspec +2 -1
  71. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/executables.rb +22 -0
  72. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/file_formats/base.rb +20 -0
  73. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/file_formats.rb +11 -0
  74. data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/version.rb +1 -1
  75. data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec.rb +7 -0
  76. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files}/php_code.php.source +0 -0
  77. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files}/php_code.php.target +0 -0
  78. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files}/php_code2.php.source +0 -0
  79. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files}/php_code2.php.target +0 -0
  80. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files}/php_html_code.php.source +0 -0
  81. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files}/php_html_code.php.target +0 -0
  82. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files}/php_iso88591_code.php.source +0 -0
  83. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files}/php_iso88591_code.php.target +0 -0
  84. data/sub/avm-eac_python_base0/Gemfile +8 -0
  85. data/sub/avm-eac_python_base0/avm-eac_python_base0.gemspec +19 -0
  86. data/sub/avm-eac_python_base0/lib/avm/eac_python_base0/executables.rb +22 -0
  87. data/sub/avm-eac_python_base0/lib/avm/eac_python_base0/file_formats/base.rb +20 -0
  88. data/sub/avm-eac_python_base0/lib/avm/eac_python_base0/file_formats.rb +11 -0
  89. data/sub/avm-eac_python_base0/lib/avm/eac_python_base0/version.rb +7 -0
  90. data/sub/avm-eac_python_base0/lib/avm/eac_python_base0.rb +9 -0
  91. data/sub/avm-eac_python_base0/spec/lib/avm/eac_python_base0/file_formats/base_spec.rb +7 -0
  92. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_python_base0/spec/lib/avm/eac_python_base0/file_formats/base_spec_files}/python_code.source +0 -0
  93. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_python_base0/spec/lib/avm/eac_python_base0/file_formats/base_spec_files}/python_code.target +0 -0
  94. data/sub/avm-eac_python_base0/spec/rubocop_spec.rb +3 -0
  95. data/sub/avm-eac_python_base0/spec/spec_helper.rb +4 -0
  96. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +3 -3
  97. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats/base.rb +20 -0
  98. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/file_formats.rb +11 -0
  99. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
  100. data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec.rb +7 -0
  101. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files}/Gemfile.source +0 -0
  102. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files}/Gemfile.target +0 -0
  103. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files}/ruby_code.rb.source +0 -0
  104. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec_files}/ruby_code.rb.target +0 -0
  105. data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +3 -3
  106. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/executables.rb +26 -0
  107. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css/file_apply.rb +48 -0
  108. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css.rb +22 -0
  109. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/html.rb +43 -0
  110. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/javascript.rb +22 -0
  111. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/json.rb +25 -0
  112. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +24 -0
  113. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/xml.rb +26 -0
  114. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats.rb +11 -0
  115. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +1 -1
  116. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec.rb +7 -0
  117. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.source.css +11 -0
  118. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.target.css +11 -0
  119. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec.rb +7 -0
  120. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files}/html_code.html.erb.source +0 -0
  121. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files}/html_code.html.erb.target +0 -0
  122. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files}/html_code.html.source +0 -0
  123. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec_files}/html_code.html.target +0 -0
  124. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec.rb +7 -0
  125. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files}/javascript_code1.js.source +0 -0
  126. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec_files}/javascript_code1.js.target +0 -0
  127. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec.rb +7 -0
  128. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files}/json_code.json.source +0 -0
  129. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec_files}/json_code.json.target +0 -0
  130. data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec.rb +7 -0
  131. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files}/xml_code.xml.source +0 -0
  132. data/sub/{avm-tools/spec/lib/avm/tools/runner/files/format_spec_files → avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec_files}/xml_code.xml.target +0 -0
  133. data/sub/avm-files/avm-files.gemspec +2 -2
  134. data/sub/avm-files/lib/avm/files/version.rb +1 -1
  135. data/sub/avm-tools/avm-tools.gemspec +4 -4
  136. data/sub/avm-tools/lib/avm/tools/runner/files/format.rb +5 -5
  137. data/sub/avm-tools/lib/avm/tools/runner/git/auto_commit.rb +4 -2
  138. data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
  139. data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_bool.rb +12 -0
  140. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  141. metadata +138 -63
  142. data/sub/avm-files/lib/avm/files/formatter/formats/base.rb +0 -62
  143. data/sub/avm-files/lib/avm/files/formatter/formats/generic_plain.rb +0 -34
  144. data/sub/avm-files/lib/avm/files/formatter/formats/html.rb +0 -45
  145. data/sub/avm-files/lib/avm/files/formatter/formats/javascript.rb +0 -24
  146. data/sub/avm-files/lib/avm/files/formatter/formats/json.rb +0 -27
  147. data/sub/avm-files/lib/avm/files/formatter/formats/php.rb +0 -22
  148. data/sub/avm-files/lib/avm/files/formatter/formats/python.rb +0 -22
  149. data/sub/avm-files/lib/avm/files/formatter/formats/ruby.rb +0 -22
  150. data/sub/avm-files/lib/avm/files/formatter/formats/xml.rb +0 -28
  151. data/sub/avm-files/lib/avm/files/formatter/utf8_assert.rb +0 -74
  152. data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec.rb +0 -56
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/files/formatter/formats/generic_plain'
4
- require 'htmlbeautifier'
5
-
6
- module Avm
7
- module Files
8
- class Formatter
9
- module Formats
10
- class Html < ::Avm::Files::Formatter::Formats::GenericPlain
11
- VALID_BASENAMES = %w[*.html *.html.erb].freeze
12
- VALID_TYPES = ['html'].freeze
13
-
14
- def file_apply(path)
15
- input = ::File.read(path)
16
- temppath = tempfile_path
17
- ::File.open(temppath, 'w') do |output|
18
- beautify path, input, output
19
- end
20
- ::FileUtils.mv(temppath, path)
21
- super(path)
22
- end
23
-
24
- private
25
-
26
- def beautify(name, input, output)
27
- output.puts ::HtmlBeautifier.beautify(input, htmlbeautify_options)
28
- rescue StandardError => e
29
- raise "Error parsing #{name}: #{e}"
30
- end
31
-
32
- def htmlbeautify_options
33
- @htmlbeautify_options ||= { indent: ' ' }
34
- end
35
-
36
- def tempfile_path
37
- tempfile = ::Tempfile.new
38
- tempfile.close
39
- tempfile.path
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/executables'
4
- require 'avm/files/formatter/formats/generic_plain'
5
-
6
- module Avm
7
- module Files
8
- class Formatter
9
- module Formats
10
- class Javascript < ::Avm::Files::Formatter::Formats::GenericPlain
11
- VALID_BASENAMES = %w[*.js].freeze
12
- VALID_TYPES = [].freeze
13
-
14
- def internal_apply(files)
15
- ::Avm::Executables.js_beautify.command.append(
16
- ['--indent-size=2', '--end-with-newline', '--replace', *files]
17
- ).system!
18
- super(files)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/files/formatter/formats/generic_plain'
4
-
5
- module Avm
6
- module Files
7
- class Formatter
8
- module Formats
9
- class Json < ::Avm::Files::Formatter::Formats::GenericPlain
10
- VALID_BASENAMES = %w[*.json].freeze
11
- VALID_TYPES = [].freeze
12
-
13
- def file_apply(file)
14
- ::File.write(file, ::JSON.pretty_generate(::JSON.parse(::File.read(file))))
15
- end
16
-
17
- def json_file?(file)
18
- ::JSON.parse(::File.read(file))
19
- true
20
- rescue JSON::ParserError
21
- false
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/executables'
4
- require 'avm/files/formatter/formats/generic_plain'
5
-
6
- module Avm
7
- module Files
8
- class Formatter
9
- module Formats
10
- class Php < ::Avm::Files::Formatter::Formats::GenericPlain
11
- VALID_BASENAMES = %w[*.php].freeze
12
- VALID_TYPES = ['x-php'].freeze
13
-
14
- def file_apply(file)
15
- ::Avm::Executables.php_cs_fixer.command.append(['fix', file]).system!
16
- super(file)
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/executables'
4
- require 'avm/files/formatter/formats/generic_plain'
5
-
6
- module Avm
7
- module Files
8
- class Formatter
9
- module Formats
10
- class Python < ::Avm::Files::Formatter::Formats::GenericPlain
11
- VALID_BASENAMES = %w[*.py].freeze
12
- VALID_TYPES = ['x-python'].freeze
13
-
14
- def internal_apply(files)
15
- ::Avm::Executables.yapf.command.append(['--in-place', *files]).system!
16
- super(files)
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/files/formatter/formats/generic_plain'
4
- require 'avm/eac_ruby_base1/rubocop'
5
-
6
- module Avm
7
- module Files
8
- class Formatter
9
- module Formats
10
- class Ruby < ::Avm::Files::Formatter::Formats::GenericPlain
11
- VALID_BASENAMES = %w[*.gemspec *.rake *.rb Gemfile Rakefile].freeze
12
- VALID_TYPES = ['x-ruby'].freeze
13
-
14
- def internal_apply(files)
15
- ::Avm::EacRubyBase1::Rubocop.new('.', ['-a', '--ignore-parent-exclusion'] + files).run
16
- super(files)
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/executables'
4
- require 'avm/files/formatter/formats/generic_plain'
5
-
6
- module Avm
7
- module Files
8
- class Formatter
9
- module Formats
10
- class Xml < ::Avm::Files::Formatter::Formats::GenericPlain
11
- VALID_BASENAMES = %w[*.xml].freeze
12
- VALID_TYPES = ['xml'].freeze
13
-
14
- def internal_apply(files)
15
- format_command(files).system!
16
- super(files)
17
- end
18
-
19
- def format_command(files)
20
- ::Avm::Executables.tidy.command.append(
21
- %w[-xml -modify --indent auto --indent-spaces 2 --wrap 100] + files
22
- )
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,74 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_fs/file_info'
4
-
5
- module Avm
6
- module Files
7
- class Formatter
8
- class Utf8Assert
9
- UTF8_CHARSET = 'utf-8'
10
- UTF8_CHARSETS = [UTF8_CHARSET, 'us-ascii'].freeze
11
-
12
- class << self
13
- def assert_files(files)
14
- asserters = files.map { |file| new(file) }
15
- begin
16
- asserters.each(&:assert)
17
- yield
18
- ensure
19
- asserters.each(&:revert)
20
- end
21
- end
22
- end
23
-
24
- enable_simple_cache
25
- common_constructor :path
26
-
27
- def assert
28
- return if original_utf8?
29
-
30
- convert_self(original_charset, UTF8_CHARSET)
31
- end
32
-
33
- def revert
34
- return if original_utf8?
35
-
36
- convert_self(UTF8_CHARSET, original_charset)
37
- end
38
-
39
- private
40
-
41
- def original_info_uncached
42
- ::EacFs::FileInfo.new(path)
43
- end
44
-
45
- def original_charset_uncached
46
- return original_info.content_type.charset if original_info.content_type.charset.present?
47
-
48
- raise 'No charset found'
49
- rescue StandardError => e
50
- raise "Unable to determine the charset of #{path} (#{e.message})"
51
- end
52
-
53
- def original_utf8?
54
- UTF8_CHARSETS.include?(original_charset)
55
- end
56
-
57
- def convert_file(from_path, from_charset, to_path, to_charset)
58
- File.open(from_path, "r:#{from_charset}") do |input|
59
- File.open(to_path, "w:#{to_charset}") do |output|
60
- output.write(input.read)
61
- end
62
- end
63
- end
64
-
65
- def convert_self(from_charset, to_charset)
66
- temp = ::Tempfile.new
67
- temp.close
68
- convert_file(path, from_charset, temp.path, to_charset)
69
- ::FileUtils.mv(temp.path, path)
70
- end
71
- end
72
- end
73
- end
74
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/tools/runner'
4
- require 'aranha/parsers/source_target_fixtures'
5
- require 'eac_ruby_utils/fs/temp'
6
- require 'fileutils'
7
-
8
- ::RSpec.describe ::Avm::Tools::Runner::Files::Format do
9
- before(:all) do # rubocop:disable RSpec/BeforeAfterAll
10
- source_files = copy_to_target_dir(source_stf.source_files) { |b| b.gsub(/\.source\Z/, '') }
11
- ::Avm::Tools::Runner.run(argv: ['files', 'format', '--apply',
12
- source_target_fixtures.fixtures_directory])
13
- copy_to_target_dir(source_stf.target_files)
14
- source_files.each { |source_file| ::FileUtils.mv(source_file, source_file + '.source') }
15
- end
16
-
17
- after(:all) do # rubocop:disable RSpec/BeforeAfterAll
18
- target_dir.remove
19
- end
20
-
21
- include_examples 'source_target_fixtures', __FILE__
22
-
23
- def source_stf
24
- @source_stf ||= ::Aranha::Parsers::SourceTargetFixtures.new(
25
- ::File.join(__dir__, 'format_spec_files')
26
- )
27
- end
28
-
29
- def target_dir
30
- @target_dir ||= ::EacRubyUtils::Fs::Temp.directory
31
- end
32
-
33
- def fixtures_dir
34
- target_dir.to_path
35
- end
36
-
37
- def source_data(source_file)
38
- ::File.read(source_file)
39
- end
40
-
41
- def target_data(target_file)
42
- ::File.read(target_file)
43
- end
44
-
45
- private
46
-
47
- def copy_to_target_dir(files, &block)
48
- files.map do |file|
49
- target_basename = ::File.basename(file)
50
- target_basename = block.call(target_basename) if block
51
- target_path = ::File.join(source_target_fixtures.fixtures_directory, target_basename)
52
- ::FileUtils.cp(file, target_path)
53
- target_path
54
- end
55
- end
56
- end