aranha-parsers 0.14.3 → 0.15.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.
- checksums.yaml +4 -4
- data/lib/aranha/parsers/rspec/shared_examples/source_target_fixtures.rb +23 -27
- data/lib/aranha/parsers/rspec/source_target_fixtures_controller.rb +39 -0
- data/lib/aranha/parsers/source_address/hash_http_base.rb +1 -1
- data/lib/aranha/parsers/source_address/http_get.rb +1 -2
- data/lib/aranha/parsers/source_target_fixtures/source_target_file.rb +19 -0
- data/lib/aranha/parsers/source_target_fixtures.rb +3 -2
- data/lib/aranha/parsers/version.rb +1 -1
- metadata +14 -39
- data/Gemfile +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a87bee2eeeebed789dce135f879a59c498af5a3f7ee92deba457f80b3caec591
|
4
|
+
data.tar.gz: d8eb8828bdca9cf2e96a74c3136dfc36b792c350007c1f27776068ab0933fdb3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90b74948ef1ae82bc707eee63139f53418afef30f33060d6c8ffb61a0236ba24376012c1b7c35ab9d74eae643c96d9634cebbd41727c8b3bda4f95669468fbeb
|
7
|
+
data.tar.gz: 7396d8809a46557b784f5767d6939afd145713b18e815cc798bf11c139416173cede3fc8680254624e2908b8cdb5a503624bac35fb164773379547dae222bba1
|
@@ -1,13 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'aranha/parsers/rspec/source_target_fixtures_controller'
|
3
4
|
require 'aranha/parsers/source_target_fixtures'
|
4
5
|
require 'yaml'
|
5
6
|
|
6
7
|
RSpec.shared_examples 'source_target_fixtures' do |spec_file| # rubocop:disable Metrics/BlockLength
|
8
|
+
fixtures_controller = ::Aranha::Parsers::Rspec::SourceTargetFixturesController
|
9
|
+
.new(self, spec_file)
|
10
|
+
|
11
|
+
let(:fixtures_controller) { fixtures_controller }
|
7
12
|
let(:spec_file) { spec_file }
|
8
13
|
|
9
14
|
it 'fixtures directory should exist' do
|
10
|
-
expect(::File.directory?(fixtures_dir)).to be true
|
15
|
+
expect(::File.directory?(fixtures_controller.fixtures_dir)).to be true
|
11
16
|
end
|
12
17
|
|
13
18
|
context 'with fixtures directory' do
|
@@ -15,30 +20,28 @@ RSpec.shared_examples 'source_target_fixtures' do |spec_file| # rubocop:disable
|
|
15
20
|
expect(source_target_fixtures.source_target_files.count).to be > 0 # rubocop:disable Style/NumericPredicate
|
16
21
|
end
|
17
22
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
23
|
+
fixtures_controller.source_target_fixtures.source_target_files.each do |st|
|
24
|
+
context "when source file is \"#{::File.basename(st.source)}\"" do
|
25
|
+
if fixtures_controller.write_target_fixtures?
|
26
|
+
it 'writes target data' do
|
27
|
+
sd = sort_results(source_data(st.source))
|
28
|
+
basename = ::Aranha::Parsers::SourceTargetFixtures.source_target_basename(st.source)
|
29
|
+
target_file = File.expand_path("../#{basename}.target#{target_file_extname}", st.source)
|
30
|
+
File.write(target_file, target_content(sd))
|
31
|
+
end
|
32
|
+
else
|
33
|
+
it 'parses data' do
|
34
|
+
assert_source_target_complete(st)
|
35
|
+
sd = source_data(st.source)
|
36
|
+
td = target_data(st.target)
|
37
|
+
expect(sort_results(sd)).to eq(sort_results(td))
|
38
|
+
end
|
34
39
|
end
|
35
40
|
end
|
36
41
|
end
|
37
42
|
end
|
38
43
|
|
39
|
-
|
40
|
-
@source_target_fixtures ||= ::Aranha::Parsers::SourceTargetFixtures.new(fixtures_dir)
|
41
|
-
end
|
44
|
+
delegate :source_target_fixtures, to: :fixtures_controller
|
42
45
|
|
43
46
|
def assert_source_target_complete(source_target)
|
44
47
|
expect(source_target.source).to(be_truthy, "Source not found (Target: #{source_target.target})")
|
@@ -53,13 +56,6 @@ RSpec.shared_examples 'source_target_fixtures' do |spec_file| # rubocop:disable
|
|
53
56
|
"\"#{self}.source_data(source_file)\""
|
54
57
|
end
|
55
58
|
|
56
|
-
def fixtures_dir
|
57
|
-
::File.join(
|
58
|
-
::File.dirname(spec_file),
|
59
|
-
::File.basename(spec_file, '.*') + '_files'
|
60
|
-
)
|
61
|
-
end
|
62
|
-
|
63
59
|
def sort_results(results)
|
64
60
|
results
|
65
61
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Aranha
|
6
|
+
module Parsers
|
7
|
+
module Rspec
|
8
|
+
class SourceTargetFixturesController
|
9
|
+
enable_simple_cache
|
10
|
+
common_constructor :example, :spec_file
|
11
|
+
|
12
|
+
def default_fixtures_dir
|
13
|
+
::File.join(
|
14
|
+
::File.dirname(spec_file),
|
15
|
+
::File.basename(spec_file, '.*') + '_files'
|
16
|
+
)
|
17
|
+
end
|
18
|
+
|
19
|
+
def fixtures_dir
|
20
|
+
if example.respond_to?(:fixtures_dir)
|
21
|
+
example.fixtures_dir
|
22
|
+
else
|
23
|
+
default_fixtures_dir
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def write_target_fixtures?
|
28
|
+
ENV['WRITE_TARGET_FIXTURES'].to_bool
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def source_target_fixtures_uncached
|
34
|
+
::Aranha::Parsers::SourceTargetFixtures.new(fixtures_dir)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Aranha
|
4
|
+
module Parsers
|
5
|
+
class SourceTargetFixtures
|
6
|
+
class SourceTargetFile
|
7
|
+
common_constructor :owner, :basename
|
8
|
+
|
9
|
+
def source
|
10
|
+
owner.source_file(basename)
|
11
|
+
end
|
12
|
+
|
13
|
+
def target
|
14
|
+
owner.target_file(basename)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -7,6 +7,8 @@ module Aranha
|
|
7
7
|
module Parsers
|
8
8
|
# Lists pairs of source/target files in a directory.
|
9
9
|
class SourceTargetFixtures
|
10
|
+
require_sub __FILE__
|
11
|
+
|
10
12
|
class << self
|
11
13
|
def source_target_basename(file)
|
12
14
|
m = /^(.+)\.(?:source|target)(?:\..+)?$/.match(File.basename(file))
|
@@ -22,8 +24,7 @@ module Aranha
|
|
22
24
|
|
23
25
|
def source_target_files
|
24
26
|
sources_targets_basenames.map do |basename|
|
25
|
-
|
26
|
-
target: target_file(basename))
|
27
|
+
::Aranha::Parsers::SourceTargetFixtures::SourceTargetFile.new(self, basename)
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aranha-parsers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -45,45 +45,39 @@ dependencies:
|
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 2.8.1
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
48
|
+
name: eac_ruby_utils
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '0.
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 0.9.11
|
53
|
+
version: '0.112'
|
57
54
|
type: :runtime
|
58
55
|
prerelease: false
|
59
56
|
version_requirements: !ruby/object:Gem::Requirement
|
60
57
|
requirements:
|
61
58
|
- - "~>"
|
62
59
|
- !ruby/object:Gem::Version
|
63
|
-
version: '0.
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 0.9.11
|
60
|
+
version: '0.112'
|
67
61
|
- !ruby/object:Gem::Dependency
|
68
|
-
name:
|
62
|
+
name: faraday
|
69
63
|
requirement: !ruby/object:Gem::Requirement
|
70
64
|
requirements:
|
71
65
|
- - "~>"
|
72
66
|
- !ruby/object:Gem::Version
|
73
|
-
version: '
|
67
|
+
version: '2.7'
|
74
68
|
- - ">="
|
75
69
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
70
|
+
version: 2.7.4
|
77
71
|
type: :runtime
|
78
72
|
prerelease: false
|
79
73
|
version_requirements: !ruby/object:Gem::Requirement
|
80
74
|
requirements:
|
81
75
|
- - "~>"
|
82
76
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
77
|
+
version: '2.7'
|
84
78
|
- - ">="
|
85
79
|
- !ruby/object:Gem::Version
|
86
|
-
version:
|
80
|
+
version: 2.7.4
|
87
81
|
- !ruby/object:Gem::Dependency
|
88
82
|
name: faraday-gzip
|
89
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,40 +92,20 @@ dependencies:
|
|
98
92
|
- - "~>"
|
99
93
|
- !ruby/object:Gem::Version
|
100
94
|
version: '0.1'
|
101
|
-
- !ruby/object:Gem::Dependency
|
102
|
-
name: faraday_middleware
|
103
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
-
requirements:
|
105
|
-
- - "~>"
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
version: '1.2'
|
108
|
-
type: :runtime
|
109
|
-
prerelease: false
|
110
|
-
version_requirements: !ruby/object:Gem::Requirement
|
111
|
-
requirements:
|
112
|
-
- - "~>"
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
version: '1.2'
|
115
95
|
- !ruby/object:Gem::Dependency
|
116
96
|
name: nokogiri
|
117
97
|
requirement: !ruby/object:Gem::Requirement
|
118
98
|
requirements:
|
119
99
|
- - "~>"
|
120
100
|
- !ruby/object:Gem::Version
|
121
|
-
version: '1.
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 1.13.8
|
101
|
+
version: '1.14'
|
125
102
|
type: :runtime
|
126
103
|
prerelease: false
|
127
104
|
version_requirements: !ruby/object:Gem::Requirement
|
128
105
|
requirements:
|
129
106
|
- - "~>"
|
130
107
|
- !ruby/object:Gem::Version
|
131
|
-
version: '1.
|
132
|
-
- - ">="
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: 1.13.8
|
108
|
+
version: '1.14'
|
135
109
|
- !ruby/object:Gem::Dependency
|
136
110
|
name: ofx-parser
|
137
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,7 +140,6 @@ executables: []
|
|
166
140
|
extensions: []
|
167
141
|
extra_rdoc_files: []
|
168
142
|
files:
|
169
|
-
- Gemfile
|
170
143
|
- lib/aranha/parsers.rb
|
171
144
|
- lib/aranha/parsers/base.rb
|
172
145
|
- lib/aranha/parsers/html.rb
|
@@ -186,6 +159,7 @@ files:
|
|
186
159
|
- lib/aranha/parsers/rspec.rb
|
187
160
|
- lib/aranha/parsers/rspec/setup.rb
|
188
161
|
- lib/aranha/parsers/rspec/shared_examples/source_target_fixtures.rb
|
162
|
+
- lib/aranha/parsers/rspec/source_target_fixtures_controller.rb
|
189
163
|
- lib/aranha/parsers/source_address.rb
|
190
164
|
- lib/aranha/parsers/source_address/fetch_content_error.rb
|
191
165
|
- lib/aranha/parsers/source_address/file.rb
|
@@ -194,6 +168,7 @@ files:
|
|
194
168
|
- lib/aranha/parsers/source_address/hash_http_post.rb
|
195
169
|
- lib/aranha/parsers/source_address/http_get.rb
|
196
170
|
- lib/aranha/parsers/source_target_fixtures.rb
|
171
|
+
- lib/aranha/parsers/source_target_fixtures/source_target_file.rb
|
197
172
|
- lib/aranha/parsers/version.rb
|
198
173
|
homepage:
|
199
174
|
licenses: []
|