monitorsys-tortoise 0.1.0 → 0.1.1

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: a22b515d2230d4ac946ff83c32959e1134c75fdc195d8f0cef84bdb996188094
4
- data.tar.gz: ca75ae43d89a6269ca8ac0b0c141f1c31d3560d44398f0829428fb5e0e5629be
3
+ metadata.gz: 24fa5667336b7e80ae1b10d2e19fd0a04074c9518ceb88f589ce42fed72cccfb
4
+ data.tar.gz: eebcab7a46f1519cb23e3b9203daef3bba56d6be1ee92ab32b5150c1fc6ccd42
5
5
  SHA512:
6
- metadata.gz: b8dd9736b5ae0aec278e9956ac467ac692b250807314653dcb20fb76dfda0a74a319d864752c60bc023109cbb73cd578bc9847791e191c9d2bd97ffea406da0b
7
- data.tar.gz: 5800935537a43d9018965d222565a6af0415626a7e48023cad1eab9c541d2a779789098e509ab820b33248b7d4b677d0a54c76df58afcd7484cbd11d320b2241
6
+ metadata.gz: 05e751c10c22d0c6d07ce3585123011dd6c634b87d5420ee1f7a87e53b989196e63b09998d5dd0d61cf64564c2565bb485011c81d2275b3e464a79bf29d8ba26
7
+ data.tar.gz: 37c598d3ce0efc914c76f2030d5fc88e7477a96cc126ac71d14e91feda19a73aea7e72176e8ac7ed892b5e267ff9df86ecc162cf4bc1bf2d2973877fd4fecf25
data/.gitignore CHANGED
@@ -6,5 +6,4 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
- /bin/setup
10
9
  tortoise_production
@@ -1,10 +1,30 @@
1
1
  module Tortoise
2
2
  class UploadJob
3
- def perform(invoice_id, delay=0)
3
+ attr_reader :invoice_id
4
+
5
+ def initialize(invoice_id)
6
+ @invoice_id = invoice_id
7
+ end
8
+
9
+ def perform_now
10
+ process
11
+ end
12
+
13
+ def perform_in(delay=0)
4
14
  Thread.new do
5
15
  sleep delay
6
16
 
7
- invoice = Tortoise::Invoice.find(invoice_id)
17
+ process
18
+ end
19
+ end
20
+
21
+ def perform
22
+ perform_in
23
+ end
24
+
25
+ private
26
+
27
+ def process
8
28
  invoice.update(status: Invoice::STARTED)
9
29
 
10
30
  begin
@@ -19,12 +39,13 @@ module Tortoise
19
39
 
20
40
  invoice.update(status: Invoice::FAILED)
21
41
 
22
- UploadJob.new.perform(invoice.id, configuration.default_retry_time)
42
+ UploadJob.new(invoice.id).perform_in(configuration.default_retry_time)
23
43
  end
24
44
  end
25
- end
26
45
 
27
- private
46
+ def invoice
47
+ @invoice ||= Tortoise::Invoice.find(invoice_id)
48
+ end
28
49
 
29
50
  def api_helper
30
51
  @api_helper ||= Tortoise::ApiHelper.new
@@ -1,20 +1,21 @@
1
1
  module Tortoise
2
2
  class BulkLoader
3
- attr_reader :files
3
+ attr_reader :files, :async
4
4
 
5
- def initialize(files)
5
+ def initialize(files, async: true)
6
6
  @files = files
7
+ @async = async
7
8
  end
8
9
 
9
- def self.load(files)
10
- new(files).load
10
+ def self.load(files, async: true)
11
+ new(files, async: async).load
11
12
  rescue StandardError => e
12
13
  Honeybadger.notify(e) unless ENV['HONEYBADGER_API_KEY'].to_s.empty?
13
14
  end
14
15
 
15
16
  def load
16
17
  files.each do |file|
17
- Tortoise::Loader.load(file)
18
+ Tortoise::Loader.load(file, async: async)
18
19
  end
19
20
  end
20
21
  end
@@ -3,7 +3,7 @@ module Tortoise
3
3
  def load
4
4
  return if directories.empty?
5
5
 
6
- Tortoise::BulkLoader.load(files)
6
+ Tortoise::BulkLoader.load(files, async: false)
7
7
  end
8
8
 
9
9
  private
@@ -1,23 +1,32 @@
1
1
  module Tortoise
2
2
  class Loader
3
- attr_reader :file
3
+ attr_reader :file, :async
4
4
 
5
- def initialize(file)
5
+ def initialize(file, async: true)
6
6
  @file = file
7
+ @async = async
7
8
  end
8
9
 
9
- def self.load(file)
10
- new(file).load
10
+ def self.load(file, async: true)
11
+ new(file, async: async).load
11
12
  end
12
13
 
13
14
  def load
14
15
  return if exists?
15
16
 
16
- Tortoise::UploadJob.new.perform(invoice.id)
17
+ upload_job.try(job_method)
17
18
  end
18
19
 
19
20
  private
20
21
 
22
+ def upload_job
23
+ Tortoise::UploadJob.new(invoice.id)
24
+ end
25
+
26
+ def job_method
27
+ async ? :perform : :perform_now
28
+ end
29
+
21
30
  def invoice
22
31
  @invoice ||= Tortoise::Invoice.create!(file: file, status: Invoice::STARTED)
23
32
  end
@@ -1,3 +1,3 @@
1
1
  module Tortoise
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monitorsys-tortoise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - João Mangilli
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-09 00:00:00.000000000 Z
11
+ date: 2021-01-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -22,7 +22,6 @@ files:
22
22
  - Gemfile.lock
23
23
  - README.md
24
24
  - Rakefile
25
- - bin/console
26
25
  - config/sqllite3.rb
27
26
  - lib/tasks/migrate.rake
28
27
  - lib/tortoise.rb
@@ -38,6 +37,7 @@ files:
38
37
  - lib/tortoise/services/listener.rb
39
38
  - lib/tortoise/services/loader.rb
40
39
  - lib/tortoise/version.rb
40
+ - monitorsys-tortoise-0.1.0.gem
41
41
  - tortoise.gemspec
42
42
  homepage: http://monitorsys.com.br
43
43
  licenses: []
@@ -1,43 +0,0 @@
1
- require 'bundler/setup'
2
- require 'irb'
3
- require 'tortoise'
4
- require 'io/console'
5
-
6
- def get_response(answer, default: nil, password: false)
7
- puts "#{answer} (#{default || 'n/a'}): "
8
- chomp(password).presence || default
9
- end
10
-
11
- def chomp(password)
12
- password ? STDIN.noecho(&:gets).chomp : gets.chomp
13
- end
14
-
15
- def create_directory
16
- Tortoise::Directory.create!(folder_path: get_response('Digite o diretorio da pasta'))
17
-
18
- create_directory if get_response('Deseja cadastrar outro diretorio?(S/N)').to_s.upcase == 'S'
19
- end
20
-
21
- def create_configuration
22
- Tortoise::Configuration.create!(
23
- api_path: ENV['TORTOISE_API_PATH'].to_s.strip,
24
- token_path: ENV['TORTOISE_TOKEN_PATH'].to_s.strip,
25
- upload_path: ENV['TORTOISE_UPLOAD_PATH'].to_s.strip,
26
- public_informations_path: ENV['TORTOISE_PUBLIC_INFORMATIONS_PATH'].to_s.strip,
27
- user: get_response('Digite o usuario'),
28
- password: get_response('Digite a senha', password: true),
29
- retry_time: ENV['TORTOISE_RETRY_TIME'].to_s.strip,
30
- app_user: ENV['TORTOISE_APP_USER'].to_s.strip,
31
- app_password: ENV['TORTOISE_APP_PASSWORD'].to_s.strip
32
- )
33
-
34
- Tortoise::InitialLoader.new.load
35
- end
36
-
37
- create_directory unless Tortoise::Configuration.exists?
38
- create_configuration unless Tortoise::Configuration.exists?
39
-
40
- Tortoise::Listener.new.start
41
-
42
- # IRB.start(__FILE__)
43
- sleep