active_job_log 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +9 -0
  4. data/.hound.yml +4 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +1038 -0
  7. data/.ruby-version +1 -0
  8. data/.travis.yml +15 -0
  9. data/CHANGELOG.md +7 -0
  10. data/Gemfile +14 -0
  11. data/Gemfile.lock +215 -0
  12. data/Guardfile +15 -0
  13. data/LICENSE.txt +21 -0
  14. data/README.md +143 -0
  15. data/Rakefile +10 -0
  16. data/active_job_log.gemspec +32 -0
  17. data/app/assets/config/active_job_log_manifest.js +2 -0
  18. data/app/assets/images/active_job_log/.keep +0 -0
  19. data/app/assets/javascripts/active_job_log/application.js +13 -0
  20. data/app/assets/stylesheets/active_job_log/application.css +15 -0
  21. data/app/controllers/active_job_log/application_controller.rb +5 -0
  22. data/app/helpers/active_job_log/application_helper.rb +4 -0
  23. data/app/jobs/active_job_log/application_job.rb +4 -0
  24. data/app/mailers/active_job_log/application_mailer.rb +6 -0
  25. data/app/models/active_job_log/application_record.rb +5 -0
  26. data/app/models/active_job_log/job.rb +68 -0
  27. data/app/views/layouts/active_job_log/application.html.erb +14 -0
  28. data/bin/rails +14 -0
  29. data/config/routes.rb +2 -0
  30. data/db/migrate/20180511184635_create_active_job_log_jobs.rb +22 -0
  31. data/lib/active_job_log.rb +26 -0
  32. data/lib/active_job_log/engine.rb +14 -0
  33. data/lib/active_job_log/log_ext.rb +43 -0
  34. data/lib/active_job_log/version.rb +3 -0
  35. data/lib/generators/active_job_log/install/USAGE +5 -0
  36. data/lib/generators/active_job_log/install/install_generator.rb +19 -0
  37. data/lib/generators/active_job_log/install/templates/initializer.rb +2 -0
  38. data/lib/tasks/active_job_log_tasks.rake +4 -0
  39. data/spec/dummy/Rakefile +6 -0
  40. data/spec/dummy/app/assets/config/manifest.js +5 -0
  41. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  42. data/spec/dummy/app/assets/javascripts/cable.js +13 -0
  43. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  44. data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
  45. data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
  46. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  47. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  48. data/spec/dummy/app/jobs/application_job.rb +2 -0
  49. data/spec/dummy/app/mailers/application_mailer.rb +4 -0
  50. data/spec/dummy/app/models/application_record.rb +3 -0
  51. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  52. data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  53. data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  54. data/spec/dummy/bin/bundle +3 -0
  55. data/spec/dummy/bin/rails +4 -0
  56. data/spec/dummy/bin/rake +4 -0
  57. data/spec/dummy/bin/setup +38 -0
  58. data/spec/dummy/bin/update +29 -0
  59. data/spec/dummy/bin/yarn +11 -0
  60. data/spec/dummy/config.ru +5 -0
  61. data/spec/dummy/config/application.rb +27 -0
  62. data/spec/dummy/config/boot.rb +5 -0
  63. data/spec/dummy/config/cable.yml +10 -0
  64. data/spec/dummy/config/database.yml +25 -0
  65. data/spec/dummy/config/environment.rb +5 -0
  66. data/spec/dummy/config/environments/development.rb +54 -0
  67. data/spec/dummy/config/environments/production.rb +91 -0
  68. data/spec/dummy/config/environments/test.rb +42 -0
  69. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  70. data/spec/dummy/config/initializers/assets.rb +14 -0
  71. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  72. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  73. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  74. data/spec/dummy/config/initializers/inflections.rb +16 -0
  75. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  76. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  77. data/spec/dummy/config/locales/en.yml +33 -0
  78. data/spec/dummy/config/puma.rb +56 -0
  79. data/spec/dummy/config/routes.rb +3 -0
  80. data/spec/dummy/config/secrets.yml +32 -0
  81. data/spec/dummy/config/spring.rb +6 -0
  82. data/spec/dummy/db/schema.rb +33 -0
  83. data/spec/dummy/package.json +5 -0
  84. data/spec/dummy/public/404.html +67 -0
  85. data/spec/dummy/public/422.html +67 -0
  86. data/spec/dummy/public/500.html +66 -0
  87. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  88. data/spec/dummy/public/apple-touch-icon.png +0 -0
  89. data/spec/dummy/public/favicon.ico +0 -0
  90. data/spec/dummy/spec/assets/image.png +0 -0
  91. data/spec/dummy/spec/assets/video.mp4 +0 -0
  92. data/spec/dummy/spec/support/test_helpers.rb +5 -0
  93. data/spec/factories/active_job_log_jobs.rb +7 -0
  94. data/spec/lib/active_job_log/log_ext_spec.rb +84 -0
  95. data/spec/models/active_job_log/job_spec.rb +187 -0
  96. data/spec/rails_helper.rb +48 -0
  97. data/spec/spec_helper.rb +9 -0
  98. metadata +328 -0
File without changes
@@ -0,0 +1,5 @@
1
+ module TestHelpers
2
+ def helper_example
3
+ puts "Add your custom helpers here: #{File.dirname(__FILE__)}"
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :active_job_log_job, class: 'ActiveJobLog::Job' do
3
+ sequence(:job_id) { |n| "job##{n}" }
4
+ status :pending
5
+ job_class "MyJob"
6
+ end
7
+ end
@@ -0,0 +1,84 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe ActiveJobLog::LogExt do
4
+ def remove_job_class
5
+ Object.send(:remove_const, :TestJob)
6
+ rescue
7
+ nil
8
+ end
9
+
10
+ def perform_now
11
+ TestJob.perform_now(*job_params)
12
+ rescue
13
+ nil
14
+ end
15
+
16
+ let(:job_params) do
17
+ [
18
+ "p1",
19
+ "p2"
20
+ ]
21
+ end
22
+
23
+ before { remove_job_class }
24
+
25
+ it { expect(ActiveJobLog::Job.count).to eq(0) }
26
+
27
+ context "with successful job" do
28
+ before do
29
+ class TestJob < ActiveJob::Base
30
+ def perform(param1, param2)
31
+ "success with #{param1} and #{param2}"
32
+ end
33
+ end
34
+
35
+ perform_now
36
+ @job = ActiveJobLog::Job.last
37
+ end
38
+
39
+ it { expect(ActiveJobLog::Job.count).to eq(1) }
40
+ it { expect(@job.job_id).not_to be_nil }
41
+ it { expect(@job.params).to eq(job_params) }
42
+ it { expect(@job.status).to eq(:finished) }
43
+ it { expect(@job.job_class).to eq("TestJob") }
44
+ it { expect(@job.queue_name).to eq("default") }
45
+ it { expect(@job.error).to be_nil }
46
+ it { expect(@job.stack_trace).to eq([]) }
47
+ it { expect(@job.queued_at).to be_nil }
48
+ it { expect(@job.started_at).not_to be_nil }
49
+ it { expect(@job.ended_at).not_to be_nil }
50
+ it { expect(@job.queued_duration).to be_nil }
51
+ it { expect(@job.execution_duration).not_to be_nil }
52
+ it { expect(@job.total_duration).not_to be_nil }
53
+ it { expect(@job.executions).to eq(0) }
54
+ end
55
+
56
+ context "with failed job" do
57
+ before do
58
+ class TestJob < ActiveJob::Base
59
+ def perform(_param1, _param2)
60
+ raise "error"
61
+ end
62
+ end
63
+
64
+ perform_now
65
+ @job = ActiveJobLog::Job.last
66
+ end
67
+
68
+ it { expect(ActiveJobLog::Job.count).to eq(1) }
69
+ it { expect(@job.job_id).not_to be_nil }
70
+ it { expect(@job.params).to eq(job_params) }
71
+ it { expect(@job.status).to eq(:failed) }
72
+ it { expect(@job.job_class).to eq("TestJob") }
73
+ it { expect(@job.queue_name).to eq("default") }
74
+ it { expect(@job.error).to eq("error") }
75
+ it { expect(@job.stack_trace.any?).to eq(true) }
76
+ it { expect(@job.queued_at).to be_nil }
77
+ it { expect(@job.started_at).not_to be_nil }
78
+ it { expect(@job.ended_at).not_to be_nil }
79
+ it { expect(@job.queued_duration).to be_nil }
80
+ it { expect(@job.execution_duration).not_to be_nil }
81
+ it { expect(@job.total_duration).not_to be_nil }
82
+ it { expect(@job.executions).to eq(0) }
83
+ end
84
+ end
@@ -0,0 +1,187 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe ActiveJobLog::Job, type: :model do
4
+ it "has a valid factory" do
5
+ expect(create(:active_job_log_job)).to be_valid
6
+ end
7
+
8
+ describe "Validations" do
9
+ it { is_expected.to enumerize(:status).in(:queued, :pending, :finished, :failed) }
10
+ end
11
+
12
+ describe "#params" do
13
+ let(:job) { create(:active_job_log_job) }
14
+ let(:params) { [1, 2] }
15
+
16
+ it { expect(job.params).to eq([]) }
17
+ it { expect { job.params = params }.to change(job, :params).from([]).to(params) }
18
+ end
19
+
20
+ describe "#stack_trace" do
21
+ let(:job) { create(:active_job_log_job) }
22
+ let(:stack) { [1, 2] }
23
+
24
+ it { expect(job.stack_trace).to eq([]) }
25
+ it { expect { job.stack_trace = stack }.to change(job, :stack_trace).from([]).to(stack) }
26
+ end
27
+
28
+ describe "#set_queued_duration" do
29
+ let(:job) { build(:active_job_log_job, queued_at: queued_at, started_at: started_at) }
30
+
31
+ context "with defined started_at and queued_at" do
32
+ let(:queued_at) { started_at - 2.days }
33
+ let(:started_at) { DateTime.current }
34
+
35
+ it { expect { job.save! }.to change(job, :queued_duration).from(nil).to(172800) }
36
+ end
37
+
38
+ context "with nil started_at" do
39
+ let(:queued_at) { DateTime.current }
40
+ let(:started_at) { nil }
41
+
42
+ it { expect { job.save! }.not_to change(job, :queued_duration) }
43
+ end
44
+
45
+ context "with nil queued_at" do
46
+ let(:queued_at) { nil }
47
+ let(:started_at) { DateTime.current }
48
+
49
+ it { expect { job.save! }.not_to change(job, :queued_duration) }
50
+ end
51
+ end
52
+
53
+ describe "#set_execution_duration" do
54
+ let(:job) { build(:active_job_log_job, started_at: started_at, ended_at: ended_at) }
55
+
56
+ context "with defined ended_at and started_at" do
57
+ let(:started_at) { ended_at - 2.days }
58
+ let(:ended_at) { DateTime.current }
59
+
60
+ it { expect { job.save! }.to change(job, :execution_duration).from(nil).to(172800) }
61
+ end
62
+
63
+ context "with nil ended_at" do
64
+ let(:started_at) { DateTime.current }
65
+ let(:ended_at) { nil }
66
+
67
+ it { expect { job.save! }.not_to change(job, :execution_duration) }
68
+ end
69
+
70
+ context "with nil started_at" do
71
+ let(:started_at) { nil }
72
+ let(:ended_at) { DateTime.current }
73
+
74
+ it { expect { job.save! }.not_to change(job, :execution_duration) }
75
+ end
76
+ end
77
+
78
+ describe "#set_total_duration" do
79
+ let(:job) do
80
+ build(:active_job_log_job, queued_at: queued_at, started_at: started_at, ended_at: ended_at)
81
+ end
82
+
83
+ let(:queued_at) { ended_at - 3.days }
84
+ let(:started_at) { ended_at - 2.days }
85
+ let(:ended_at) { DateTime.current }
86
+
87
+ it { expect { job.save! }.to change(job, :total_duration).from(nil).to(259200) }
88
+
89
+ context "with undefined queued_at" do
90
+ let(:queued_at) { nil }
91
+
92
+ it { expect { job.save! }.to change(job, :total_duration).from(nil).to(172800) }
93
+ end
94
+
95
+ context "with undefined started_at" do
96
+ let(:started_at) { nil }
97
+
98
+ it { expect { job.save! }.to change(job, :total_duration).from(nil).to(259200) }
99
+ end
100
+
101
+ context "with undefined ended_at" do
102
+ let(:queued_at) { DateTime.current - 3.days }
103
+ let(:started_at) { DateTime.current - 2.days }
104
+ let(:ended_at) { nil }
105
+
106
+ it { expect { job.save! }.not_to change(job, :total_duration) }
107
+ end
108
+
109
+ context "with undefined queued_at and started_at" do
110
+ let(:queued_at) { nil }
111
+ let(:started_at) { nil }
112
+ let(:ended_at) { DateTime.current }
113
+
114
+ it { expect { job.save! }.not_to change(job, :total_duration) }
115
+ end
116
+ end
117
+
118
+ describe "#update_job!" do
119
+ let(:job_id) { "x" }
120
+ let(:status) { :queued }
121
+ let(:perform) { described_class.update_job!(job_id, status, params) }
122
+
123
+ let(:params) do
124
+ {
125
+ params: [1],
126
+ stack_trace: [2],
127
+ error: "error",
128
+ job_class: "MyJob"
129
+ }
130
+ end
131
+
132
+ it { expect { perform }.to change(ActiveJobLog::Job, :count).from(0).to(1) }
133
+
134
+ context "with existent job" do
135
+ let!(:job) { create(:active_job_log_job, job_id: job_id) }
136
+
137
+ it { expect { perform }.not_to change(ActiveJobLog::Job, :count) }
138
+ end
139
+
140
+ context "with queued status" do
141
+ before { @job = perform }
142
+
143
+ it { expect(@job.job_id).to eq(job_id) }
144
+ it { expect(@job.error).to eq("error") }
145
+ it { expect(@job.params).to eq([1]) }
146
+ it { expect(@job.stack_trace).to eq([2]) }
147
+ it { expect(@job.job_class).to eq("MyJob") }
148
+ it { expect(@job.status).to eq(:queued) }
149
+ it { expect(@job.queued_at).not_to be_nil }
150
+ it { expect(@job.started_at).to be_nil }
151
+ it { expect(@job.ended_at).to be_nil }
152
+ end
153
+
154
+ context "with pending status" do
155
+ let(:status) { :pending }
156
+
157
+ before { @job = perform }
158
+
159
+ it { expect(@job.status).to eq(:pending) }
160
+ it { expect(@job.queued_at).to be_nil }
161
+ it { expect(@job.started_at).not_to be_nil }
162
+ it { expect(@job.ended_at).to be_nil }
163
+ end
164
+
165
+ context "with finished status" do
166
+ let(:status) { :finished }
167
+
168
+ before { @job = perform }
169
+
170
+ it { expect(@job.status).to eq(:finished) }
171
+ it { expect(@job.queued_at).to be_nil }
172
+ it { expect(@job.started_at).to be_nil }
173
+ it { expect(@job.ended_at).not_to be_nil }
174
+ end
175
+
176
+ context "with failed status" do
177
+ let(:status) { :failed }
178
+
179
+ before { @job = perform }
180
+
181
+ it { expect(@job.status).to eq(:failed) }
182
+ it { expect(@job.queued_at).to be_nil }
183
+ it { expect(@job.started_at).to be_nil }
184
+ it { expect(@job.ended_at).not_to be_nil }
185
+ end
186
+ end
187
+ end
@@ -0,0 +1,48 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ formatters = [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter]
5
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter::new(formatters)
6
+
7
+ SimpleCov.start do
8
+ add_filter do |src|
9
+ r = [
10
+ src.filename =~ /lib/,
11
+ src.filename =~ /models/,
12
+ src.filename =~ /controllers/
13
+ ].uniq
14
+ r.count == 1 && r.first.nil?
15
+ end
16
+
17
+ add_filter "engine.rb"
18
+ add_filter "spec.rb"
19
+ end
20
+
21
+ ENV["RAILS_ENV"] ||= "test"
22
+ require File.expand_path("../../spec/dummy/config/environment", __FILE__)
23
+ abort("The Rails environment is running in production mode!") if Rails.env.production?
24
+ require "pry"
25
+ require "spec_helper"
26
+ require "rspec/rails"
27
+ require "factory_bot_rails"
28
+
29
+ ActiveRecord::Migration.maintain_test_schema!
30
+
31
+ Dir[::Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
32
+
33
+ RSpec.configure do |config|
34
+ config.fixture_path = "#{::Rails.root}/spec/assets"
35
+ config.use_transactional_fixtures = true
36
+ config.infer_spec_type_from_file_location!
37
+ config.filter_rails_from_backtrace!
38
+
39
+ config.filter_run :focus
40
+ config.run_all_when_everything_filtered = true
41
+
42
+ FactoryBot.definition_file_paths = ["#{::Rails.root}/spec/factories"]
43
+ FactoryBot.find_definitions
44
+
45
+ config.include FactoryBot::Syntax::Methods
46
+ config.include ActionDispatch::TestProcess
47
+ config.include TestHelpers
48
+ end
@@ -0,0 +1,9 @@
1
+ RSpec.configure do |config|
2
+ config.expect_with :rspec do |expectations|
3
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
4
+ end
5
+
6
+ config.mock_with :rspec do |mocks|
7
+ mocks.verify_partial_doubles = true
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,328 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: active_job_log
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Platanus
8
+ - Leandro Segovia
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2018-05-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 4.2.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 4.2.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: enumerize
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '1.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '1.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: pry
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: pry-rails
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: sqlite3
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec-rails
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: guard-rspec
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: factory_bot_rails
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: coveralls
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ description: 'Rails engine to register jobs history, adding: job state, error feedback,
141
+ duration, etc.'
142
+ email:
143
+ - rubygems@platan.us
144
+ - ldlsegovia@gmail.com
145
+ executables: []
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - ".coveralls.yml"
150
+ - ".gitignore"
151
+ - ".hound.yml"
152
+ - ".rspec"
153
+ - ".rubocop.yml"
154
+ - ".ruby-version"
155
+ - ".travis.yml"
156
+ - CHANGELOG.md
157
+ - Gemfile
158
+ - Gemfile.lock
159
+ - Guardfile
160
+ - LICENSE.txt
161
+ - README.md
162
+ - Rakefile
163
+ - active_job_log.gemspec
164
+ - app/assets/config/active_job_log_manifest.js
165
+ - app/assets/images/active_job_log/.keep
166
+ - app/assets/javascripts/active_job_log/application.js
167
+ - app/assets/stylesheets/active_job_log/application.css
168
+ - app/controllers/active_job_log/application_controller.rb
169
+ - app/helpers/active_job_log/application_helper.rb
170
+ - app/jobs/active_job_log/application_job.rb
171
+ - app/mailers/active_job_log/application_mailer.rb
172
+ - app/models/active_job_log/application_record.rb
173
+ - app/models/active_job_log/job.rb
174
+ - app/views/layouts/active_job_log/application.html.erb
175
+ - bin/rails
176
+ - config/routes.rb
177
+ - db/migrate/20180511184635_create_active_job_log_jobs.rb
178
+ - lib/active_job_log.rb
179
+ - lib/active_job_log/engine.rb
180
+ - lib/active_job_log/log_ext.rb
181
+ - lib/active_job_log/version.rb
182
+ - lib/generators/active_job_log/install/USAGE
183
+ - lib/generators/active_job_log/install/install_generator.rb
184
+ - lib/generators/active_job_log/install/templates/initializer.rb
185
+ - lib/tasks/active_job_log_tasks.rake
186
+ - spec/dummy/Rakefile
187
+ - spec/dummy/app/assets/config/manifest.js
188
+ - spec/dummy/app/assets/javascripts/application.js
189
+ - spec/dummy/app/assets/javascripts/cable.js
190
+ - spec/dummy/app/assets/stylesheets/application.css
191
+ - spec/dummy/app/channels/application_cable/channel.rb
192
+ - spec/dummy/app/channels/application_cable/connection.rb
193
+ - spec/dummy/app/controllers/application_controller.rb
194
+ - spec/dummy/app/helpers/application_helper.rb
195
+ - spec/dummy/app/jobs/application_job.rb
196
+ - spec/dummy/app/mailers/application_mailer.rb
197
+ - spec/dummy/app/models/application_record.rb
198
+ - spec/dummy/app/views/layouts/application.html.erb
199
+ - spec/dummy/app/views/layouts/mailer.html.erb
200
+ - spec/dummy/app/views/layouts/mailer.text.erb
201
+ - spec/dummy/bin/bundle
202
+ - spec/dummy/bin/rails
203
+ - spec/dummy/bin/rake
204
+ - spec/dummy/bin/setup
205
+ - spec/dummy/bin/update
206
+ - spec/dummy/bin/yarn
207
+ - spec/dummy/config.ru
208
+ - spec/dummy/config/application.rb
209
+ - spec/dummy/config/boot.rb
210
+ - spec/dummy/config/cable.yml
211
+ - spec/dummy/config/database.yml
212
+ - spec/dummy/config/environment.rb
213
+ - spec/dummy/config/environments/development.rb
214
+ - spec/dummy/config/environments/production.rb
215
+ - spec/dummy/config/environments/test.rb
216
+ - spec/dummy/config/initializers/application_controller_renderer.rb
217
+ - spec/dummy/config/initializers/assets.rb
218
+ - spec/dummy/config/initializers/backtrace_silencers.rb
219
+ - spec/dummy/config/initializers/cookies_serializer.rb
220
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
221
+ - spec/dummy/config/initializers/inflections.rb
222
+ - spec/dummy/config/initializers/mime_types.rb
223
+ - spec/dummy/config/initializers/wrap_parameters.rb
224
+ - spec/dummy/config/locales/en.yml
225
+ - spec/dummy/config/puma.rb
226
+ - spec/dummy/config/routes.rb
227
+ - spec/dummy/config/secrets.yml
228
+ - spec/dummy/config/spring.rb
229
+ - spec/dummy/db/schema.rb
230
+ - spec/dummy/package.json
231
+ - spec/dummy/public/404.html
232
+ - spec/dummy/public/422.html
233
+ - spec/dummy/public/500.html
234
+ - spec/dummy/public/apple-touch-icon-precomposed.png
235
+ - spec/dummy/public/apple-touch-icon.png
236
+ - spec/dummy/public/favicon.ico
237
+ - spec/dummy/spec/assets/image.png
238
+ - spec/dummy/spec/assets/video.mp4
239
+ - spec/dummy/spec/support/test_helpers.rb
240
+ - spec/factories/active_job_log_jobs.rb
241
+ - spec/lib/active_job_log/log_ext_spec.rb
242
+ - spec/models/active_job_log/job_spec.rb
243
+ - spec/rails_helper.rb
244
+ - spec/spec_helper.rb
245
+ homepage: https://github.com/platanus/active_job_log
246
+ licenses:
247
+ - MIT
248
+ metadata: {}
249
+ post_install_message:
250
+ rdoc_options: []
251
+ require_paths:
252
+ - lib
253
+ required_ruby_version: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ required_rubygems_version: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ requirements: []
264
+ rubyforge_project:
265
+ rubygems_version: 2.7.7
266
+ signing_key:
267
+ specification_version: 4
268
+ summary: Rails engine to keep jobs history
269
+ test_files:
270
+ - spec/dummy/Rakefile
271
+ - spec/dummy/app/assets/config/manifest.js
272
+ - spec/dummy/app/assets/javascripts/application.js
273
+ - spec/dummy/app/assets/javascripts/cable.js
274
+ - spec/dummy/app/assets/stylesheets/application.css
275
+ - spec/dummy/app/channels/application_cable/channel.rb
276
+ - spec/dummy/app/channels/application_cable/connection.rb
277
+ - spec/dummy/app/controllers/application_controller.rb
278
+ - spec/dummy/app/helpers/application_helper.rb
279
+ - spec/dummy/app/jobs/application_job.rb
280
+ - spec/dummy/app/mailers/application_mailer.rb
281
+ - spec/dummy/app/models/application_record.rb
282
+ - spec/dummy/app/views/layouts/application.html.erb
283
+ - spec/dummy/app/views/layouts/mailer.html.erb
284
+ - spec/dummy/app/views/layouts/mailer.text.erb
285
+ - spec/dummy/bin/bundle
286
+ - spec/dummy/bin/rails
287
+ - spec/dummy/bin/rake
288
+ - spec/dummy/bin/setup
289
+ - spec/dummy/bin/update
290
+ - spec/dummy/bin/yarn
291
+ - spec/dummy/config.ru
292
+ - spec/dummy/config/application.rb
293
+ - spec/dummy/config/boot.rb
294
+ - spec/dummy/config/cable.yml
295
+ - spec/dummy/config/database.yml
296
+ - spec/dummy/config/environment.rb
297
+ - spec/dummy/config/environments/development.rb
298
+ - spec/dummy/config/environments/production.rb
299
+ - spec/dummy/config/environments/test.rb
300
+ - spec/dummy/config/initializers/application_controller_renderer.rb
301
+ - spec/dummy/config/initializers/assets.rb
302
+ - spec/dummy/config/initializers/backtrace_silencers.rb
303
+ - spec/dummy/config/initializers/cookies_serializer.rb
304
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
305
+ - spec/dummy/config/initializers/inflections.rb
306
+ - spec/dummy/config/initializers/mime_types.rb
307
+ - spec/dummy/config/initializers/wrap_parameters.rb
308
+ - spec/dummy/config/locales/en.yml
309
+ - spec/dummy/config/puma.rb
310
+ - spec/dummy/config/routes.rb
311
+ - spec/dummy/config/secrets.yml
312
+ - spec/dummy/config/spring.rb
313
+ - spec/dummy/db/schema.rb
314
+ - spec/dummy/package.json
315
+ - spec/dummy/public/404.html
316
+ - spec/dummy/public/422.html
317
+ - spec/dummy/public/500.html
318
+ - spec/dummy/public/apple-touch-icon-precomposed.png
319
+ - spec/dummy/public/apple-touch-icon.png
320
+ - spec/dummy/public/favicon.ico
321
+ - spec/dummy/spec/assets/image.png
322
+ - spec/dummy/spec/assets/video.mp4
323
+ - spec/dummy/spec/support/test_helpers.rb
324
+ - spec/factories/active_job_log_jobs.rb
325
+ - spec/lib/active_job_log/log_ext_spec.rb
326
+ - spec/models/active_job_log/job_spec.rb
327
+ - spec/rails_helper.rb
328
+ - spec/spec_helper.rb