eac_tools 0.37.2 → 0.38.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +55 -48
- data/lib/eac_tools/version.rb +1 -1
- data/sub/aranha-parsers/Gemfile +8 -0
- data/sub/aranha-parsers/aranha-parsers.gemspec +25 -0
- data/sub/aranha-parsers/lib/aranha/parsers/base.rb +81 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html/base.rb +47 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html/item.rb +24 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html/item_list.rb +33 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html/node/base.rb +34 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html/node/default/numeric_support.rb +70 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html/node/default/string_support.rb +77 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html/node/default.rb +34 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html/node.rb +13 -0
- data/sub/aranha-parsers/lib/aranha/parsers/html.rb +11 -0
- data/sub/aranha-parsers/lib/aranha/parsers/invalid_state_exception.rb +8 -0
- data/sub/aranha-parsers/lib/aranha/parsers/json/base.rb +20 -0
- data/sub/aranha-parsers/lib/aranha/parsers/json.rb +11 -0
- data/sub/aranha-parsers/lib/aranha/parsers/patches/ofx_parser.rb +38 -0
- data/sub/aranha-parsers/lib/aranha/parsers/patches.rb +11 -0
- data/sub/aranha-parsers/lib/aranha/parsers/rspec/setup.rb +15 -0
- data/sub/aranha-parsers/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures.rb +74 -0
- data/sub/aranha-parsers/lib/aranha/parsers/rspec/source_target_fixtures_controller.rb +39 -0
- data/sub/aranha-parsers/lib/aranha/parsers/rspec.rb +11 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_address/fetch_content_error.rb +10 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_address/file.rb +31 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_address/hash_http_base.rb +92 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_address/hash_http_get.rb +13 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_address/hash_http_post.rb +13 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_address/http_get.rb +59 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_address.rb +57 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_target_fixtures/source_target_file.rb +19 -0
- data/sub/aranha-parsers/lib/aranha/parsers/source_target_fixtures.rb +78 -0
- data/sub/aranha-parsers/lib/aranha/parsers/version.rb +7 -0
- data/sub/aranha-parsers/lib/aranha/parsers.rb +9 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures_spec.rb +9 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures_spec_files/fixture1.source.txt +1 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures_spec_files/fixture1.target.yaml +3 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/source_address/http_get_spec.rb +21 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/source_address_spec.rb +74 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec.rb +27 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub1.source.txt +1 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub1.target.html +1 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub2.source.html +1 -0
- data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub3.target.yaml +1 -0
- data/sub/aranha-parsers/spec/lib/rubocop_check_spec.rb +3 -0
- data/sub/aranha-parsers/spec/spec_helper.rb +4 -0
- data/sub/avm/avm.gemspec +2 -0
- data/sub/avm/lib/avm/executables.rb +1 -1
- data/sub/avm/lib/avm/file_formats/base.rb +2 -1
- data/sub/{avm-files/lib/avm/files/formatter.rb → avm/lib/avm/file_formats/search_formatter.rb} +17 -11
- data/sub/avm/lib/avm/file_formats/utf8_assert.rb +72 -0
- data/sub/avm/lib/avm/rspec/setup.rb +2 -1
- data/sub/avm/lib/avm/rspec/shared_examples/avm_file_formats_with_fixtures.rb +32 -0
- data/sub/avm/lib/avm/version.rb +1 -1
- data/sub/avm-eac_generic_base0/avm-eac_generic_base0.gemspec +1 -1
- data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/file_formats/base.rb +2 -2
- data/sub/avm-eac_generic_base0/lib/avm/eac_generic_base0/version.rb +1 -1
- data/sub/avm-eac_generic_base0/spec/lib/avm/eac_generic_base0/file_formats/base_spec.rb +7 -0
- 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
- 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
- data/sub/avm-eac_latex_base0/avm-eac_latex_base0.gemspec +3 -3
- data/sub/avm-eac_latex_base0/lib/avm/eac_latex_base0/executables.rb +22 -0
- data/sub/avm-eac_latex_base0/lib/avm/eac_latex_base0/sources/build.rb +3 -1
- data/sub/avm-eac_latex_base0/lib/avm/eac_latex_base0/version.rb +1 -1
- data/sub/avm-eac_php_base0/avm-eac_php_base0.gemspec +2 -2
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/executables.rb +22 -0
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/file_formats/base.rb +2 -2
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/version.rb +1 -1
- data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec.rb +7 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- data/sub/avm-eac_python_base0/avm-eac_python_base0.gemspec +2 -2
- data/sub/avm-eac_python_base0/lib/avm/eac_python_base0/executables.rb +22 -0
- data/sub/avm-eac_python_base0/lib/avm/eac_python_base0/file_formats/base.rb +2 -2
- data/sub/avm-eac_python_base0/lib/avm/eac_python_base0/version.rb +1 -1
- data/sub/avm-eac_python_base0/spec/lib/avm/eac_python_base0/file_formats/base_spec.rb +7 -0
- 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
- 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
- data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +3 -3
- data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
- data/sub/avm-eac_ruby_base1/spec/lib/avm/eac_ruby_base1/file_formats/base_spec.rb +7 -0
- 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
- 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
- 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
- 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
- data/sub/avm-eac_webapp_base0/avm-eac_webapp_base0.gemspec +3 -3
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/executables.rb +26 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css/file_apply.rb +48 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/css.rb +22 -0
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/javascript.rb +2 -2
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/provider.rb +2 -1
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/file_formats/xml.rb +2 -2
- data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +1 -1
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec.rb +7 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.source.css +11 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/css_spec_files/css1.target.css +11 -0
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/html_spec.rb +7 -0
- 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
- 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
- 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
- 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
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/javascript_spec.rb +7 -0
- 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
- 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
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/json_spec.rb +7 -0
- 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
- 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
- data/sub/avm-eac_webapp_base0/spec/lib/avm/eac_webapp_base0/file_formats/xml_spec.rb +7 -0
- 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
- 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
- data/sub/avm-files/avm-files.gemspec +2 -2
- data/sub/avm-files/lib/avm/files/version.rb +1 -1
- data/sub/avm-tools/avm-tools.gemspec +4 -7
- data/sub/avm-tools/lib/avm/tools/runner/files/format.rb +5 -5
- data/sub/avm-tools/lib/avm/tools/runner/git/auto_commit.rb +4 -2
- data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/patches/object/to_bool.rb +12 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- metadata +113 -51
- data/sub/avm-files/lib/avm/files/formatter/utf8_assert.rb +0 -74
- data/sub/avm-tools/spec/lib/avm/tools/runner/files/format_spec.rb +0 -56
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/source_address'
|
4
|
+
|
5
|
+
RSpec.describe ::Aranha::Parsers::SourceAddress do
|
6
|
+
describe '#detect_sub' do
|
7
|
+
{
|
8
|
+
{ method: :post, url: 'http://postdata.net', params: { key1: :value1 } } => {
|
9
|
+
klass: ::Aranha::Parsers::SourceAddress::HashHttpBase,
|
10
|
+
url: 'http://postdata.net',
|
11
|
+
serialization: <<~SERIALIZATION
|
12
|
+
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
13
|
+
method: :post
|
14
|
+
url: http://postdata.net
|
15
|
+
params: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
16
|
+
key1: :value1
|
17
|
+
SERIALIZATION
|
18
|
+
},
|
19
|
+
{ method: :get, url: 'http://getdata.net', params: { headers: %w[abc] } } => {
|
20
|
+
klass: ::Aranha::Parsers::SourceAddress::HashHttpBase,
|
21
|
+
url: 'http://getdata.net',
|
22
|
+
serialization: <<~SERIALIZATION
|
23
|
+
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
24
|
+
method: :get
|
25
|
+
url: http://getdata.net
|
26
|
+
params: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
|
27
|
+
headers:
|
28
|
+
- abc
|
29
|
+
SERIALIZATION
|
30
|
+
},
|
31
|
+
'http://postdata.net' => {
|
32
|
+
klass: ::Aranha::Parsers::SourceAddress::HttpGet,
|
33
|
+
url: 'http://postdata.net',
|
34
|
+
serialization: 'http://postdata.net'
|
35
|
+
},
|
36
|
+
'https://getdata.com.br' => {
|
37
|
+
klass: ::Aranha::Parsers::SourceAddress::HttpGet,
|
38
|
+
url: 'https://getdata.com.br',
|
39
|
+
serialization: 'https://getdata.com.br'
|
40
|
+
},
|
41
|
+
'file:///postdata.net' => {
|
42
|
+
klass: ::Aranha::Parsers::SourceAddress::File,
|
43
|
+
url: 'file:///postdata.net',
|
44
|
+
serialization: 'file:///postdata.net'
|
45
|
+
},
|
46
|
+
'/postdata.net' => {
|
47
|
+
klass: ::Aranha::Parsers::SourceAddress::File,
|
48
|
+
url: 'file:///postdata.net',
|
49
|
+
serialization: 'file:///postdata.net'
|
50
|
+
}
|
51
|
+
}.each do |source, expected|
|
52
|
+
context "when source is #{source}" do
|
53
|
+
let(:sub) { described_class.detect_sub(source) }
|
54
|
+
let(:deserialized) { described_class.deserialize(sub.serialize).sub }
|
55
|
+
|
56
|
+
it "sub is a #{expected.fetch(:klass)}" do
|
57
|
+
expect(sub).to be_a(expected.fetch(:klass))
|
58
|
+
end
|
59
|
+
|
60
|
+
it "sub #{expected.fetch(:klass)} return properly URL" do
|
61
|
+
expect(sub.url).to eq(expected.fetch(:url))
|
62
|
+
end
|
63
|
+
|
64
|
+
it "sub #{expected.fetch(:klass)} serialize properly" do
|
65
|
+
expect(sub.serialize).to eq(expected.fetch(:serialization))
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'deserialize properly' do
|
69
|
+
expect(deserialized).to eq(sub)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/source_target_fixtures'
|
4
|
+
|
5
|
+
RSpec.describe ::Aranha::Parsers::SourceTargetFixtures do
|
6
|
+
let(:fixtures_dir) { ::File.join(__dir__, 'source_target_fixtures_spec_files') }
|
7
|
+
let(:instance) { described_class.new(fixtures_dir) }
|
8
|
+
|
9
|
+
describe '#source_target_files' do
|
10
|
+
it { expect(instance.source_target_files.count).to eq(3) }
|
11
|
+
|
12
|
+
(1..3).each do |index|
|
13
|
+
basename = "stub#{index}"
|
14
|
+
let(basename) { instance.source_target_files.find { |stf| stf.basename == basename } }
|
15
|
+
|
16
|
+
it { expect(send(basename)).to be_present }
|
17
|
+
it { expect(send(basename).basename).to eq(basename) }
|
18
|
+
end
|
19
|
+
|
20
|
+
it { expect(stub1.source).to eq(::File.join(fixtures_dir, 'stub1.source.txt')) }
|
21
|
+
it { expect(stub1.target).to eq(::File.join(fixtures_dir, 'stub1.target.html')) }
|
22
|
+
it { expect(stub2.source).to eq(::File.join(fixtures_dir, 'stub2.source.html')) }
|
23
|
+
it { expect(stub2.target).to eq(nil) }
|
24
|
+
it { expect(stub3.source).to eq(nil) }
|
25
|
+
it { expect(stub3.target).to eq(::File.join(fixtures_dir, 'stub3.target.yaml')) }
|
26
|
+
end
|
27
|
+
end
|
data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub1.source.txt
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
|
data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub1.target.html
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
|
data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub2.source.html
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
|
data/sub/aranha-parsers/spec/lib/aranha/parsers/source_target_fixtures_spec_files/stub3.target.yaml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
|
data/sub/avm/avm.gemspec
CHANGED
@@ -12,9 +12,11 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
14
14
|
|
15
|
+
s.add_dependency 'aranha-parsers', '~> 0.14', '>= 0.14.4'
|
15
16
|
s.add_dependency 'eac_cli', '~> 0.28'
|
16
17
|
s.add_dependency 'eac_config', '~> 0.11', '>= 0.11.1'
|
17
18
|
s.add_dependency 'eac_docker', '~> 0.5'
|
19
|
+
s.add_dependency 'eac_fs', '~> 0.12', '>= 0.12.3'
|
18
20
|
s.add_dependency 'eac_git', '~> 0.13'
|
19
21
|
s.add_dependency 'eac_ruby_utils', '~> 0.105'
|
20
22
|
s.add_dependency 'eac_templates', '~> 0.3', '>= 0.3.2'
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'avm/file_formats/utf8_assert'
|
3
4
|
require 'eac_fs/file_info'
|
4
5
|
require 'ostruct'
|
5
6
|
|
@@ -10,7 +11,7 @@ module Avm
|
|
10
11
|
|
11
12
|
def apply(files)
|
12
13
|
old_content = Hash[files.map { |f| [f, File.read(f)] }]
|
13
|
-
::Avm::
|
14
|
+
::Avm::FileFormats::Utf8Assert.assert_files(files) { internal_apply(files) }
|
14
15
|
files.map { |f| build_file_result(f, old_content[f]) }
|
15
16
|
end
|
16
17
|
|
data/sub/{avm-files/lib/avm/files/formatter.rb → avm/lib/avm/file_formats/search_formatter.rb}
RENAMED
@@ -5,8 +5,8 @@ require 'eac_ruby_utils/core_ext'
|
|
5
5
|
require 'eac_fs/traversable'
|
6
6
|
|
7
7
|
module Avm
|
8
|
-
module
|
9
|
-
class
|
8
|
+
module FileFormats
|
9
|
+
class SearchFormatter
|
10
10
|
include ::EacFs::Traversable
|
11
11
|
require_sub __FILE__
|
12
12
|
enable_simple_cache
|
@@ -27,9 +27,9 @@ module Avm
|
|
27
27
|
private
|
28
28
|
|
29
29
|
def apply
|
30
|
-
infom "Applying #{@formats_files.count} format(s)... "
|
30
|
+
speak(:infom, "Applying #{@formats_files.count} format(s)... ")
|
31
31
|
@formats_files.each do |format, files|
|
32
|
-
infom "Applying format #{format.name} (Files matched: #{files.count})..."
|
32
|
+
speak(:infom, "Applying format #{format.name} (Files matched: #{files.count})...")
|
33
33
|
next unless options[OPTION_APPLY]
|
34
34
|
|
35
35
|
@result += format.apply(files)
|
@@ -38,7 +38,7 @@ module Avm
|
|
38
38
|
|
39
39
|
def traverser_check_file(file)
|
40
40
|
format = find_format(file)
|
41
|
-
infov file, format ? format.class : '-'
|
41
|
+
speak(:infov, file, format ? format.class : '-')
|
42
42
|
return unless format
|
43
43
|
|
44
44
|
@formats_files[format] ||= []
|
@@ -66,9 +66,9 @@ module Avm
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def search_files
|
69
|
-
infov 'Directories to search', source_paths.count
|
69
|
+
speak(:infov, 'Directories to search', source_paths.count)
|
70
70
|
source_paths.each do |source_path|
|
71
|
-
infom "Searching files on \"#{source_path}\"..."
|
71
|
+
speak(:infom, "Searching files on \"#{source_path}\"...")
|
72
72
|
traverser_check_path(source_path)
|
73
73
|
end
|
74
74
|
end
|
@@ -76,16 +76,22 @@ module Avm
|
|
76
76
|
def show_results
|
77
77
|
changed = @result.select(&:changed)
|
78
78
|
changed.each do |h|
|
79
|
-
out h.file.to_s.cyan
|
80
|
-
out " (#{h.format})".yellow
|
81
|
-
puts ' changed'.green
|
79
|
+
speak(:out, h.file.to_s.cyan)
|
80
|
+
speak(:out, " (#{h.format})".yellow)
|
81
|
+
speak(:puts, ' changed'.green)
|
82
82
|
end
|
83
|
-
infov
|
83
|
+
speak(:infov, 'Files changed', "#{changed.count}/#{@result.count}")
|
84
84
|
end
|
85
85
|
|
86
86
|
def traverser_recursive
|
87
87
|
options[OPTION_RECURSIVE]
|
88
88
|
end
|
89
|
+
|
90
|
+
def speak(method, *method_args)
|
91
|
+
return unless options[OPTION_VERBOSE].to_bool
|
92
|
+
|
93
|
+
send(method, *method_args)
|
94
|
+
end
|
89
95
|
end
|
90
96
|
end
|
91
97
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_fs/file_info'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module FileFormats
|
7
|
+
class Utf8Assert
|
8
|
+
UTF8_CHARSET = 'utf-8'
|
9
|
+
UTF8_CHARSETS = [UTF8_CHARSET, 'us-ascii'].freeze
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def assert_files(files)
|
13
|
+
asserters = files.map { |file| new(file) }
|
14
|
+
begin
|
15
|
+
asserters.each(&:assert)
|
16
|
+
yield
|
17
|
+
ensure
|
18
|
+
asserters.each(&:revert)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
enable_simple_cache
|
24
|
+
common_constructor :path
|
25
|
+
|
26
|
+
def assert
|
27
|
+
return if original_utf8?
|
28
|
+
|
29
|
+
convert_self(original_charset, UTF8_CHARSET)
|
30
|
+
end
|
31
|
+
|
32
|
+
def revert
|
33
|
+
return if original_utf8?
|
34
|
+
|
35
|
+
convert_self(UTF8_CHARSET, original_charset)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def original_info_uncached
|
41
|
+
::EacFs::FileInfo.new(path)
|
42
|
+
end
|
43
|
+
|
44
|
+
def original_charset_uncached
|
45
|
+
return original_info.content_type.charset if original_info.content_type.charset.present?
|
46
|
+
|
47
|
+
raise 'No charset found'
|
48
|
+
rescue StandardError => e
|
49
|
+
raise "Unable to determine the charset of #{path} (#{e.message})"
|
50
|
+
end
|
51
|
+
|
52
|
+
def original_utf8?
|
53
|
+
UTF8_CHARSETS.include?(original_charset)
|
54
|
+
end
|
55
|
+
|
56
|
+
def convert_file(from_path, from_charset, to_path, to_charset)
|
57
|
+
File.open(from_path, "r:#{from_charset}") do |input|
|
58
|
+
File.open(to_path, "w:#{to_charset}") do |output|
|
59
|
+
output.write(input.read)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def convert_self(from_charset, to_charset)
|
65
|
+
temp = ::Tempfile.new
|
66
|
+
temp.close
|
67
|
+
convert_file(path, from_charset, temp.path, to_charset)
|
68
|
+
::FileUtils.mv(temp.path, path)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -7,7 +7,8 @@ module Avm
|
|
7
7
|
module Rspec
|
8
8
|
module Setup
|
9
9
|
require_sub __FILE__
|
10
|
-
EXAMPLES = %w[entries_values in_avm_registry
|
10
|
+
EXAMPLES = %w[avm_file_formats_with_fixtures entries_values in_avm_registry
|
11
|
+
not_in_avm_registry].freeze
|
11
12
|
|
12
13
|
def self.extended(obj)
|
13
14
|
obj.setup_examples
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/source_target_fixtures'
|
4
|
+
require 'avm/file_formats/search_formatter'
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
6
|
+
|
7
|
+
::RSpec.shared_examples 'avm_file_formats_with_fixtures' do |the_spec_file|
|
8
|
+
include_examples 'source_target_fixtures', the_spec_file
|
9
|
+
|
10
|
+
def format_files_in_directory(target_dir)
|
11
|
+
::Avm::FileFormats::SearchFormatter
|
12
|
+
.new([target_dir], recursive: true, apply: true, verbose: false)
|
13
|
+
.run
|
14
|
+
end
|
15
|
+
|
16
|
+
def source_data(source_file)
|
17
|
+
dir = temp_dir
|
18
|
+
source_basename = source_file_basename_without_source_extname(source_file)
|
19
|
+
source_path = dir.join(source_basename)
|
20
|
+
::FileUtils.cp(source_file, source_path)
|
21
|
+
format_files_in_directory(dir)
|
22
|
+
source_path.read
|
23
|
+
end
|
24
|
+
|
25
|
+
def source_file_basename_without_source_extname(source_file)
|
26
|
+
source_file.to_pathname.basename_sub { |b| b.to_path.gsub(/\.source/, '') }.basename
|
27
|
+
end
|
28
|
+
|
29
|
+
def target_data(target_file)
|
30
|
+
::File.read(target_file)
|
31
|
+
end
|
32
|
+
end
|
data/sub/avm/lib/avm/version.rb
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = Dir['{lib,locale}/**/*']
|
14
14
|
|
15
|
-
s.add_dependency 'avm', '~> 0.
|
15
|
+
s.add_dependency 'avm', '~> 0.52'
|
16
16
|
s.add_dependency 'eac_ruby_utils', '~> 0.105'
|
17
17
|
|
18
18
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
|
@@ -6,8 +6,8 @@ module Avm
|
|
6
6
|
module EacGenericBase0
|
7
7
|
class FileFormats
|
8
8
|
class Base < ::Avm::FileFormats::Base
|
9
|
-
VALID_BASENAMES = %w[*.asm *.bat *.
|
10
|
-
*.
|
9
|
+
VALID_BASENAMES = %w[*.asm *.bat *.coffee *.java *.js *.rb *.s *.sql *.tex *.url *.yml
|
10
|
+
*.yaml].freeze
|
11
11
|
|
12
12
|
VALID_TYPES = %w[plain x-shellscript].freeze
|
13
13
|
|
File without changes
|
File without changes
|
@@ -12,9 +12,9 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
14
14
|
|
15
|
-
s.add_dependency 'avm', '~> 0.
|
16
|
-
s.add_dependency 'avm-eac_webapp_base0', '~> 0.
|
17
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
15
|
+
s.add_dependency 'avm', '~> 0.52'
|
16
|
+
s.add_dependency 'avm-eac_webapp_base0', '~> 0.12'
|
17
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.106'
|
18
18
|
|
19
19
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5', '>= 0.5.1'
|
20
20
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/envs'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacPythonBase0
|
8
|
+
module Executables
|
9
|
+
class << self
|
10
|
+
enable_simple_cache
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
%w[latex].each do |program|
|
15
|
+
define_method(program.underscore + '_uncached') do
|
16
|
+
::EacRubyUtils::Envs.local.executable(program, '--version')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avm/executables'
|
4
|
+
require 'avm/eac_latex_base0/executables'
|
4
5
|
require 'eac_ruby_utils/core_ext'
|
5
6
|
require 'eac_ruby_utils/fs/temp'
|
6
7
|
require 'eac_ruby_utils/fs/clearable_directory'
|
@@ -62,7 +63,8 @@ module Avm
|
|
62
63
|
end
|
63
64
|
|
64
65
|
def compile_command
|
65
|
-
::Avm::Executables.latex.command(*compile_command_args)
|
66
|
+
::Avm::EacLatexBase0::Executables.latex.command(*compile_command_args)
|
67
|
+
.chdir(source_temp_dir)
|
66
68
|
end
|
67
69
|
|
68
70
|
def compile_command_args
|
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = Dir['{lib,locale,template}/**/*']
|
14
14
|
|
15
|
-
s.add_dependency 'avm-eac_generic_base0', '~> 0.
|
16
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
15
|
+
s.add_dependency 'avm-eac_generic_base0', '~> 0.7'
|
16
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.106'
|
17
17
|
|
18
18
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5', '>= 0.5.1'
|
19
19
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/envs'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacPhpBase0
|
8
|
+
module Executables
|
9
|
+
class << self
|
10
|
+
enable_simple_cache
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
%w[php-cs-fixer].each do |program|
|
15
|
+
define_method(program.underscore + '_uncached') do
|
16
|
+
::EacRubyUtils::Envs.local.executable(program, '--version')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/executables'
|
3
|
+
require 'avm/eac_php_base0/executables'
|
4
4
|
require 'avm/eac_generic_base0/file_formats/base'
|
5
5
|
|
6
6
|
module Avm
|
@@ -11,7 +11,7 @@ module Avm
|
|
11
11
|
VALID_TYPES = ['x-php'].freeze
|
12
12
|
|
13
13
|
def file_apply(file)
|
14
|
-
::Avm::Executables.php_cs_fixer.command.append(['fix', file]).system!
|
14
|
+
::Avm::EacPhpBase0::Executables.php_cs_fixer.command.append(['fix', file]).system!
|
15
15
|
super(file)
|
16
16
|
end
|
17
17
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = Dir['{lib,locale,template}/**/*']
|
14
14
|
|
15
|
-
s.add_dependency 'avm-eac_generic_base0', '~> 0.
|
16
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
15
|
+
s.add_dependency 'avm-eac_generic_base0', '~> 0.7'
|
16
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.106'
|
17
17
|
|
18
18
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5', '>= 0.5.1'
|
19
19
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/envs'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module EacPythonBase0
|
8
|
+
module Executables
|
9
|
+
class << self
|
10
|
+
enable_simple_cache
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
%w[yapf].each do |program|
|
15
|
+
define_method(program.underscore + '_uncached') do
|
16
|
+
::EacRubyUtils::Envs.local.executable(program, '--version')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/executables'
|
3
|
+
require 'avm/eac_python_base0/executables'
|
4
4
|
require 'avm/eac_generic_base0/file_formats/base'
|
5
5
|
|
6
6
|
module Avm
|
@@ -11,7 +11,7 @@ module Avm
|
|
11
11
|
VALID_TYPES = ['x-python'].freeze
|
12
12
|
|
13
13
|
def internal_apply(files)
|
14
|
-
::Avm::Executables.yapf.command.append(['--in-place', *files]).system!
|
14
|
+
::Avm::EacPythonBase0::Executables.yapf.command.append(['--in-place', *files]).system!
|
15
15
|
super(files)
|
16
16
|
end
|
17
17
|
end
|
File without changes
|
File without changes
|
@@ -12,9 +12,9 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.files = Dir['{lib,locale,template}/**/*']
|
14
14
|
|
15
|
-
s.add_dependency 'avm', '~> 0.
|
16
|
-
s.add_dependency 'avm-eac_generic_base0', '~> 0.
|
17
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
15
|
+
s.add_dependency 'avm', '~> 0.52'
|
16
|
+
s.add_dependency 'avm-eac_generic_base0', '~> 0.7'
|
17
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.106'
|
18
18
|
|
19
19
|
s.add_development_dependency 'aranha-parsers', '~> 0.14', '>= 0.14.1'
|
20
20
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
|