eac_rails_utils 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/eac_rails_utils.rb +0 -3
- data/lib/eac_rails_utils/version.rb +1 -1
- metadata +29 -33
- data/lib/eac/download_fixtures.rb +0 -53
- data/lib/eac/parsers/base.rb +0 -90
- data/lib/eac/parsers/ofx.rb +0 -30
- data/lib/tasks/eac_rails_utils.rake +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4331a79b726cdb7d57b195aa6a353100a40e0b13105e8af73b5de0d0ef772de8
|
4
|
+
data.tar.gz: 6708069f999d4dc7870caed8f3201c3f74b1e949f8c58b38eeb3e9ebaddd3fc0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 138f4bebee91229a8fb9a6ff5ad7f87174cd6910d6a7e7d811f54d62f8cfff3cf85b03e3cb49284c6cafa74c23e055028a58e4543d713ce9a96108857e17bf72
|
7
|
+
data.tar.gz: 89118f011528541ab4cb106cce163bdf03bf0a056304edcdf9157e9b5baedd3709bfa184bdbd08222f00092095cbe69c493a3888eeffce6b7728d1a9f520b534
|
data/lib/eac_rails_utils.rb
CHANGED
@@ -27,7 +27,6 @@ module EacRailsUtils
|
|
27
27
|
require 'eac/common_form_helper/form_builder'
|
28
28
|
require 'eac/common_form_helper'
|
29
29
|
require_dependency 'eac/data_table_helper'
|
30
|
-
require 'eac/download_fixtures'
|
31
30
|
require 'eac/htmlbeautifier'
|
32
31
|
require 'eac/inequality_queries'
|
33
32
|
require 'eac/listable'
|
@@ -37,9 +36,7 @@ module EacRailsUtils
|
|
37
36
|
require 'eac/menus_helper/gui_builder'
|
38
37
|
require 'eac/model'
|
39
38
|
require 'eac/no_presence_validator'
|
40
|
-
require 'eac/parsers/base'
|
41
39
|
require 'eac/parsers/files_test'
|
42
|
-
require 'eac/parsers/ofx'
|
43
40
|
require 'eac/simple_cache'
|
44
41
|
require 'eac/source_target_fixtures'
|
45
42
|
require 'eac/test_utils'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_rails_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- E.A.C.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-05-
|
11
|
+
date: 2019-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel-associations
|
@@ -163,7 +163,6 @@ files:
|
|
163
163
|
- lib/eac/data_table_helper/column.rb
|
164
164
|
- lib/eac/data_table_helper/data_table.rb
|
165
165
|
- lib/eac/data_table_helper/setup.rb
|
166
|
-
- lib/eac/download_fixtures.rb
|
167
166
|
- lib/eac/htmlbeautifier.rb
|
168
167
|
- lib/eac/inequality_queries.rb
|
169
168
|
- lib/eac/listable.rb
|
@@ -173,9 +172,7 @@ files:
|
|
173
172
|
- lib/eac/menus_helper/gui_builder.rb
|
174
173
|
- lib/eac/model.rb
|
175
174
|
- lib/eac/no_presence_validator.rb
|
176
|
-
- lib/eac/parsers/base.rb
|
177
175
|
- lib/eac/parsers/files_test.rb
|
178
|
-
- lib/eac/parsers/ofx.rb
|
179
176
|
- lib/eac/simple_cache.rb
|
180
177
|
- lib/eac/source_target_fixtures.rb
|
181
178
|
- lib/eac/test_utils.rb
|
@@ -187,7 +184,6 @@ files:
|
|
187
184
|
- lib/eac_rails_utils/rails/engine.rb
|
188
185
|
- lib/eac_rails_utils/tableless_model.rb
|
189
186
|
- lib/eac_rails_utils/version.rb
|
190
|
-
- lib/tasks/eac_rails_utils.rake
|
191
187
|
- test/dummy/Rakefile
|
192
188
|
- test/dummy/app/models/job.rb
|
193
189
|
- test/dummy/app/models/user.rb
|
@@ -248,39 +244,39 @@ signing_key:
|
|
248
244
|
specification_version: 4
|
249
245
|
summary: Código reutilizável para as aplicações Rails da E.A.C..
|
250
246
|
test_files:
|
251
|
-
- test/
|
252
|
-
- test/
|
253
|
-
- test/
|
254
|
-
- test/lib/eac/source_target_fixtures_test.rb
|
255
|
-
- test/lib/eac/listable_test.rb
|
256
|
-
- test/lib/eac/data_table_test_helper.rb
|
257
|
-
- test/lib/eac/cpf_validator_test.rb
|
258
|
-
- test/lib/eac/model_test.rb
|
259
|
-
- test/lib/eac/common_form_helper_test.rb
|
260
|
-
- test/lib/eac/source_target_fixtures_test_files/a.target.yaml
|
261
|
-
- test/lib/eac/source_target_fixtures_test_files/b.source.html
|
262
|
-
- test/lib/eac/source_target_fixtures_test_files/c.target.yaml
|
263
|
-
- test/lib/eac/source_target_fixtures_test_files/a.source.html
|
264
|
-
- test/lib/eac/simple_cache_test.rb
|
265
|
-
- test/lib/eac/parsers/files_test_test.rb
|
266
|
-
- test/lib/eac/parsers/ok_test_files/a.target.yaml
|
267
|
-
- test/lib/eac/parsers/ok_test_files/b.source.yaml
|
268
|
-
- test/lib/eac/parsers/ok_test_files/b.target.yaml
|
269
|
-
- test/lib/eac/parsers/ok_test_files/a.source.yaml
|
270
|
-
- test/dummy/config/routes.rb
|
247
|
+
- test/dummy/Rakefile
|
248
|
+
- test/dummy/config.ru
|
249
|
+
- test/dummy/config/boot.rb
|
271
250
|
- test/dummy/config/database.yml
|
272
251
|
- test/dummy/config/secrets.yml
|
273
252
|
- test/dummy/config/locales/pt-BR.yml
|
274
|
-
- test/dummy/config/environment.rb
|
275
|
-
- test/dummy/config/boot.rb
|
276
253
|
- test/dummy/config/application.rb
|
277
254
|
- test/dummy/config/environments/test.rb
|
278
|
-
- test/dummy/
|
279
|
-
- test/dummy/config.
|
280
|
-
- test/dummy/app/models/user.rb
|
281
|
-
- test/dummy/app/models/job.rb
|
255
|
+
- test/dummy/config/environment.rb
|
256
|
+
- test/dummy/config/routes.rb
|
282
257
|
- test/dummy/db/schema.rb
|
283
|
-
- test/dummy/db/migrate/20160415125333_create_users.rb
|
284
258
|
- test/dummy/db/migrate/20160415143123_create_jobs.rb
|
285
259
|
- test/dummy/db/migrate/20160415143229_add_job_to_users.rb
|
260
|
+
- test/dummy/db/migrate/20160415125333_create_users.rb
|
261
|
+
- test/dummy/app/models/job.rb
|
262
|
+
- test/dummy/app/models/user.rb
|
286
263
|
- test/test_helper.rb
|
264
|
+
- test/lib/eac_rails_utils/helpers/formatter_test.rb
|
265
|
+
- test/lib/eac_rails_utils/patches/model_attribute_required_test.rb
|
266
|
+
- test/lib/eac_rails_utils/tableless_model_test.rb
|
267
|
+
- test/lib/eac/common_form_helper_test.rb
|
268
|
+
- test/lib/eac/source_target_fixtures_test.rb
|
269
|
+
- test/lib/eac/parsers/files_test_test.rb
|
270
|
+
- test/lib/eac/parsers/ok_test_files/a.source.yaml
|
271
|
+
- test/lib/eac/parsers/ok_test_files/a.target.yaml
|
272
|
+
- test/lib/eac/parsers/ok_test_files/b.source.yaml
|
273
|
+
- test/lib/eac/parsers/ok_test_files/b.target.yaml
|
274
|
+
- test/lib/eac/cpf_validator_test.rb
|
275
|
+
- test/lib/eac/data_table_test_helper.rb
|
276
|
+
- test/lib/eac/simple_cache_test.rb
|
277
|
+
- test/lib/eac/source_target_fixtures_test_files/c.target.yaml
|
278
|
+
- test/lib/eac/source_target_fixtures_test_files/b.source.html
|
279
|
+
- test/lib/eac/source_target_fixtures_test_files/a.target.yaml
|
280
|
+
- test/lib/eac/source_target_fixtures_test_files/a.source.html
|
281
|
+
- test/lib/eac/listable_test.rb
|
282
|
+
- test/lib/eac/model_test.rb
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Eac
|
4
|
-
class DownloadFixtures
|
5
|
-
def initialize(prefix, download)
|
6
|
-
@prefix = prefix
|
7
|
-
@prefix = '' if @prefix.blank?
|
8
|
-
@download = download
|
9
|
-
end
|
10
|
-
|
11
|
-
def run
|
12
|
-
url_files.each do |f|
|
13
|
-
Rails.logger.info(relative_path(f))
|
14
|
-
download(url(f), target(f)) if @download
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def url_files
|
21
|
-
files = []
|
22
|
-
Dir["#{fixtures_root}/**/*.url"].map do |path|
|
23
|
-
files << path if match_pattern(path)
|
24
|
-
end
|
25
|
-
files
|
26
|
-
end
|
27
|
-
|
28
|
-
def match_pattern(path)
|
29
|
-
relative_path(path).start_with?(@prefix)
|
30
|
-
end
|
31
|
-
|
32
|
-
def fixtures_root
|
33
|
-
Rails.root.to_s
|
34
|
-
end
|
35
|
-
|
36
|
-
def download(url, target)
|
37
|
-
Rails.logger.info "Baixando \"#{url}\"..."
|
38
|
-
File.open(target, 'wb') { |file| file.write(Parsers::Base.new(url).content) }
|
39
|
-
end
|
40
|
-
|
41
|
-
def url(file)
|
42
|
-
File.read(file).strip
|
43
|
-
end
|
44
|
-
|
45
|
-
def target(file)
|
46
|
-
File.expand_path(File.basename(file, '.url') + '.source.html', File.dirname(file))
|
47
|
-
end
|
48
|
-
|
49
|
-
def relative_path(path)
|
50
|
-
path.sub(%r{^#{Regexp.quote(fixtures_root)}/}, '')
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
data/lib/eac/parsers/base.rb
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
# ecoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require 'open-uri'
|
5
|
-
require 'fileutils'
|
6
|
-
|
7
|
-
module Eac
|
8
|
-
module Parsers
|
9
|
-
class Base
|
10
|
-
def initialize(url)
|
11
|
-
@url = url
|
12
|
-
end
|
13
|
-
|
14
|
-
def url
|
15
|
-
@url.gsub(%r{/+$}, '')
|
16
|
-
end
|
17
|
-
|
18
|
-
def content
|
19
|
-
s = content_by_url_type
|
20
|
-
log_content(s)
|
21
|
-
s
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def content_by_url_type
|
27
|
-
if @url.is_a?(Hash)
|
28
|
-
content_hash
|
29
|
-
elsif /^http/ =~ @url
|
30
|
-
content_get
|
31
|
-
else
|
32
|
-
content_file
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def content_file
|
37
|
-
open(@url.gsub(%r{\Afile://}, ''), &:read)
|
38
|
-
end
|
39
|
-
|
40
|
-
def content_get
|
41
|
-
content_get_fetch(@url)
|
42
|
-
end
|
43
|
-
|
44
|
-
def content_get_fetch(uri, limit = 10)
|
45
|
-
raise 'too many HTTP redirects' if limit == 0
|
46
|
-
uri = Addressable::URI.parse(uri)
|
47
|
-
content_get_fetch_result(uri, limit, Net::HTTP.get_response(uri))
|
48
|
-
end
|
49
|
-
|
50
|
-
def content_get_fetch_result(uri, limit, response)
|
51
|
-
case response
|
52
|
-
when Net::HTTPSuccess then
|
53
|
-
response.body
|
54
|
-
when Net::HTTPRedirection then
|
55
|
-
content_get_fetch_redirect(uri, Addressable::URI.parse(response['location']), limit)
|
56
|
-
else
|
57
|
-
response.value
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def content_get_fetch_redirect(original_uri, redirect_uri, limit)
|
62
|
-
if redirect_uri.scheme.blank?
|
63
|
-
redirect_uri.scheme = original_uri.scheme
|
64
|
-
redirect_uri.authority = original_uri.authority
|
65
|
-
end
|
66
|
-
Rails.logger.debug("#{original_uri} redirected to #{redirect_uri}")
|
67
|
-
content_get_fetch(redirect_uri, limit - 1)
|
68
|
-
end
|
69
|
-
|
70
|
-
def content_hash
|
71
|
-
return content_post if @url[:method] == :post
|
72
|
-
raise "Unknown URL format: #{@url}"
|
73
|
-
end
|
74
|
-
|
75
|
-
def content_post
|
76
|
-
HTTPClient.new.post_content(@url[:url], @url[:params].merge(follow_redirect: true))
|
77
|
-
end
|
78
|
-
|
79
|
-
def log_content(s)
|
80
|
-
File.open(log_file, 'wb') { |file| file.write(s) }
|
81
|
-
end
|
82
|
-
|
83
|
-
def log_file
|
84
|
-
f = Rails.root.join('log', 'parsers', "#{self.class.name.parameterize}.log")
|
85
|
-
FileUtils.mkdir_p(File.dirname(f))
|
86
|
-
f
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
data/lib/eac/parsers/ofx.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Eac
|
3
|
-
module Parsers
|
4
|
-
class Ofx < ::Eac::Parsers::Base
|
5
|
-
def ofx
|
6
|
-
@ofx ||= ofx_parse
|
7
|
-
end
|
8
|
-
|
9
|
-
def assert_ofx
|
10
|
-
fail "Not a OFX: #{url}" unless ofx.bank_account || ofx.credit_card ||
|
11
|
-
ofx.investment
|
12
|
-
end
|
13
|
-
|
14
|
-
def ofx?
|
15
|
-
ofx.present?
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def ofx_parse
|
21
|
-
s = content.force_encoding('iso-8859-1').encode('utf-8').gsub(/(?<!\r)\n/, "\r\n")
|
22
|
-
begin
|
23
|
-
::OfxParser::OfxParser.parse(s)
|
24
|
-
rescue NoMethodError, ArgumentError
|
25
|
-
nil
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|