aranha-rails 0.6.0 → 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/.rubocop.yml +25 -0
- data/Gemfile +5 -0
- data/app/assets/javascripts/aranha/application.js +2 -0
- data/app/assets/stylesheets/aranha/application.css +5 -0
- data/app/controllers/aranha/addresses_controller.rb +8 -0
- data/app/controllers/aranha/processor_configurations_controller.rb +16 -0
- data/app/controllers/aranha/start_points_controller.rb +16 -0
- data/app/models/aranha/address/delayed_job.rb +39 -0
- data/app/models/aranha/address/processor.rb +24 -0
- data/app/models/aranha/address/scheduling.rb +49 -0
- data/app/models/aranha/address.rb +80 -0
- data/app/models/aranha/processor_configuration.rb +51 -0
- data/app/models/aranha/start_point.rb +47 -0
- data/config/initializers/aranha.rb +5 -0
- data/config/locales/en.yml +12 -0
- data/config/locales/pt-BR.yml +12 -0
- data/config/routes.rb +7 -0
- data/db/migrate/20171201021251_create_aranha_addresses.rb +15 -0
- data/db/migrate/20181125042102_add_extra_data_to_aranha_addresses.rb +9 -0
- data/db/migrate/20201128202212_create_aranha_start_points.rb +13 -0
- data/db/migrate/20210720023620_add_delayed_job_to_aranha_addresses.rb +7 -0
- data/db/migrate/20210721171416_add_tries_count_to_aranha_addresses.rb +7 -0
- data/db/migrate/20210721185222_add_last_error_to_aranha_addresses.rb +7 -0
- data/db/migrate/20210814220540_create_aranha_processor_configurations.rb +12 -0
- data/db/migrate/20210815160543_add_enabled_to_aranha_processor_configurations.rb +7 -0
- data/lib/aranha/rails/engine.rb +1 -1
- data/lib/aranha/rails/manager.rb +1 -1
- data/lib/aranha/rails/version.rb +1 -1
- data/spec/rubocop_spec.rb +3 -0
- data/spec/spec_helper.rb +4 -0
- metadata +55 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a322e7787c81f714d13888862ffdf6a30a4ac0d56847091dd119c67c0ca4ca1e
|
4
|
+
data.tar.gz: c67dea8842bf7f4213bd8cc25a4ad45f569f28681bed528d8d67786e49d984e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c56775f370ea486705fcfaa35449910933b0468179592bdd94f1585c5f553480a7b8e10c52af0cc86e1b8f3283ebc1e419c6f0ad12cc55c6d5fc1db5676ba2b6
|
7
|
+
data.tar.gz: 9fe98cf105b3d38c13bf5310bca70edd8a5740b7352b96dfbd52b79f6d770c4a458708c7fd8d563aae71c37ada4ac1bfa28e911dacd38f237e08fdc0273f65fb
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--require spec_helper
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-rails
|
3
|
+
- rubocop-rspec
|
4
|
+
|
5
|
+
AllCops:
|
6
|
+
TargetRubyVersion: 2.4
|
7
|
+
TargetRailsVersion: 5.1
|
8
|
+
|
9
|
+
Layout/LineLength:
|
10
|
+
Max: 100
|
11
|
+
|
12
|
+
Style/AsciiComments:
|
13
|
+
Enabled: false
|
14
|
+
|
15
|
+
Style/Documentation:
|
16
|
+
Enabled: false
|
17
|
+
|
18
|
+
Style/HashEachMethods:
|
19
|
+
Enabled: true
|
20
|
+
|
21
|
+
Style/HashTransformKeys:
|
22
|
+
Enabled: true
|
23
|
+
|
24
|
+
Style/HashTransformValues:
|
25
|
+
Enabled: true
|
data/Gemfile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Aranha
|
4
|
+
class ProcessorConfigurationsController < ::ApplicationController
|
5
|
+
before_action :configure_processor_class_options
|
6
|
+
|
7
|
+
active_scaffold :'aranha/processor_configuration' do |conf|
|
8
|
+
conf.columns[:processor_class].form_ui = :select
|
9
|
+
end
|
10
|
+
|
11
|
+
def configure_processor_class_options
|
12
|
+
active_scaffold_config.columns[:processor_class].options =
|
13
|
+
{ options: ::Aranha::ProcessorConfiguration.processor_class_options }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Aranha
|
4
|
+
class StartPointsController < ::ApplicationController
|
5
|
+
before_action :configure_processor_class_options
|
6
|
+
|
7
|
+
active_scaffold :'aranha/start_point' do |conf|
|
8
|
+
conf.columns[:processor_class].form_ui = :select
|
9
|
+
end
|
10
|
+
|
11
|
+
def configure_processor_class_options
|
12
|
+
active_scaffold_config.columns[:processor_class].options =
|
13
|
+
{ options: ::Aranha::StartPoint.processor_class_options }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Aranha
|
6
|
+
class Address < ::ActiveRecord::Base
|
7
|
+
class DelayedJob
|
8
|
+
common_constructor :address_id
|
9
|
+
|
10
|
+
def perform
|
11
|
+
address_processor.successful? ? perform_on_success : perform_on_error
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def address
|
17
|
+
address_processor.address
|
18
|
+
end
|
19
|
+
|
20
|
+
def perform_on_success
|
21
|
+
# Do nothing
|
22
|
+
end
|
23
|
+
|
24
|
+
def perform_on_error
|
25
|
+
address.update!(
|
26
|
+
tries_count: address.tries_count + 1,
|
27
|
+
last_error: address_processor.error.to_yaml
|
28
|
+
)
|
29
|
+
address.check_scheduling
|
30
|
+
end
|
31
|
+
|
32
|
+
def address_processor
|
33
|
+
@address_processor ||= ::Aranha::AddressProcessor.new(
|
34
|
+
::Aranha::Address.find(address_id)
|
35
|
+
)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Aranha
|
6
|
+
class Address < ::ActiveRecord::Base
|
7
|
+
module Processor
|
8
|
+
common_concern
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
# @return [Aranha::ProcessorConfiguration]
|
12
|
+
def default_processor_configuration
|
13
|
+
@default_processor_configuration ||= ::Aranha::ProcessorConfiguration.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# @return [Aranha::ProcessorConfiguration]
|
18
|
+
def processor_configuration
|
19
|
+
::Aranha::ProcessorConfiguration.find_by(processor_class: processor) ||
|
20
|
+
self.class.default_processor_configuration
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Aranha
|
6
|
+
class Address < ::ActiveRecord::Base
|
7
|
+
module Scheduling
|
8
|
+
common_concern
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
# @return [Array<Aranha::Address>]
|
12
|
+
def expired(time = ::Time.zone.now)
|
13
|
+
all.select { |record| record.expired?(time) }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def check_scheduling
|
18
|
+
::ActiveRecord::Base.transaction do
|
19
|
+
return unless schedule?
|
20
|
+
|
21
|
+
job = ::Delayed::Job.enqueue(
|
22
|
+
::Aranha::Address::DelayedJob.new(id),
|
23
|
+
queue: ::Aranha::Rails::Process::QUEUE
|
24
|
+
)
|
25
|
+
update!(delayed_job: job)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def expired?(time = ::Time.zone.now)
|
30
|
+
time >= (created_at + timeout)
|
31
|
+
end
|
32
|
+
|
33
|
+
def init_scheduling
|
34
|
+
update!(tries_count: 0, last_error: nil) unless processed?
|
35
|
+
check_scheduling
|
36
|
+
end
|
37
|
+
|
38
|
+
def allow_retry?
|
39
|
+
tries_count < ::Aranha::Processor::DEFAULT_MAX_TRIES
|
40
|
+
end
|
41
|
+
|
42
|
+
def schedule?
|
43
|
+
processed_at.blank? && allow_retry? && delayed_job.blank? && enabled?
|
44
|
+
end
|
45
|
+
|
46
|
+
delegate :enabled?, :timeout, to: :processor_configuration
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/yaml'
|
4
|
+
require 'delayed/backend/active_record'
|
5
|
+
|
6
|
+
module Aranha
|
7
|
+
class Address < ::ActiveRecord::Base
|
8
|
+
include ::EacRailsUtils::Models::InequalityQueries
|
9
|
+
include ::Aranha::Address::Processor
|
10
|
+
include ::Aranha::Address::Scheduling
|
11
|
+
|
12
|
+
add_inequality_queries(:created_at)
|
13
|
+
|
14
|
+
class << self
|
15
|
+
def sanitize_url(url)
|
16
|
+
if url.is_a?(Hash)
|
17
|
+
::EacRubyUtils::Yaml.dump(url)
|
18
|
+
else
|
19
|
+
url.to_s
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
belongs_to :delayed_job, class_name: 'Delayed::Backend::ActiveRecord::Job', dependent: :destroy,
|
25
|
+
optional: true
|
26
|
+
|
27
|
+
validates :url, presence: true, uniqueness: true
|
28
|
+
validates :processor, presence: true
|
29
|
+
validates :tries_count, presence: true, numericality: { only_integer: true,
|
30
|
+
greater_or_equal: 0 }
|
31
|
+
|
32
|
+
scope :failed, lambda {
|
33
|
+
where(processed_at: nil).where.not(last_error: nil)
|
34
|
+
}
|
35
|
+
|
36
|
+
def to_s
|
37
|
+
"#{processor}|#{url}"
|
38
|
+
end
|
39
|
+
|
40
|
+
def process
|
41
|
+
ActiveRecord::Base.transaction do
|
42
|
+
instanciate_processor.process
|
43
|
+
self.processed_at = Time.zone.now
|
44
|
+
save!
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def processed?
|
49
|
+
processed_at.present?
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def instanciate_processor
|
55
|
+
processor_instancier.call(*processor_instancier_arguments)
|
56
|
+
end
|
57
|
+
|
58
|
+
def url_to_process
|
59
|
+
::EacRubyUtils::Yaml.load(url)
|
60
|
+
end
|
61
|
+
|
62
|
+
def processor_instancier
|
63
|
+
processor.constantize.method(:new)
|
64
|
+
end
|
65
|
+
|
66
|
+
def processor_instancier_arguments
|
67
|
+
if processor_instancier_arity == 2 || processor_instancier_arity.negative?
|
68
|
+
[url_to_process, EacRubyUtils::Yaml.load(extra_data)]
|
69
|
+
elsif processor_instancier_arity == 1
|
70
|
+
[processor_instancier.call(url_to_process)]
|
71
|
+
else
|
72
|
+
raise("#{processor}.initialize should has 1 or 2 or * arguments")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def processor_instancier_arity
|
77
|
+
processor.constantize.instance_method(:initialize).arity
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/yaml'
|
4
|
+
|
5
|
+
module Aranha
|
6
|
+
class ProcessorConfiguration < ::ActiveRecord::Base
|
7
|
+
DEFAULT_TIMEOUT = 12.hours
|
8
|
+
|
9
|
+
class << self
|
10
|
+
# @return [Enumerator<String>]
|
11
|
+
def processor_class_list
|
12
|
+
::Set.new(processor_class_list_from_addresses + processor_class_list_from_start_points)
|
13
|
+
.to_enum.sort
|
14
|
+
end
|
15
|
+
|
16
|
+
# @return [Hash<String, String>]
|
17
|
+
def processor_class_options
|
18
|
+
processor_class_list.map { |e| [e, e] }.to_h
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
# @return [Array<String>]
|
24
|
+
def processor_class_list_from_addresses
|
25
|
+
::Aranha::Address.distinct.pluck(:processor)
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [Array<String>]
|
29
|
+
def processor_class_list_from_start_points
|
30
|
+
::Aranha::StartPoint.processor_class_list.to_a
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
validates :processor_class, presence: true
|
35
|
+
validate :processor_class_in_list
|
36
|
+
validates :timeout_seconds, allow_blank: true,
|
37
|
+
numericality: { integer_only: true, greater_than_or_equal_to: 1 }
|
38
|
+
|
39
|
+
def processor_class_in_list
|
40
|
+
return if processor_class.blank?
|
41
|
+
return if self.class.processor_class_list.include?(processor_class)
|
42
|
+
|
43
|
+
errors.add(:processor_class, 'Not in list')
|
44
|
+
end
|
45
|
+
|
46
|
+
# @return [ActiveSupport::Duration]
|
47
|
+
def timeout
|
48
|
+
timeout_seconds.if_present(DEFAULT_TIMEOUT, &:seconds)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/yaml'
|
4
|
+
|
5
|
+
module Aranha
|
6
|
+
class StartPoint < ::ActiveRecord::Base
|
7
|
+
class << self
|
8
|
+
def add_processor_class(klass)
|
9
|
+
processor_class_list_var.add(klass.to_s)
|
10
|
+
end
|
11
|
+
|
12
|
+
def processor_class_list
|
13
|
+
processor_class_list_var.to_enum
|
14
|
+
end
|
15
|
+
|
16
|
+
def processor_class_options
|
17
|
+
processor_class_list.map { |e| [e, e] }.to_h
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def processor_class_list_var
|
23
|
+
@processor_class_list_var ||= Set.new
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
validates :uri, presence: true, uniqueness: true,
|
28
|
+
format: { with: ::URI::DEFAULT_PARSER.make_regexp }
|
29
|
+
validates :processor_class, presence: true
|
30
|
+
validate :processor_class_in_list
|
31
|
+
|
32
|
+
def extra_data
|
33
|
+
extra_data_yaml.nil? ? nil : ::EacRubyUtils::Yaml.load(extra_data_yaml)
|
34
|
+
end
|
35
|
+
|
36
|
+
def extra_data=(value)
|
37
|
+
self.extra_data_yaml = ::EacRubyUtils::Yaml.dump(value)
|
38
|
+
end
|
39
|
+
|
40
|
+
def processor_class_in_list
|
41
|
+
return if processor_class.blank?
|
42
|
+
return if self.class.processor_class_list.include?(processor_class)
|
43
|
+
|
44
|
+
errors.add(:processor_class, 'Not in list')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
en:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
aranha/address:
|
5
|
+
one: Aranha address
|
6
|
+
other: Aranha addresses
|
7
|
+
aranha/processor_configuration:
|
8
|
+
one: Aranha processor configuration
|
9
|
+
other: Aranha processors configurations
|
10
|
+
aranha/start_point:
|
11
|
+
one: Aranha start point
|
12
|
+
other: Aranha start points
|
@@ -0,0 +1,12 @@
|
|
1
|
+
pt-BR:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
aranha/address:
|
5
|
+
one: Endereço Aranha
|
6
|
+
other: Endereços Aranha
|
7
|
+
aranha/processor_configuration:
|
8
|
+
one: Configuração de processador Aranha
|
9
|
+
other: Configuração de processadores Aranha
|
10
|
+
aranha/start_point:
|
11
|
+
one: Ponto de Partida Aranha
|
12
|
+
other: Pontos de Partida Aranha
|
data/config/routes.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateAranhaAddresses < (
|
4
|
+
Rails.version < '5' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
|
5
|
+
)
|
6
|
+
def change
|
7
|
+
create_table :aranha_addresses do |t|
|
8
|
+
t.string :url
|
9
|
+
t.string :processor
|
10
|
+
t.timestamp :processed_at
|
11
|
+
|
12
|
+
t.timestamps null: false
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateAranhaStartPoints < ActiveRecord::Migration[5.1]
|
4
|
+
def change
|
5
|
+
create_table :aranha_start_points do |t|
|
6
|
+
t.string :uri
|
7
|
+
t.string :processor_class
|
8
|
+
t.string :extra_data_yaml
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateAranhaProcessorConfigurations < ActiveRecord::Migration[5.1]
|
4
|
+
def change
|
5
|
+
create_table :aranha_processor_configurations do |t|
|
6
|
+
t.string :processor_class
|
7
|
+
t.integer :timeout_seconds, null: true
|
8
|
+
|
9
|
+
t.timestamps null: false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/aranha/rails/engine.rb
CHANGED
data/lib/aranha/rails/manager.rb
CHANGED
data/lib/aranha/rails/version.rb
CHANGED
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,63 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aranha-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.3
|
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: 2021-
|
11
|
+
date: 2021-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: aranha
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 3.5.5
|
19
|
+
version: '0.15'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 3.5.5
|
26
|
+
version: '0.15'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
|
-
name: aranha
|
28
|
+
name: aranha-parsers
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
31
|
- - "~>"
|
38
32
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
33
|
+
version: '0.6'
|
40
34
|
type: :runtime
|
41
35
|
prerelease: false
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
43
37
|
requirements:
|
44
38
|
- - "~>"
|
45
39
|
- !ruby/object:Gem::Version
|
46
|
-
version: '0.
|
40
|
+
version: '0.6'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
42
|
+
name: eac_active_scaffold
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
45
|
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '0.
|
47
|
+
version: '0.1'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
52
|
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: '0.
|
54
|
+
version: '0.1'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
56
|
name: eac_rails_delayed_job
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,42 +104,68 @@ dependencies:
|
|
110
104
|
name: rails
|
111
105
|
requirement: !ruby/object:Gem::Requirement
|
112
106
|
requirements:
|
113
|
-
- - "
|
107
|
+
- - ">="
|
114
108
|
- !ruby/object:Gem::Version
|
115
109
|
version: 5.1.7
|
110
|
+
- - "<"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '6'
|
116
113
|
type: :runtime
|
117
114
|
prerelease: false
|
118
115
|
version_requirements: !ruby/object:Gem::Requirement
|
119
116
|
requirements:
|
120
|
-
- - "
|
117
|
+
- - ">="
|
121
118
|
- !ruby/object:Gem::Version
|
122
119
|
version: 5.1.7
|
120
|
+
- - "<"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '6'
|
123
123
|
- !ruby/object:Gem::Dependency
|
124
124
|
name: eac_ruby_gem_support
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
127
|
- - "~>"
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: '0.
|
130
|
-
- - ">="
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: 0.3.1
|
129
|
+
version: '0.4'
|
133
130
|
type: :development
|
134
131
|
prerelease: false
|
135
132
|
version_requirements: !ruby/object:Gem::Requirement
|
136
133
|
requirements:
|
137
134
|
- - "~>"
|
138
135
|
- !ruby/object:Gem::Version
|
139
|
-
version: '0.
|
140
|
-
- - ">="
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
version: 0.3.1
|
136
|
+
version: '0.4'
|
143
137
|
description:
|
144
138
|
email:
|
145
139
|
executables: []
|
146
140
|
extensions: []
|
147
141
|
extra_rdoc_files: []
|
148
142
|
files:
|
143
|
+
- ".rspec"
|
144
|
+
- ".rubocop.yml"
|
145
|
+
- Gemfile
|
146
|
+
- app/assets/javascripts/aranha/application.js
|
147
|
+
- app/assets/stylesheets/aranha/application.css
|
148
|
+
- app/controllers/aranha/addresses_controller.rb
|
149
|
+
- app/controllers/aranha/processor_configurations_controller.rb
|
150
|
+
- app/controllers/aranha/start_points_controller.rb
|
151
|
+
- app/models/aranha/address.rb
|
152
|
+
- app/models/aranha/address/delayed_job.rb
|
153
|
+
- app/models/aranha/address/processor.rb
|
154
|
+
- app/models/aranha/address/scheduling.rb
|
155
|
+
- app/models/aranha/processor_configuration.rb
|
156
|
+
- app/models/aranha/start_point.rb
|
157
|
+
- config/initializers/aranha.rb
|
158
|
+
- config/locales/en.yml
|
159
|
+
- config/locales/pt-BR.yml
|
160
|
+
- config/routes.rb
|
161
|
+
- db/migrate/20171201021251_create_aranha_addresses.rb
|
162
|
+
- db/migrate/20181125042102_add_extra_data_to_aranha_addresses.rb
|
163
|
+
- db/migrate/20201128202212_create_aranha_start_points.rb
|
164
|
+
- db/migrate/20210720023620_add_delayed_job_to_aranha_addresses.rb
|
165
|
+
- db/migrate/20210721171416_add_tries_count_to_aranha_addresses.rb
|
166
|
+
- db/migrate/20210721185222_add_last_error_to_aranha_addresses.rb
|
167
|
+
- db/migrate/20210814220540_create_aranha_processor_configurations.rb
|
168
|
+
- db/migrate/20210815160543_add_enabled_to_aranha_processor_configurations.rb
|
149
169
|
- lib/aranha/rails.rb
|
150
170
|
- lib/aranha/rails/engine.rb
|
151
171
|
- lib/aranha/rails/fixtures_download.rb
|
@@ -154,6 +174,8 @@ files:
|
|
154
174
|
- lib/aranha/rails/process.rb
|
155
175
|
- lib/aranha/rails/version.rb
|
156
176
|
- lib/tasks/aranha.rake
|
177
|
+
- spec/rubocop_spec.rb
|
178
|
+
- spec/spec_helper.rb
|
157
179
|
homepage:
|
158
180
|
licenses: []
|
159
181
|
metadata: {}
|
@@ -176,4 +198,9 @@ rubygems_version: 3.1.6
|
|
176
198
|
signing_key:
|
177
199
|
specification_version: 4
|
178
200
|
summary: Put here de description.
|
179
|
-
test_files:
|
201
|
+
test_files:
|
202
|
+
- spec/rubocop_spec.rb
|
203
|
+
- spec/spec_helper.rb
|
204
|
+
- ".rspec"
|
205
|
+
- Gemfile
|
206
|
+
- ".rubocop.yml"
|