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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 177dcaeff3e81307599207d1fdd3a52e8e88c3461e08a5e4c8319b1a354bd3d5
|
4
|
+
data.tar.gz: 6c3fad0d63f50e97c7cc0fffcc7384c66e6066743874916acd5997237c8b6142
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5628867398318c613bd94c4da4dff8e069553ec4bab91b8dfefacd137bf74ed4294047b31455247f4187b39b45b23d898cb318cfca269f03a3c6dcd6458194c
|
7
|
+
data.tar.gz: 4f97c29c0ff189dd0ddc6dbc29d20c4b665d57a6bdc677a98a651427d1ee758fa275c8f29d931f466d6ff981f36ee5f075cf300a45d9486dda125c70f8c5b5f1
|
data/Gemfile.lock
CHANGED
@@ -1,21 +1,34 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
eac_tools (0.
|
5
|
-
avm (~> 0.
|
4
|
+
eac_tools (0.38.0)
|
5
|
+
avm (~> 0.52)
|
6
6
|
avm-eac_asciidoctor_base0 (~> 0.7, >= 0.7.1)
|
7
|
-
avm-eac_generic_base0 (~> 0.
|
8
|
-
avm-eac_latex_base0 (~> 0.
|
9
|
-
avm-eac_php_base0 (~> 0.
|
7
|
+
avm-eac_generic_base0 (~> 0.7)
|
8
|
+
avm-eac_latex_base0 (~> 0.3)
|
9
|
+
avm-eac_php_base0 (~> 0.3)
|
10
10
|
avm-eac_rails_base0 (~> 0.8, >= 0.8.1)
|
11
11
|
avm-eac_rails_base1 (~> 0.7)
|
12
12
|
avm-eac_redmine_base0 (~> 0.16)
|
13
13
|
avm-eac_redmine_plugin_base0 (~> 0.3)
|
14
|
-
avm-eac_ruby_base1 (~> 0.26)
|
15
|
-
avm-eac_webapp_base0 (~> 0.
|
14
|
+
avm-eac_ruby_base1 (~> 0.26, >= 0.26.1)
|
15
|
+
avm-eac_webapp_base0 (~> 0.12)
|
16
16
|
avm-eac_wordpress_base0 (~> 0.2, >= 0.2.1)
|
17
|
-
avm-tools (~> 0.142, >= 0.142.
|
18
|
-
eac_ruby_utils (~> 0.
|
17
|
+
avm-tools (~> 0.142, >= 0.142.3)
|
18
|
+
eac_ruby_utils (~> 0.106)
|
19
|
+
|
20
|
+
PATH
|
21
|
+
remote: sub/aranha-parsers
|
22
|
+
specs:
|
23
|
+
aranha-parsers (0.14.4)
|
24
|
+
activesupport (>= 4.0.0)
|
25
|
+
addressable (~> 2.8, >= 2.8.1)
|
26
|
+
curb (~> 0.9, >= 0.9.11)
|
27
|
+
eac_ruby_utils (~> 0.106)
|
28
|
+
faraday-gzip (~> 0.1)
|
29
|
+
faraday_middleware (~> 1.2)
|
30
|
+
nokogiri (~> 1.13, >= 1.13.9)
|
31
|
+
ofx-parser (~> 1.1)
|
19
32
|
|
20
33
|
PATH
|
21
34
|
remote: sub/avm-eac_asciidoctor_base0
|
@@ -30,31 +43,31 @@ PATH
|
|
30
43
|
PATH
|
31
44
|
remote: sub/avm-eac_generic_base0
|
32
45
|
specs:
|
33
|
-
avm-eac_generic_base0 (0.
|
34
|
-
avm (~> 0.
|
46
|
+
avm-eac_generic_base0 (0.7.0)
|
47
|
+
avm (~> 0.52)
|
35
48
|
eac_ruby_utils (~> 0.105)
|
36
49
|
|
37
50
|
PATH
|
38
51
|
remote: sub/avm-eac_latex_base0
|
39
52
|
specs:
|
40
|
-
avm-eac_latex_base0 (0.
|
41
|
-
avm (~> 0.
|
42
|
-
avm-eac_webapp_base0 (~> 0.
|
43
|
-
eac_ruby_utils (~> 0.
|
53
|
+
avm-eac_latex_base0 (0.3.0)
|
54
|
+
avm (~> 0.52)
|
55
|
+
avm-eac_webapp_base0 (~> 0.12)
|
56
|
+
eac_ruby_utils (~> 0.106)
|
44
57
|
|
45
58
|
PATH
|
46
59
|
remote: sub/avm-eac_php_base0
|
47
60
|
specs:
|
48
|
-
avm-eac_php_base0 (0.
|
49
|
-
avm-eac_generic_base0 (~> 0.
|
50
|
-
eac_ruby_utils (~> 0.
|
61
|
+
avm-eac_php_base0 (0.3.0)
|
62
|
+
avm-eac_generic_base0 (~> 0.7)
|
63
|
+
eac_ruby_utils (~> 0.106)
|
51
64
|
|
52
65
|
PATH
|
53
66
|
remote: sub/avm-eac_python_base0
|
54
67
|
specs:
|
55
|
-
avm-eac_python_base0 (0.
|
56
|
-
avm-eac_generic_base0 (~> 0.
|
57
|
-
eac_ruby_utils (~> 0.
|
68
|
+
avm-eac_python_base0 (0.2.0)
|
69
|
+
avm-eac_generic_base0 (~> 0.7)
|
70
|
+
eac_ruby_utils (~> 0.106)
|
58
71
|
|
59
72
|
PATH
|
60
73
|
remote: sub/avm-eac_rails_base0
|
@@ -95,20 +108,20 @@ PATH
|
|
95
108
|
PATH
|
96
109
|
remote: sub/avm-eac_ruby_base1
|
97
110
|
specs:
|
98
|
-
avm-eac_ruby_base1 (0.26.
|
99
|
-
avm (~> 0.
|
100
|
-
avm-eac_generic_base0 (~> 0.
|
101
|
-
eac_ruby_utils (~> 0.
|
111
|
+
avm-eac_ruby_base1 (0.26.1)
|
112
|
+
avm (~> 0.52)
|
113
|
+
avm-eac_generic_base0 (~> 0.7)
|
114
|
+
eac_ruby_utils (~> 0.106)
|
102
115
|
|
103
116
|
PATH
|
104
117
|
remote: sub/avm-eac_webapp_base0
|
105
118
|
specs:
|
106
|
-
avm-eac_webapp_base0 (0.
|
107
|
-
avm (~> 0.
|
108
|
-
avm-eac_generic_base0 (~> 0.
|
119
|
+
avm-eac_webapp_base0 (0.12.0)
|
120
|
+
avm (~> 0.52)
|
121
|
+
avm-eac_generic_base0 (~> 0.7)
|
109
122
|
avm-eac_postgresql_base0 (~> 0.2)
|
110
123
|
avm-eac_ubuntu_base0 (~> 0.3)
|
111
|
-
eac_ruby_utils (~> 0.
|
124
|
+
eac_ruby_utils (~> 0.106)
|
112
125
|
|
113
126
|
PATH
|
114
127
|
remote: sub/avm-eac_wordpress_base0
|
@@ -121,11 +134,11 @@ PATH
|
|
121
134
|
PATH
|
122
135
|
remote: sub/avm-files
|
123
136
|
specs:
|
124
|
-
avm-files (0.
|
125
|
-
avm (~> 0.
|
137
|
+
avm-files (0.6.0)
|
138
|
+
avm (~> 0.52)
|
126
139
|
eac_cli (~> 0.28)
|
127
140
|
eac_fs (~> 0.12, >= 0.12.3)
|
128
|
-
eac_ruby_utils (~> 0.
|
141
|
+
eac_ruby_utils (~> 0.106)
|
129
142
|
eac_templates (~> 0.3, >= 0.3.2)
|
130
143
|
|
131
144
|
PATH
|
@@ -141,12 +154,12 @@ PATH
|
|
141
154
|
PATH
|
142
155
|
remote: sub/avm-tools
|
143
156
|
specs:
|
144
|
-
avm-tools (0.142.
|
145
|
-
aranha-parsers (~> 0.14, >= 0.14.
|
146
|
-
avm (~> 0.
|
147
|
-
avm-eac_ruby_base1 (~> 0.26)
|
157
|
+
avm-tools (0.142.3)
|
158
|
+
aranha-parsers (~> 0.14, >= 0.14.4)
|
159
|
+
avm (~> 0.52)
|
160
|
+
avm-eac_ruby_base1 (~> 0.26, >= 0.26.1)
|
148
161
|
avm-eac_ubuntu_base0 (~> 0.3)
|
149
|
-
avm-files (~> 0.
|
162
|
+
avm-files (~> 0.6)
|
150
163
|
avm-git (~> 0.8)
|
151
164
|
clipboard (~> 1.3, >= 1.3.6)
|
152
165
|
curb (~> 0.9, >= 0.9.11)
|
@@ -159,10 +172,12 @@ PATH
|
|
159
172
|
PATH
|
160
173
|
remote: sub/avm
|
161
174
|
specs:
|
162
|
-
avm (0.
|
175
|
+
avm (0.52.0)
|
176
|
+
aranha-parsers (~> 0.14, >= 0.14.4)
|
163
177
|
eac_cli (~> 0.28)
|
164
178
|
eac_config (~> 0.11, >= 0.11.1)
|
165
179
|
eac_docker (~> 0.5)
|
180
|
+
eac_fs (~> 0.12, >= 0.12.3)
|
166
181
|
eac_git (~> 0.13)
|
167
182
|
eac_ruby_utils (~> 0.105)
|
168
183
|
eac_templates (~> 0.3, >= 0.3.2)
|
@@ -219,7 +234,7 @@ PATH
|
|
219
234
|
PATH
|
220
235
|
remote: sub/eac_ruby_utils
|
221
236
|
specs:
|
222
|
-
eac_ruby_utils (0.
|
237
|
+
eac_ruby_utils (0.106.0)
|
223
238
|
activesupport (>= 4, < 7)
|
224
239
|
addressable (~> 2.8, >= 2.8.1)
|
225
240
|
bundler
|
@@ -237,15 +252,6 @@ GEM
|
|
237
252
|
zeitwerk (~> 2.3)
|
238
253
|
addressable (2.8.1)
|
239
254
|
public_suffix (>= 2.0.2, < 6.0)
|
240
|
-
aranha-parsers (0.14.3)
|
241
|
-
activesupport (>= 4.0.0)
|
242
|
-
addressable (~> 2.8, >= 2.8.1)
|
243
|
-
curb (~> 0.9, >= 0.9.11)
|
244
|
-
eac_ruby_utils (~> 0.102, >= 0.102.1)
|
245
|
-
faraday-gzip (~> 0.1)
|
246
|
-
faraday_middleware (~> 1.2)
|
247
|
-
nokogiri (~> 1.13, >= 1.13.8)
|
248
|
-
ofx-parser (~> 1.1)
|
249
255
|
asciidoctor (2.0.18)
|
250
256
|
ast (2.4.2)
|
251
257
|
avm-eac_postgresql_base0 (0.2.0)
|
@@ -370,6 +376,7 @@ PLATFORMS
|
|
370
376
|
x86_64-linux
|
371
377
|
|
372
378
|
DEPENDENCIES
|
379
|
+
aranha-parsers!
|
373
380
|
avm!
|
374
381
|
avm-eac_asciidoctor_base0!
|
375
382
|
avm-eac_generic_base0!
|
data/lib/eac_tools/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
4
|
+
|
5
|
+
require 'aranha/parsers/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = 'aranha-parsers'
|
9
|
+
s.version = ::Aranha::Parsers::VERSION
|
10
|
+
s.authors = ['Esquilo Azul Company']
|
11
|
+
s.summary = 'Parsers\' utilities for Ruby.'
|
12
|
+
|
13
|
+
s.files = Dir['{lib}/**/*']
|
14
|
+
|
15
|
+
s.add_dependency 'activesupport', '>= 4.0.0'
|
16
|
+
s.add_dependency 'addressable', '~> 2.8', '>= 2.8.1'
|
17
|
+
s.add_dependency 'curb', '~> 0.9', '>= 0.9.11'
|
18
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.106'
|
19
|
+
s.add_dependency 'faraday-gzip', '~> 0.1'
|
20
|
+
s.add_dependency 'faraday_middleware', '~> 1.2'
|
21
|
+
s.add_dependency 'nokogiri', '~> 1.13', '>= 1.13.9'
|
22
|
+
s.add_dependency 'ofx-parser', '~> 1.1'
|
23
|
+
|
24
|
+
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
|
25
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'open-uri'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'aranha/parsers/source_address'
|
6
|
+
require 'eac_ruby_utils/fs/temp'
|
7
|
+
|
8
|
+
module Aranha
|
9
|
+
module Parsers
|
10
|
+
class Base
|
11
|
+
class << self
|
12
|
+
def from_content(content)
|
13
|
+
::EacRubyUtils::Fs::Temp.on_file do |path|
|
14
|
+
::File.open(path.to_s, 'w:UTF-8') do |f|
|
15
|
+
f.write content.dup.force_encoding('UTF-8')
|
16
|
+
end
|
17
|
+
r = new(path.to_path)
|
18
|
+
r.content
|
19
|
+
r
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def parse_content(content)
|
24
|
+
from_content(content).data
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
LOG_DIR_ENVVAR = 'ARANHA_PARSERS_LOG_DIR'
|
29
|
+
|
30
|
+
attr_reader :source_address
|
31
|
+
|
32
|
+
def initialize(url)
|
33
|
+
@source_address = ::Aranha::Parsers::SourceAddress.new(url)
|
34
|
+
log_content(source_address.serialize, '-source-address')
|
35
|
+
end
|
36
|
+
|
37
|
+
delegate :url, to: :source_address
|
38
|
+
|
39
|
+
def content
|
40
|
+
@content ||= log_content(source_address_content)
|
41
|
+
end
|
42
|
+
|
43
|
+
# @return [String]
|
44
|
+
delegate :content, to: :source_address, prefix: true
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
# @return [String]
|
49
|
+
def log_content(content, suffix = '')
|
50
|
+
path = log_file(suffix)
|
51
|
+
|
52
|
+
File.open(path, 'wb') { |file| file.write(content) } if path
|
53
|
+
|
54
|
+
content
|
55
|
+
end
|
56
|
+
|
57
|
+
def log_file(suffix)
|
58
|
+
dir = log_parsers_dir
|
59
|
+
return nil unless dir
|
60
|
+
|
61
|
+
f = ::File.join(dir, "#{self.class.name.parameterize}#{suffix}.log")
|
62
|
+
FileUtils.mkdir_p(File.dirname(f))
|
63
|
+
f
|
64
|
+
end
|
65
|
+
|
66
|
+
def log_parsers_dir
|
67
|
+
return ENV[LOG_DIR_ENVVAR] if ENV[LOG_DIR_ENVVAR]
|
68
|
+
return ::Rails.root.join('log', 'parsers') if rails_root_exist?
|
69
|
+
|
70
|
+
nil
|
71
|
+
end
|
72
|
+
|
73
|
+
def rails_root_exist?
|
74
|
+
::Rails.root
|
75
|
+
true
|
76
|
+
rescue NameError
|
77
|
+
false
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'nokogiri'
|
4
|
+
require 'aranha/parsers/base'
|
5
|
+
require 'aranha/parsers/html/node/default'
|
6
|
+
|
7
|
+
module Aranha
|
8
|
+
module Parsers
|
9
|
+
module Html
|
10
|
+
class Base < ::Aranha::Parsers::Base
|
11
|
+
class << self
|
12
|
+
def fields
|
13
|
+
@fields ||= []
|
14
|
+
@fields.dup
|
15
|
+
end
|
16
|
+
|
17
|
+
def field(name, type, xpath)
|
18
|
+
@fields ||= []
|
19
|
+
@fields << Field.new(name, type, xpath)
|
20
|
+
end
|
21
|
+
|
22
|
+
Field = Struct.new(:name, :type, :xpath)
|
23
|
+
end
|
24
|
+
|
25
|
+
def nokogiri
|
26
|
+
@nokogiri ||= Nokogiri::HTML(content, &:noblanks)
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
31
|
+
def node_parser_class
|
32
|
+
::Aranha::Parsers::Html::Node::Default
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def node_parser
|
38
|
+
@node_parser ||= node_parser_class.new(fields)
|
39
|
+
end
|
40
|
+
|
41
|
+
def fields
|
42
|
+
self.class.fields.map { |f| [f.name, f.type, f.xpath] }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/html/base'
|
4
|
+
|
5
|
+
module Aranha
|
6
|
+
module Parsers
|
7
|
+
module Html
|
8
|
+
class Item < Base
|
9
|
+
def data
|
10
|
+
@data ||= node_parser.parse(item_node)
|
11
|
+
end
|
12
|
+
|
13
|
+
def item_node
|
14
|
+
@item_node ||= begin
|
15
|
+
r = item_xpath ? nokogiri.at_xpath(item_xpath) : nokogiri
|
16
|
+
raise "Item node not found (Item xpath: #{item_xpath})" unless r
|
17
|
+
|
18
|
+
r
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/html/base'
|
4
|
+
|
5
|
+
module Aranha
|
6
|
+
module Parsers
|
7
|
+
module Html
|
8
|
+
class ItemList < Base
|
9
|
+
def data
|
10
|
+
items_data
|
11
|
+
end
|
12
|
+
|
13
|
+
def item_data(item)
|
14
|
+
item
|
15
|
+
end
|
16
|
+
|
17
|
+
def items_data
|
18
|
+
count = 0
|
19
|
+
@data ||= nokogiri.xpath(items_xpath).map do |m|
|
20
|
+
count += 1
|
21
|
+
item_data(node_parser.parse(m))
|
22
|
+
end
|
23
|
+
rescue StandardError => e
|
24
|
+
raise StandardError, "#{e.message} (Count: #{count})"
|
25
|
+
end
|
26
|
+
|
27
|
+
def items_xpath
|
28
|
+
raise "Class #{self.class} has no method \"#{__method__}\". Implement it"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Aranha
|
4
|
+
module Parsers
|
5
|
+
module Html
|
6
|
+
module Node
|
7
|
+
class Base
|
8
|
+
attr_reader :fields
|
9
|
+
|
10
|
+
def initialize(fields)
|
11
|
+
@fields = fields
|
12
|
+
end
|
13
|
+
|
14
|
+
def parse(node)
|
15
|
+
fields.map do |f|
|
16
|
+
[f[0], parse_field(node, f[2], f[1])]
|
17
|
+
rescue StandardError => e
|
18
|
+
raise StandardError, "#{e.message}\nFields: #{f}"
|
19
|
+
end.to_h
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def parse_field(node, xpath, parser_method)
|
25
|
+
value_method = "#{parser_method}_value"
|
26
|
+
return send(value_method, node, xpath) if respond_to?(value_method)
|
27
|
+
|
28
|
+
raise "Method \"#{value_method}\" not found in #{self.class}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/html/node/base'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Aranha
|
7
|
+
module Parsers
|
8
|
+
module Html
|
9
|
+
module Node
|
10
|
+
class Default < ::Aranha::Parsers::Html::Node::Base
|
11
|
+
module NumericSupport
|
12
|
+
def integer_value(node, xpath)
|
13
|
+
r = string_value(node, xpath)
|
14
|
+
return nil if r.blank?
|
15
|
+
|
16
|
+
m = /\d+/.match(r)
|
17
|
+
raise "Integer not found in \"#{r}\"" unless m
|
18
|
+
|
19
|
+
m[0].to_i
|
20
|
+
end
|
21
|
+
|
22
|
+
def integer_optional_value(node, xpath)
|
23
|
+
r = string_value(node, xpath)
|
24
|
+
m = /\d+/.match(r)
|
25
|
+
m ? m[0].to_i : nil
|
26
|
+
end
|
27
|
+
|
28
|
+
def float_value(node, xpath)
|
29
|
+
parse_float(node, xpath, true)
|
30
|
+
end
|
31
|
+
|
32
|
+
def float_optional_value(node, xpath)
|
33
|
+
parse_float(node, xpath, false)
|
34
|
+
end
|
35
|
+
|
36
|
+
def us_decimal_value(node, xpath)
|
37
|
+
parse_us_decimal(node, xpath, true)
|
38
|
+
end
|
39
|
+
|
40
|
+
def us_decimal_optional_value(node, xpath)
|
41
|
+
parse_us_decimal(node, xpath, false)
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def parse_float(node, xpath, required)
|
47
|
+
s = string_value(node, xpath)
|
48
|
+
m = /\d+(?:[\.\,](\d+))?/.match(s)
|
49
|
+
if m
|
50
|
+
m[0].delete('.').tr(',', '.').to_f
|
51
|
+
elsif required
|
52
|
+
raise "Float value not found in \"#{s}\""
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def parse_us_decimal(node, xpath, required)
|
57
|
+
s = string_value(node, xpath)
|
58
|
+
m = /\d+(?:[\.\,](\d+))?/.match(s)
|
59
|
+
if m
|
60
|
+
m[0].delete(',').to_f
|
61
|
+
elsif required
|
62
|
+
raise "US decimal value not found in \"#{s}\""
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/html/node/base'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Aranha
|
7
|
+
module Parsers
|
8
|
+
module Html
|
9
|
+
module Node
|
10
|
+
class Default < ::Aranha::Parsers::Html::Node::Base
|
11
|
+
module StringSupport
|
12
|
+
def quoted_value(node, xpath)
|
13
|
+
s = string_value(node, xpath)
|
14
|
+
return '' unless s
|
15
|
+
|
16
|
+
m = /\"([^\"]+)\"/.match(s)
|
17
|
+
return m[1] if m
|
18
|
+
|
19
|
+
''
|
20
|
+
end
|
21
|
+
|
22
|
+
def regxep(node, xpath, pattern)
|
23
|
+
s = string_value(node, xpath)
|
24
|
+
m = pattern.match(s)
|
25
|
+
return m if m
|
26
|
+
|
27
|
+
raise "Pattern \"#{pattern}\" not found in string \"#{s}\""
|
28
|
+
end
|
29
|
+
|
30
|
+
def string_value(node, xpath)
|
31
|
+
if node.at_xpath(xpath)
|
32
|
+
sanitize_string(node.at_xpath(xpath).text)
|
33
|
+
else
|
34
|
+
''
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def string_recursive_value(node, xpath, required = true)
|
39
|
+
root = node.at_xpath(xpath)
|
40
|
+
if root.blank?
|
41
|
+
return nil unless required
|
42
|
+
|
43
|
+
raise "No node found (Xpath: #{xpath})"
|
44
|
+
end
|
45
|
+
result = string_recursive(root)
|
46
|
+
return result if result.present?
|
47
|
+
return nil unless required
|
48
|
+
|
49
|
+
raise "String blank (Xpath: #{xpath})"
|
50
|
+
end
|
51
|
+
|
52
|
+
def string_recursive_optional_value(node, xpath)
|
53
|
+
string_recursive_value(node, xpath, false)
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def sanitize_string(obj)
|
59
|
+
obj.to_s.tr("\u00A0", ' ').strip
|
60
|
+
end
|
61
|
+
|
62
|
+
def string_recursive(node)
|
63
|
+
return sanitize_string(node.text) if node.is_a?(::Nokogiri::XML::Text)
|
64
|
+
|
65
|
+
s = ''
|
66
|
+
node.children.each do |child|
|
67
|
+
child_s = string_recursive(child)
|
68
|
+
s += ' ' + child_s if child_s.present?
|
69
|
+
end
|
70
|
+
sanitize_string(s)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'aranha/parsers/html/node/base'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Aranha
|
7
|
+
module Parsers
|
8
|
+
module Html
|
9
|
+
module Node
|
10
|
+
class Default < ::Aranha::Parsers::Html::Node::Base
|
11
|
+
require_sub __FILE__, include_modules: true
|
12
|
+
|
13
|
+
def array_value(node, xpath)
|
14
|
+
r = node.xpath(xpath).map { |n| n.text.strip }
|
15
|
+
r.join('|')
|
16
|
+
end
|
17
|
+
|
18
|
+
def join_value(node, xpath)
|
19
|
+
m = ''
|
20
|
+
node.xpath(xpath).each do |n|
|
21
|
+
m << n.text.strip
|
22
|
+
end
|
23
|
+
m
|
24
|
+
end
|
25
|
+
|
26
|
+
def duration_value(node, xpath)
|
27
|
+
m = /(\d+) m/.match(join_value(node, xpath))
|
28
|
+
m ? m[1].to_i : nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|