aranha-rails 0.2.0 → 0.5.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/rails/engine.rb +5 -6
- data/lib/aranha/rails/fixtures_download.rb +27 -10
- data/lib/aranha/rails/manager.rb +2 -0
- data/lib/aranha/rails/patches/delayed_job.rb +7 -0
- data/lib/aranha/rails/process.rb +34 -0
- data/lib/aranha/rails/version.rb +1 -1
- data/lib/tasks/aranha.rake +12 -4
- metadata +25 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49f04cc5c0a957bc1aec7617dc1a6e736d860d80905afa04844587b8c57dd2bd
|
4
|
+
data.tar.gz: 18c6a92f2c28731b7224ea7a99a3521c684c56e33446f29601fcab4bf2de3a68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0cf36bd155c0ccdea28701d96d385eb28d3e80a09a9a37e273b1b372f1598c27030a89d040492a707eefea98caf043972e86dc00b90e68f034cb60ef0cd59ab
|
7
|
+
data.tar.gz: 7947c879299d9ee6f0104fe7b6577a8ecc544f6bbccb59cc92f3799b951b98c2f8cd1fc7579b348d69eaa3780f70399008b901a196b42a00a15a7394bb85a2f8
|
data/lib/aranha/rails/engine.rb
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'active_scaffold'
|
4
|
+
require 'eac_rails_delayed_job/engine'
|
4
5
|
|
5
6
|
module Aranha
|
6
7
|
module Rails
|
7
8
|
class Engine < ::Rails::Engine
|
8
|
-
|
9
|
+
include ::EacRailsUtils::EngineHelper
|
9
10
|
|
10
|
-
|
11
|
-
config.paths['db/migrate'].expanded.each do |expanded_path|
|
12
|
-
app.config.paths['db/migrate'] << expanded_path
|
13
|
-
end
|
14
|
-
end
|
11
|
+
isolate_namespace ::Aranha
|
15
12
|
end
|
16
13
|
end
|
17
14
|
end
|
15
|
+
|
16
|
+
require 'aranha/rails/patches/delayed_job'
|
@@ -3,23 +3,40 @@
|
|
3
3
|
require 'aranha/parsers/base'
|
4
4
|
require 'aranha/parsers/source_address'
|
5
5
|
require 'aranha/parsers/source_target_fixtures'
|
6
|
+
require 'eac_ruby_utils/core_ext'
|
6
7
|
|
7
8
|
module Aranha
|
8
9
|
module Rails
|
9
10
|
class FixturesDownload
|
10
|
-
|
11
|
+
DEFAULT_EXTENSION = '.html'
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
enable_listable
|
14
|
+
lists.add_symbol :option, :extension, :prefix, :download, :pending
|
15
|
+
|
16
|
+
common_constructor :options do
|
17
|
+
self.options = self.class.lists.option.hash_keys_validate!(options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def download?
|
21
|
+
options[OPTION_DOWNLOAD] ? true : false
|
22
|
+
end
|
23
|
+
|
24
|
+
def extension
|
25
|
+
options[OPTION_EXTENSION].if_present(DEFAULT_EXTENSION)
|
26
|
+
end
|
27
|
+
|
28
|
+
def pending?
|
29
|
+
options[OPTION_PENDING] ? true : false
|
30
|
+
end
|
31
|
+
|
32
|
+
def prefix
|
33
|
+
options[OPTION_PREFIX].if_present('')
|
17
34
|
end
|
18
35
|
|
19
36
|
def run
|
20
37
|
url_files.each do |f|
|
21
38
|
::Rails.logger.info(relative_path(f))
|
22
|
-
download(url(f), target(f)) if
|
39
|
+
download(url(f), target(f)) if download?
|
23
40
|
end
|
24
41
|
end
|
25
42
|
|
@@ -32,11 +49,11 @@ module Aranha
|
|
32
49
|
def select_path?(path)
|
33
50
|
return false unless match_prefix_pattern(path)
|
34
51
|
|
35
|
-
!pending || !source_exist?(path)
|
52
|
+
!pending? || !source_exist?(path)
|
36
53
|
end
|
37
54
|
|
38
55
|
def match_prefix_pattern(path)
|
39
|
-
relative_path(path).start_with?(
|
56
|
+
relative_path(path).start_with?(prefix)
|
40
57
|
end
|
41
58
|
|
42
59
|
def fixtures_root
|
@@ -56,7 +73,7 @@ module Aranha
|
|
56
73
|
end
|
57
74
|
|
58
75
|
def target(file)
|
59
|
-
File.expand_path(File.basename(file, '.url') + '.source
|
76
|
+
File.expand_path(File.basename(file, '.url') + '.source' + extension, File.dirname(file))
|
60
77
|
end
|
61
78
|
|
62
79
|
def relative_path(path)
|
data/lib/aranha/rails/manager.rb
CHANGED
@@ -9,10 +9,12 @@ module Aranha
|
|
9
9
|
include ::Singleton
|
10
10
|
|
11
11
|
def add_address(url, processor, extra_data = nil)
|
12
|
+
::Rails.logger.info("Adding \"#{url}\"")
|
12
13
|
a = ::Aranha::Address.find_or_initialize_by(url: ::Aranha::Address.sanitize_url(url))
|
13
14
|
a.processor = processor
|
14
15
|
a.extra_data = extra_data.to_yaml
|
15
16
|
a.save!
|
17
|
+
a.check_scheduling
|
16
18
|
end
|
17
19
|
|
18
20
|
def addresses_count
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Aranha
|
4
|
+
module Rails
|
5
|
+
class Process
|
6
|
+
QUEUE = 'aranha'
|
7
|
+
QUEUES = [QUEUE].freeze
|
8
|
+
|
9
|
+
def run
|
10
|
+
run_init
|
11
|
+
run_jobs_workoff
|
12
|
+
run_close
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def run_close
|
18
|
+
::Aranha::Address.failed do |a|
|
19
|
+
::Rails.logger.info "Failed \"#{a.url}\": #{a.last_error}"
|
20
|
+
end
|
21
|
+
raise 'Some address failed' if ::Aranha::Address.failed.any?
|
22
|
+
end
|
23
|
+
|
24
|
+
def run_init
|
25
|
+
::Aranha::Manager.default.init
|
26
|
+
::Aranha::Address.all.each(&:init_scheduling)
|
27
|
+
end
|
28
|
+
|
29
|
+
def run_jobs_workoff
|
30
|
+
::Delayed::Worker.new(exit_on_complete: true, queues: QUEUES).start
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/aranha/rails/version.rb
CHANGED
data/lib/tasks/aranha.rake
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
namespace(:aranha) do
|
4
4
|
desc 'Process Aranha\'s addresses.'
|
5
5
|
task process: :environment do
|
6
|
-
::Aranha::
|
6
|
+
::Aranha::Rails::Process.new.run
|
7
7
|
end
|
8
8
|
|
9
9
|
desc 'Remove all registered Aranha\'s addresses.'
|
@@ -11,13 +11,21 @@ namespace(:aranha) do
|
|
11
11
|
Rails.logger.info("Addresses deleted: #{::Aranha::Address.destroy_all.count}")
|
12
12
|
end
|
13
13
|
|
14
|
+
namespace :address do
|
15
|
+
desc 'Process a arbitrary address.'
|
16
|
+
task :process, %i[uri processor] => :environment do |_t, args|
|
17
|
+
args.processor.constantize.new(args.uri, {}).process
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
14
21
|
namespace :fixtures do
|
15
22
|
desc 'Download remote content for fixtures.'
|
16
23
|
task download: :environment do
|
17
24
|
::Aranha::Rails::FixturesDownload.new(
|
18
|
-
|
19
|
-
|
20
|
-
|
25
|
+
::Aranha::Rails::FixturesDownload::OPTION_EXTENSION => ENV['EXTENSION'],
|
26
|
+
::Aranha::Rails::FixturesDownload::OPTION_PREFIX => ENV['PREFIX'],
|
27
|
+
::Aranha::Rails::FixturesDownload::OPTION_DOWNLOAD => ENV['DOWNLOAD'].present?,
|
28
|
+
::Aranha::Rails::FixturesDownload::OPTION_PENDING => ENV['PENDING'].present?
|
21
29
|
).run
|
22
30
|
end
|
23
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aranha-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Put here the authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_scaffold
|
@@ -58,6 +58,20 @@ dependencies:
|
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0.6'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: eac_rails_delayed_job
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0.1'
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0.1'
|
61
75
|
- !ruby/object:Gem::Dependency
|
62
76
|
name: eac_rails_utils
|
63
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,14 +98,14 @@ dependencies:
|
|
84
98
|
requirements:
|
85
99
|
- - "~>"
|
86
100
|
- !ruby/object:Gem::Version
|
87
|
-
version: '0.
|
101
|
+
version: '0.72'
|
88
102
|
type: :runtime
|
89
103
|
prerelease: false
|
90
104
|
version_requirements: !ruby/object:Gem::Requirement
|
91
105
|
requirements:
|
92
106
|
- - "~>"
|
93
107
|
- !ruby/object:Gem::Version
|
94
|
-
version: '0.
|
108
|
+
version: '0.72'
|
95
109
|
- !ruby/object:Gem::Dependency
|
96
110
|
name: rails
|
97
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,20 +126,20 @@ dependencies:
|
|
112
126
|
requirements:
|
113
127
|
- - "~>"
|
114
128
|
- !ruby/object:Gem::Version
|
115
|
-
version: '0.
|
129
|
+
version: '0.3'
|
116
130
|
- - ">="
|
117
131
|
- !ruby/object:Gem::Version
|
118
|
-
version: 0.1
|
132
|
+
version: 0.3.1
|
119
133
|
type: :development
|
120
134
|
prerelease: false
|
121
135
|
version_requirements: !ruby/object:Gem::Requirement
|
122
136
|
requirements:
|
123
137
|
- - "~>"
|
124
138
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0.
|
139
|
+
version: '0.3'
|
126
140
|
- - ">="
|
127
141
|
- !ruby/object:Gem::Version
|
128
|
-
version: 0.1
|
142
|
+
version: 0.3.1
|
129
143
|
description:
|
130
144
|
email:
|
131
145
|
executables: []
|
@@ -136,6 +150,8 @@ files:
|
|
136
150
|
- lib/aranha/rails/engine.rb
|
137
151
|
- lib/aranha/rails/fixtures_download.rb
|
138
152
|
- lib/aranha/rails/manager.rb
|
153
|
+
- lib/aranha/rails/patches/delayed_job.rb
|
154
|
+
- lib/aranha/rails/process.rb
|
139
155
|
- lib/aranha/rails/version.rb
|
140
156
|
- lib/tasks/aranha.rake
|
141
157
|
homepage:
|
@@ -156,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
172
|
- !ruby/object:Gem::Version
|
157
173
|
version: '0'
|
158
174
|
requirements: []
|
159
|
-
rubygems_version: 3.
|
175
|
+
rubygems_version: 3.1.6
|
160
176
|
signing_key:
|
161
177
|
specification_version: 4
|
162
178
|
summary: Put here de description.
|