active_job_log 0.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +104 -0
- data/.circleci/setup-rubygems.sh +3 -0
- data/.rubocop.yml +65 -600
- data/.ruby-version +1 -1
- data/CHANGELOG.md +25 -0
- data/Gemfile.lock +170 -154
- data/LICENSE.txt +1 -1
- data/README.md +15 -4
- data/active_job_log.gemspec +7 -5
- data/db/migrate/20180511184635_create_active_job_log_jobs.rb +1 -1
- data/lib/active_job_log/engine.rb +1 -0
- data/lib/active_job_log/log_ext.rb +1 -1
- data/lib/active_job_log/loggeable.rb +75 -0
- data/lib/active_job_log/version.rb +1 -1
- data/lib/generators/active_job_log/install/install_generator.rb +4 -0
- data/lib/generators/active_job_log/install/templates/job_model.rb +5 -0
- data/spec/dummy/Rakefile +1 -1
- data/spec/dummy/app/assets/config/manifest.js +0 -2
- data/spec/dummy/app/controllers/application_controller.rb +0 -1
- data/spec/dummy/app/{assets/javascripts → javascript/packs}/application.js +2 -0
- data/spec/dummy/app/jobs/application_job.rb +5 -0
- data/spec/dummy/app/models/active_job_log/job.rb +5 -0
- data/spec/dummy/app/views/layouts/application.html.erb +3 -2
- data/spec/dummy/bin/rails +2 -2
- data/spec/dummy/bin/rake +2 -2
- data/spec/dummy/bin/setup +7 -12
- data/spec/dummy/config.ru +2 -1
- data/spec/dummy/config/application.rb +12 -17
- data/spec/dummy/config/boot.rb +1 -1
- data/spec/dummy/config/cable.yml +2 -2
- data/spec/dummy/config/database.yml +1 -1
- data/spec/dummy/config/environment.rb +1 -1
- data/spec/dummy/config/environments/development.rb +28 -6
- data/spec/dummy/config/environments/production.rb +45 -16
- data/spec/dummy/config/environments/test.rb +24 -7
- data/spec/dummy/config/initializers/assets.rb +0 -2
- data/spec/dummy/config/initializers/backtrace_silencers.rb +4 -3
- data/spec/dummy/config/initializers/content_security_policy.rb +28 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +3 -1
- data/spec/dummy/config/initializers/permissions_policy.rb +11 -0
- data/spec/dummy/config/locales/en.yml +1 -1
- data/spec/dummy/config/puma.rb +14 -27
- data/spec/dummy/config/storage.yml +34 -0
- data/spec/dummy/db/schema.rb +1 -1
- data/spec/factories/active_job_log_jobs.rb +2 -2
- data/spec/lib/active_job_log/log_ext_spec.rb +3 -6
- metadata +54 -31
- data/.hound.yml +0 -4
- data/.travis.yml +0 -15
- data/Guardfile +0 -15
- data/app/models/active_job_log/job.rb +0 -72
- data/spec/dummy/app/assets/javascripts/cable.js +0 -13
- data/spec/dummy/bin/bundle +0 -3
- data/spec/dummy/bin/update +0 -29
- data/spec/dummy/bin/yarn +0 -11
- data/spec/dummy/config/secrets.yml +0 -32
- data/spec/dummy/config/spring.rb +0 -6
data/.hound.yml
DELETED
data/.travis.yml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
language: ruby
|
3
|
-
rvm:
|
4
|
-
- 2.3.1
|
5
|
-
script:
|
6
|
-
- RAILS_ENV=test bundle exec rake db:create db:migrate
|
7
|
-
- bundle exec rspec spec
|
8
|
-
deploy:
|
9
|
-
provider: rubygems
|
10
|
-
api_key:
|
11
|
-
secure: jdniKr5kUszQJ1fATVM/1ChmvMMlYQovbPlrUZwxrKxV856qD6pvajhRCT7hJF9KIK7UIi5VEdFdjNKZhsztBIwpYwzmt4IsxiSOgXjDar2kH7Qer213Jx3tgWnu3NsbjBQy2l+QgefLnaxJEtxg3EFNNnD2/XInPhWrV8SRgn5YFPsyRNCXwLYAIMrZgeummKcpp3MeGXLt385sAJzgmQLaZjg2yyC7fbQ1Hh0ib/oU+6amfJV4aDRREWOdboxH+/c/FvNhT/P5lcZvNi/EGbkkG9OLWUguwcchE/vRBDosKWhx2mUqaBYwDet0eEbyNYfYMcaFB5/SjWLI+u0+ZKZ3oKQ+DKwQrWTPVBV6rPPpDrOOeEwQ0CnSpuoTCPJTCGPZCd0kk9O9k509+xQ479+Zo3BdkCREpk4fMKiH/2nNqU1o+lpzYNnnzeWjC5SLuJhxuUxuGEAhHyYK3rX3lL/ldxUp3TrcDfQ0fXMi5y7GM9QjYG6Z6gWP2S2e2J8tbjN3JfJM2iy3oHgFnoIHduu+phZYRsfMuN4vzFVJ8MN+Y651He6FHXq/pX9JXIbR/lZMPPITi+Tk2Rsmn+KFSYRpd1Ne2g8ZwGYPKeQt5xGcitGwpKPpLQlINpbqwDDaFo22tO68gVCBdiVboELz0pvexvzPOllKsPFDh4JhFhg=
|
12
|
-
gem: active_job_log
|
13
|
-
on:
|
14
|
-
tags: true
|
15
|
-
repo: platanus/active_job_log
|
data/Guardfile
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
guard :rspec, cmd: "bundle exec rspec" do
|
2
|
-
spec_dic = "spec/dummy/spec"
|
3
|
-
# RSpec files
|
4
|
-
watch("spec/spec_helper.rb") { spec_dic }
|
5
|
-
watch("spec/rails_helper.rb") { spec_dic }
|
6
|
-
watch(%r{^spec\/dummy\/spec\/support\/(.+)\.rb$}) { spec_dic }
|
7
|
-
watch(%r{^spec\/dummy\/spec\/.+_spec\.rb$})
|
8
|
-
# Engine files
|
9
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/dummy/spec/lib/#{m[1]}_spec.rb" }
|
10
|
-
watch(%r{^app/(.+)\.rb$}) { |m| "spec/dummy/spec/#{m[1]}_spec.rb" }
|
11
|
-
watch(%r{^app/(.*)(\.erb)$}) { |m| "spec/dummy/spec/#{m[1]}#{m[2]}_spec.rb" }
|
12
|
-
# Dummy app files
|
13
|
-
watch(%r{^spec\/dummy\/app/(.+)\.rb$}) { |m| "spec/dummy/spec/#{m[1]}_spec.rb" }
|
14
|
-
watch(%r{^spec\/dummy\/app/(.*)(\.erb)$}) { |m| "spec/dummy/spec/#{m[1]}#{m[2]}_spec.rb" }
|
15
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
module ActiveJobLog
|
2
|
-
class Job < ApplicationRecord
|
3
|
-
extend Enumerize
|
4
|
-
|
5
|
-
STATUSES = %i{queued pending finished failed}
|
6
|
-
|
7
|
-
validates :job_id, presence: true
|
8
|
-
|
9
|
-
enumerize :status, in: STATUSES, scope: true
|
10
|
-
|
11
|
-
serialize :params, Array
|
12
|
-
serialize :stack_trace, Array
|
13
|
-
|
14
|
-
before_save :set_queued_duration
|
15
|
-
before_save :set_execution_duration
|
16
|
-
before_save :set_total_duration
|
17
|
-
|
18
|
-
def self.update_job!(job_id, status, params = {})
|
19
|
-
params.merge!(status_to_params(status))
|
20
|
-
job = find_or_create_job(job_id)
|
21
|
-
job.update_attributes!(params)
|
22
|
-
job
|
23
|
-
end
|
24
|
-
|
25
|
-
class << self
|
26
|
-
private
|
27
|
-
|
28
|
-
def find_or_create_job(job_id)
|
29
|
-
Job.where(job_id: job_id).where.not(status: :failed).last || Job.create(job_id: job_id)
|
30
|
-
end
|
31
|
-
|
32
|
-
def status_to_params(status)
|
33
|
-
time_attr = infer_duration_attr_from_status(status)
|
34
|
-
{
|
35
|
-
time_attr => DateTime.current,
|
36
|
-
status: status
|
37
|
-
}
|
38
|
-
end
|
39
|
-
|
40
|
-
def infer_duration_attr_from_status(status)
|
41
|
-
case status
|
42
|
-
when :queued
|
43
|
-
:queued_at
|
44
|
-
when :pending
|
45
|
-
:started_at
|
46
|
-
when :finished, :failed
|
47
|
-
:ended_at
|
48
|
-
else
|
49
|
-
fail "invalid status"
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
private
|
55
|
-
|
56
|
-
def set_queued_duration
|
57
|
-
return if queued_at.blank? || started_at.blank?
|
58
|
-
self.queued_duration = (started_at.to_f - queued_at.to_f).to_i
|
59
|
-
end
|
60
|
-
|
61
|
-
def set_execution_duration
|
62
|
-
return if started_at.blank? || ended_at.blank?
|
63
|
-
self.execution_duration = (ended_at.to_f - started_at.to_f).to_i
|
64
|
-
end
|
65
|
-
|
66
|
-
def set_total_duration
|
67
|
-
from = queued_at || started_at
|
68
|
-
return if from.blank? || ended_at.blank?
|
69
|
-
self.total_duration = (ended_at.to_f - from.to_f).to_i
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// Action Cable provides the framework to deal with WebSockets in Rails.
|
2
|
-
// You can generate new channels where WebSocket features live using the `rails generate channel` command.
|
3
|
-
//
|
4
|
-
//= require action_cable
|
5
|
-
//= require_self
|
6
|
-
//= require_tree ./channels
|
7
|
-
|
8
|
-
(function() {
|
9
|
-
this.App || (this.App = {});
|
10
|
-
|
11
|
-
App.cable = ActionCable.createConsumer();
|
12
|
-
|
13
|
-
}).call(this);
|
data/spec/dummy/bin/bundle
DELETED
data/spec/dummy/bin/update
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'pathname'
|
3
|
-
require 'fileutils'
|
4
|
-
include FileUtils
|
5
|
-
|
6
|
-
# path to your application root.
|
7
|
-
APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
|
8
|
-
|
9
|
-
def system!(*args)
|
10
|
-
system(*args) || abort("\n== Command #{args} failed ==")
|
11
|
-
end
|
12
|
-
|
13
|
-
chdir APP_ROOT do
|
14
|
-
# This script is a way to update your development environment automatically.
|
15
|
-
# Add necessary update steps to this file.
|
16
|
-
|
17
|
-
puts '== Installing dependencies =='
|
18
|
-
system! 'gem install bundler --conservative'
|
19
|
-
system('bundle check') || system!('bundle install')
|
20
|
-
|
21
|
-
puts "\n== Updating database =="
|
22
|
-
system! 'bin/rails db:migrate'
|
23
|
-
|
24
|
-
puts "\n== Removing old logs and tempfiles =="
|
25
|
-
system! 'bin/rails log:clear tmp:clear'
|
26
|
-
|
27
|
-
puts "\n== Restarting application server =="
|
28
|
-
system! 'bin/rails restart'
|
29
|
-
end
|
data/spec/dummy/bin/yarn
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
VENDOR_PATH = File.expand_path('..', __dir__)
|
3
|
-
Dir.chdir(VENDOR_PATH) do
|
4
|
-
begin
|
5
|
-
exec "yarnpkg #{ARGV.join(" ")}"
|
6
|
-
rescue Errno::ENOENT
|
7
|
-
$stderr.puts "Yarn executable was not detected in the system."
|
8
|
-
$stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
|
9
|
-
exit 1
|
10
|
-
end
|
11
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
# Your secret key is used for verifying the integrity of signed cookies.
|
4
|
-
# If you change this key, all old signed cookies will become invalid!
|
5
|
-
|
6
|
-
# Make sure the secret is at least 30 characters and all random,
|
7
|
-
# no regular words or you'll be exposed to dictionary attacks.
|
8
|
-
# You can use `rails secret` to generate a secure secret key.
|
9
|
-
|
10
|
-
# Make sure the secrets in this file are kept private
|
11
|
-
# if you're sharing your code publicly.
|
12
|
-
|
13
|
-
# Shared secrets are available across all environments.
|
14
|
-
|
15
|
-
# shared:
|
16
|
-
# api_key: a1B2c3D4e5F6
|
17
|
-
|
18
|
-
# Environmental secrets are only available for that specific environment.
|
19
|
-
|
20
|
-
development:
|
21
|
-
secret_key_base: c867a79e6f64110df1a01c88c47dc3befd72e8500c8a9046099ff6cef38833d86db8aec82fcd159b92b59e0375f58c25ca5dd0cadb48200ddcaa075e29c0b123
|
22
|
-
|
23
|
-
test:
|
24
|
-
secret_key_base: aeee55447e9d40371d6ca771089900debcb02c51f2b7f5e1d7392ca1954991f23e3e7ee0c1f2314cc7d6d424c03eeb2fdd3698cae64f8c92ca9cef3315a2ed70
|
25
|
-
|
26
|
-
# Do not keep production secrets in the unencrypted secrets file.
|
27
|
-
# Instead, either read values from the environment.
|
28
|
-
# Or, use `bin/rails secrets:setup` to configure encrypted secrets
|
29
|
-
# and move the `production:` environment over there.
|
30
|
-
|
31
|
-
production:
|
32
|
-
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|