aranha-rails 0.5.0 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.rubocop.yml +25 -0
  4. data/Gemfile +5 -0
  5. data/app/assets/javascripts/aranha/application.js +2 -0
  6. data/app/assets/stylesheets/aranha/application.css +5 -0
  7. data/app/controllers/aranha/addresses_controller.rb +8 -0
  8. data/app/controllers/aranha/processor_configurations_controller.rb +16 -0
  9. data/app/controllers/aranha/start_points_controller.rb +16 -0
  10. data/app/models/aranha/address/delayed_job.rb +39 -0
  11. data/app/models/aranha/address/processor.rb +24 -0
  12. data/app/models/aranha/address/scheduling.rb +49 -0
  13. data/app/models/aranha/address.rb +80 -0
  14. data/app/models/aranha/processor_configuration.rb +51 -0
  15. data/app/models/aranha/start_point.rb +47 -0
  16. data/config/initializers/aranha.rb +5 -0
  17. data/config/locales/en.yml +12 -0
  18. data/config/locales/pt-BR.yml +12 -0
  19. data/config/routes.rb +7 -0
  20. data/db/migrate/20171201021251_create_aranha_addresses.rb +15 -0
  21. data/db/migrate/20181125042102_add_extra_data_to_aranha_addresses.rb +9 -0
  22. data/db/migrate/20201128202212_create_aranha_start_points.rb +13 -0
  23. data/db/migrate/20210720023620_add_delayed_job_to_aranha_addresses.rb +7 -0
  24. data/db/migrate/20210721171416_add_tries_count_to_aranha_addresses.rb +7 -0
  25. data/db/migrate/20210721185222_add_last_error_to_aranha_addresses.rb +7 -0
  26. data/db/migrate/20210814220540_create_aranha_processor_configurations.rb +12 -0
  27. data/db/migrate/20210815160543_add_enabled_to_aranha_processor_configurations.rb +7 -0
  28. data/lib/aranha/rails/engine.rb +1 -1
  29. data/lib/aranha/rails/manager.rb +3 -3
  30. data/lib/aranha/rails/version.rb +1 -1
  31. data/spec/rubocop_spec.rb +3 -0
  32. data/spec/spec_helper.rb +4 -0
  33. metadata +53 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49f04cc5c0a957bc1aec7617dc1a6e736d860d80905afa04844587b8c57dd2bd
4
- data.tar.gz: 18c6a92f2c28731b7224ea7a99a3521c684c56e33446f29601fcab4bf2de3a68
3
+ metadata.gz: a2f81d25c96765dabe391eba3b55e7e41ba034f7e0c513f9c3e3d41e324b6a84
4
+ data.tar.gz: 1b17888a4c5ba75da243691599f99c48c1fcd403922650af9402770854e48df4
5
5
  SHA512:
6
- metadata.gz: a0cf36bd155c0ccdea28701d96d385eb28d3e80a09a9a37e273b1b372f1598c27030a89d040492a707eefea98caf043972e86dc00b90e68f034cb60ef0cd59ab
7
- data.tar.gz: 7947c879299d9ee6f0104fe7b6577a8ecc544f6bbccb59cc92f3799b951b98c2f8cd1fc7579b348d69eaa3780f70399008b901a196b42a00a15a7394bb85a2f8
6
+ metadata.gz: b50cda8b00fdd6408787ec8c115de71b202751aaa472d005711b2c4f47f52851a9711a87db4d60afcf584438132b98073b15b3958e82fcad0dfe73e343b0f579
7
+ data.tar.gz: 82640e9f247086ff8c47c66c68cdc90629e76dbbadeb828829da43531f845f985bca13f1427c708db0aa763ee85892e5ce94a5e503bc37c25cc740535faa5b4e
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,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
@@ -0,0 +1,2 @@
1
+ //= require_tree .
2
+ //= require eac_active_scaffold
@@ -0,0 +1,5 @@
1
+ /*
2
+ *= require_tree .
3
+ *= require_self
4
+ *= require eac_active_scaffold
5
+ */
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aranha
4
+ class AddressesController < ::ApplicationController
5
+ active_scaffold :'aranha/address' do |_conf|
6
+ end
7
+ end
8
+ end
@@ -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,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'aranha/rails/manager'
4
+
5
+ ::Aranha::Manager.default = ::Aranha::Rails::Manager.instance
@@ -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,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ ::Aranha::Rails::Engine.routes.draw do
4
+ resources(:addresses, concerns: active_scaffold)
5
+ resources(:processor_configurations, concerns: active_scaffold)
6
+ resources(:start_points, concerns: active_scaffold)
7
+ end
@@ -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,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddExtraDataToAranhaAddresses < (
4
+ Rails.version < '5' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
5
+ )
6
+ def change
7
+ add_column :aranha_addresses, :extra_data, :text
8
+ end
9
+ 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,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddDelayedJobToAranhaAddresses < ActiveRecord::Migration[5.1]
4
+ def change
5
+ add_reference :aranha_addresses, :delayed_job, foreign_key: false
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddTriesCountToAranhaAddresses < ActiveRecord::Migration[5.1]
4
+ def change
5
+ add_column :aranha_addresses, :tries_count, :integer, null: false, default: 0
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddLastErrorToAranhaAddresses < ActiveRecord::Migration[5.1]
4
+ def change
5
+ add_column :aranha_addresses, :last_error, :text
6
+ end
7
+ 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
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddEnabledToAranhaProcessorConfigurations < ActiveRecord::Migration[5.1]
4
+ def change
5
+ add_column :aranha_processor_configurations, :enabled, :boolean, default: true, null: false
6
+ end
7
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_scaffold'
3
+ require 'eac_active_scaffold'
4
4
  require 'eac_rails_delayed_job/engine'
5
5
 
6
6
  module Aranha
@@ -22,9 +22,9 @@ module Aranha
22
22
  end
23
23
 
24
24
  def clear_expired_addresses
25
- q = ::Aranha::Address.by_created_at_lt(Time.zone.now - 12.hours)
25
+ q = ::Aranha::Address.expired(::Time.zone.now)
26
26
  ::Rails.logger.info("Addresses expired: #{q.count}")
27
- q.destroy_all
27
+ q.each(&:destroy)
28
28
  end
29
29
 
30
30
  def log_info(message)
@@ -43,7 +43,7 @@ module Aranha
43
43
  end
44
44
 
45
45
  def unprocessed_addresses
46
- ::Aranha::Address.unprocessed
46
+ ::Aranha::Address.all.select(&:schedule?)
47
47
  end
48
48
  end
49
49
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Aranha
4
4
  module Rails
5
- VERSION = '0.5.0'
5
+ VERSION = '0.7.2'
6
6
  end
7
7
  end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ ::EacRubyUtils::Rspec.default_setup.describe_rubocop
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/rspec/default_setup'
4
+ ::EacRubyUtils::Rspec.default_setup_create(::File.expand_path('..', __dir__))
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.5.0
4
+ version: 0.7.2
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-08-08 00:00:00.000000000 Z
11
+ date: 2021-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: active_scaffold
14
+ name: aranha
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.5'
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: '3.5'
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.15'
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.15'
40
+ version: '0.6'
47
41
  - !ruby/object:Gem::Dependency
48
- name: aranha-parsers
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.6'
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.6'
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,16 +104,22 @@ 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
@@ -146,6 +146,32 @@ executables: []
146
146
  extensions: []
147
147
  extra_rdoc_files: []
148
148
  files:
149
+ - ".rspec"
150
+ - ".rubocop.yml"
151
+ - Gemfile
152
+ - app/assets/javascripts/aranha/application.js
153
+ - app/assets/stylesheets/aranha/application.css
154
+ - app/controllers/aranha/addresses_controller.rb
155
+ - app/controllers/aranha/processor_configurations_controller.rb
156
+ - app/controllers/aranha/start_points_controller.rb
157
+ - app/models/aranha/address.rb
158
+ - app/models/aranha/address/delayed_job.rb
159
+ - app/models/aranha/address/processor.rb
160
+ - app/models/aranha/address/scheduling.rb
161
+ - app/models/aranha/processor_configuration.rb
162
+ - app/models/aranha/start_point.rb
163
+ - config/initializers/aranha.rb
164
+ - config/locales/en.yml
165
+ - config/locales/pt-BR.yml
166
+ - config/routes.rb
167
+ - db/migrate/20171201021251_create_aranha_addresses.rb
168
+ - db/migrate/20181125042102_add_extra_data_to_aranha_addresses.rb
169
+ - db/migrate/20201128202212_create_aranha_start_points.rb
170
+ - db/migrate/20210720023620_add_delayed_job_to_aranha_addresses.rb
171
+ - db/migrate/20210721171416_add_tries_count_to_aranha_addresses.rb
172
+ - db/migrate/20210721185222_add_last_error_to_aranha_addresses.rb
173
+ - db/migrate/20210814220540_create_aranha_processor_configurations.rb
174
+ - db/migrate/20210815160543_add_enabled_to_aranha_processor_configurations.rb
149
175
  - lib/aranha/rails.rb
150
176
  - lib/aranha/rails/engine.rb
151
177
  - lib/aranha/rails/fixtures_download.rb
@@ -154,6 +180,8 @@ files:
154
180
  - lib/aranha/rails/process.rb
155
181
  - lib/aranha/rails/version.rb
156
182
  - lib/tasks/aranha.rake
183
+ - spec/rubocop_spec.rb
184
+ - spec/spec_helper.rb
157
185
  homepage:
158
186
  licenses: []
159
187
  metadata: {}
@@ -176,4 +204,9 @@ rubygems_version: 3.1.6
176
204
  signing_key:
177
205
  specification_version: 4
178
206
  summary: Put here de description.
179
- test_files: []
207
+ test_files:
208
+ - spec/rubocop_spec.rb
209
+ - spec/spec_helper.rb
210
+ - ".rspec"
211
+ - Gemfile
212
+ - ".rubocop.yml"