aranha-parsers 0.14.3 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52bced6dd0e6d72fb79b2c9713dfee1d2252bfe89f6462cc6e53f9eaa4880543
4
- data.tar.gz: c83cf2a601327280a614dfa4c7ed867a2a1adac82f6c8f1b075d1bae9bbd3b9e
3
+ metadata.gz: a87bee2eeeebed789dce135f879a59c498af5a3f7ee92deba457f80b3caec591
4
+ data.tar.gz: d8eb8828bdca9cf2e96a74c3136dfc36b792c350007c1f27776068ab0933fdb3
5
5
  SHA512:
6
- metadata.gz: ca4fc9b2d88bcfc110fda3fe4031963f4b2d8a3112ec2dc3f2ebd9328b61744def00fd394aa77da61f287d189e4ed85085e358a2ad988fe4911e8e4b924429fc
7
- data.tar.gz: 462f9cd8825f447840f652c210e35ebafa57ae08b8ee4a4078c74f08cbdd516ff9a4e2ebe29ce486f8719c64538df652a627d6c67e7fc6d32c7baf16b5dd160c
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
- if ENV['WRITE_TARGET_FIXTURES']
19
- it 'writes target data for all files' do
20
- source_target_fixtures.source_files.each do |source_file|
21
- sd = sort_results(source_data(source_file))
22
- basename = ::Aranha::Parsers::SourceTargetFixtures.source_target_basename(source_file)
23
- target_file = File.expand_path("../#{basename}.target#{target_file_extname}", source_file)
24
- File.write(target_file, target_content(sd))
25
- end
26
- end
27
- else
28
- it 'parses data for all files' do
29
- source_target_fixtures.source_target_files.each do |st|
30
- assert_source_target_complete(st)
31
- sd = source_data(st.source)
32
- td = target_data(st.target)
33
- expect(sort_results(sd)).to eq(sort_results(td))
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
- def source_target_fixtures
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
@@ -3,7 +3,7 @@
3
3
  require 'aranha/parsers/source_address/fetch_content_error'
4
4
  require 'aranha/parsers/source_address/hash_http_base'
5
5
  require 'eac_ruby_utils/core_ext'
6
- require 'faraday_middleware'
6
+ require 'faraday'
7
7
  require 'faraday/gzip'
8
8
  require 'yaml'
9
9
 
@@ -1,9 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'addressable'
4
- require 'curb'
5
4
  require 'aranha/parsers/source_address/fetch_content_error'
6
- require 'faraday_middleware'
5
+ require 'faraday'
7
6
 
8
7
  module Aranha
9
8
  module Parsers
@@ -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
- OpenStruct.new(basename: basename, source: source_file(basename),
26
- target: target_file(basename))
27
+ ::Aranha::Parsers::SourceTargetFixtures::SourceTargetFile.new(self, basename)
27
28
  end
28
29
  end
29
30
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aranha
4
4
  module Parsers
5
- VERSION = '0.14.3'
5
+ VERSION = '0.15.0'
6
6
  end
7
7
  end
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.14.3
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: 2022-09-13 00:00:00.000000000 Z
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: curb
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.9'
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.9'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.9.11
60
+ version: '0.112'
67
61
  - !ruby/object:Gem::Dependency
68
- name: eac_ruby_utils
62
+ name: faraday
69
63
  requirement: !ruby/object:Gem::Requirement
70
64
  requirements:
71
65
  - - "~>"
72
66
  - !ruby/object:Gem::Version
73
- version: '0.102'
67
+ version: '2.7'
74
68
  - - ">="
75
69
  - !ruby/object:Gem::Version
76
- version: 0.102.1
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: '0.102'
77
+ version: '2.7'
84
78
  - - ">="
85
79
  - !ruby/object:Gem::Version
86
- version: 0.102.1
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.13'
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.13'
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: []
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
6
-
7
- local_gemfile = ::File.join(::File.dirname(__FILE__), 'Gemfile.local')
8
- eval_gemfile local_gemfile if ::File.exist?(local_gemfile)