belated 0.1.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.rubocop.yml +3 -0
  4. data/CHANGELOG.md +31 -11
  5. data/Gemfile.lock +1 -1
  6. data/README.md +21 -12
  7. data/belated.gemspec +1 -1
  8. data/lib/belated.rb +50 -28
  9. data/lib/belated/client.rb +4 -2
  10. data/lib/belated/logging.rb +17 -0
  11. data/lib/belated/version.rb +1 -1
  12. data/lib/belated/worker.rb +12 -6
  13. metadata +3 -69
  14. data/dummy/Rakefile +0 -8
  15. data/dummy/app/assets/config/manifest.js +0 -3
  16. data/dummy/app/assets/images/.keep +0 -0
  17. data/dummy/app/assets/stylesheets/application.css +0 -15
  18. data/dummy/app/channels/application_cable/channel.rb +0 -6
  19. data/dummy/app/channels/application_cable/connection.rb +0 -6
  20. data/dummy/app/controllers/application_controller.rb +0 -5
  21. data/dummy/app/controllers/concerns/.keep +0 -0
  22. data/dummy/app/helpers/application_helper.rb +0 -4
  23. data/dummy/app/javascript/packs/application.js +0 -15
  24. data/dummy/app/jobs/application_job.rb +0 -9
  25. data/dummy/app/mailers/application_mailer.rb +0 -6
  26. data/dummy/app/models/application_record.rb +0 -5
  27. data/dummy/app/models/concerns/.keep +0 -0
  28. data/dummy/app/models/user.rb +0 -2
  29. data/dummy/app/views/application/index.html.erb +0 -4
  30. data/dummy/app/views/layouts/application.html.erb +0 -15
  31. data/dummy/app/views/layouts/mailer.html.erb +0 -13
  32. data/dummy/app/views/layouts/mailer.text.erb +0 -1
  33. data/dummy/bin/rails +0 -6
  34. data/dummy/bin/rake +0 -6
  35. data/dummy/bin/setup +0 -35
  36. data/dummy/config.ru +0 -8
  37. data/dummy/config/application.rb +0 -23
  38. data/dummy/config/boot.rb +0 -7
  39. data/dummy/config/cable.yml +0 -10
  40. data/dummy/config/credentials.yml.enc +0 -1
  41. data/dummy/config/database.yml +0 -25
  42. data/dummy/config/environment.rb +0 -7
  43. data/dummy/config/environments/development.rb +0 -78
  44. data/dummy/config/environments/production.rb +0 -122
  45. data/dummy/config/environments/test.rb +0 -51
  46. data/dummy/config/initializers/application_controller_renderer.rb +0 -9
  47. data/dummy/config/initializers/backtrace_silencers.rb +0 -10
  48. data/dummy/config/initializers/content_security_policy.rb +0 -29
  49. data/dummy/config/initializers/cookies_serializer.rb +0 -7
  50. data/dummy/config/initializers/filter_parameter_logging.rb +0 -8
  51. data/dummy/config/initializers/inflections.rb +0 -17
  52. data/dummy/config/initializers/mime_types.rb +0 -5
  53. data/dummy/config/initializers/permissions_policy.rb +0 -12
  54. data/dummy/config/initializers/wrap_parameters.rb +0 -16
  55. data/dummy/config/locales/en.yml +0 -33
  56. data/dummy/config/master.key +0 -1
  57. data/dummy/config/puma.rb +0 -45
  58. data/dummy/config/routes.rb +0 -5
  59. data/dummy/config/storage.yml +0 -34
  60. data/dummy/db/migrate/20210613015406_create_users.rb +0 -10
  61. data/dummy/db/production.sqlite3 +0 -0
  62. data/dummy/db/schema.rb +0 -20
  63. data/dummy/db/test.sqlite3 +0 -0
  64. data/dummy/lib/assets/.keep +0 -0
  65. data/dummy/log/.keep +0 -0
  66. data/dummy/log/development.log +0 -0
  67. data/dummy/log/production.log +0 -3
  68. data/dummy/log/test.log +0 -595
  69. data/dummy/public/404.html +0 -67
  70. data/dummy/public/422.html +0 -67
  71. data/dummy/public/500.html +0 -66
  72. data/dummy/public/apple-touch-icon-precomposed.png +0 -0
  73. data/dummy/public/apple-touch-icon.png +0 -0
  74. data/dummy/public/favicon.ico +0 -0
  75. data/dummy/storage/.keep +0 -0
  76. data/dummy/tmp/.keep +0 -0
  77. data/dummy/tmp/development_secret.txt +0 -1
  78. data/dummy/tmp/pids/.keep +0 -0
  79. data/dummy/tmp/storage/.keep +0 -0
  80. data/hard_worker_dump +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3faf2091255e3a556c9abed02f3694bbbcd1bba9250621181745ef0708986d2d
4
- data.tar.gz: acbcd9dd1d921a22cb1242e5f2ec8713f4315e21a197176094433926c1cb9302
3
+ metadata.gz: 995560f345bb7644aa19035b27a68d43a1210ee36c21d13e21cc430b76d9fded
4
+ data.tar.gz: 103441a7e60e79319c65bacbedfb4dc337224c41c0e9560225f3b2421e219473
5
5
  SHA512:
6
- metadata.gz: 4066d54a8bd2d8e8a5a148bac5d2757081ed9d1778804f023561eade8f5a0b985357f807de545d5298fae39970c2f035545a2cdaac95b3e6534d490b5a0227a5
7
- data.tar.gz: df1f8c8dc6bcb6fa1e22e0a6ab430bb63d8e14b42a13500d7e185331d02f35a4b294642210f9581068f98ed213754064273a252c8526a303e1428e4155d2d24c
6
+ metadata.gz: ecc27c208d2fdb26c93ee39ebba7ada11236e9f564565d69258dfa6381a407c924e076365329f088ca4071955fd0eaeb8e9e1a1119f77d824473987590fee670
7
+ data.tar.gz: 57db27785351cbba33b6c704f877eacf4343d95a02267411e79bf63f1efadb49a67430342d145898a8571318bc61eafdd756bc2618388603122a0733bad7a3ed
data/.gitignore CHANGED
@@ -11,4 +11,6 @@
11
11
  .rspec_status
12
12
  .byebug_history
13
13
  /dummy/tmp/cache/
14
- belated_dump
14
+ /dummy/log/
15
+ /dummy/log/test.log
16
+ belated_dump
data/.rubocop.yml CHANGED
@@ -31,6 +31,9 @@ Style/GlobalVars:
31
31
  Style/BlockDelimiters:
32
32
  EnforcedStyle: braces_for_chaining
33
33
 
34
+ Style/ModuleFunction:
35
+ EnforcedStyle: extend_self
36
+
34
37
  Metrics/BlockLength:
35
38
  Exclude:
36
39
  - 'spec/**/*.rb'
data/CHANGELOG.md CHANGED
@@ -1,25 +1,45 @@
1
1
  ## [Unreleased]
2
- ## [0.0.1] - 2021-07-15
3
2
 
4
- - Initial release! :tada:
5
- Things are almost working. You can enqueue jobs! That should be more than enough.
6
- Rails integration to be done soon!
7
3
 
8
- ## [0.0.2] - 2021-07-15
9
4
 
10
- - Bugfix: was requiring byebug.
5
+ ## [0.3.2] - 2021-07-31
11
6
 
12
- ## [0.0.3] - 2021-07-16
7
+ - Trap INT and TERM, so now the shutdown is a little bit more graceful.
13
8
 
14
- - YAML Marshalled queue! So now the queue stays in memory even if restarted. Though kill and term signals still need catching.. that is not done yet.
15
- - Also, now you can use classes! As long as the class has a perform-method.
9
+ ## [0.3.1] - 2021-07-29
10
+
11
+ - Remove dummy app from gem... size should go down quite a bit.
12
+
13
+ ## [0.3.0] - 2021-07-29
14
+
15
+ - Now there is logging! By default logs to stdout, but you can configure the logger by setting a different one through `Belated.config.logger`.
16
+ ## [0.2.0] - 2021-07-25
17
+
18
+ - Workers now rescue StandardError and keep on working!
19
+ Note that they only rescue StandardError, and as there is no logger yet just pp the inspected error class.
20
+
21
+ ## [0.1.0] - 2021-07-24
22
+
23
+ - Gem name changed to Belated!
24
+
25
+ Below are changes when this gem was named HardWorker:
16
26
 
17
27
  ## [0.0.4] - 2021-07-24
18
28
 
19
29
  - Rails support!
20
30
  - Banner (for Belated though...)
21
31
  - Final release, as the name of this gem is going to change to Belated.
32
+ ## [0.0.3] - 2021-07-16
22
33
 
23
- ## [0.1.0] - 2021-07-24
34
+ - YAML Marshalled queue! So now the queue stays in memory even if restarted. Though kill and term signals still need catching.. that is not done yet.
35
+ - Also, now you can use classes! As long as the class has a perform-method.
24
36
 
25
- - Gem name changed to Belated!
37
+ ## [0.0.2] - 2021-07-15
38
+
39
+ - Bugfix: was requiring byebug.
40
+
41
+ ## [0.0.1] - 2021-07-15
42
+
43
+ - Initial release! :tada:
44
+ Things are almost working. You can enqueue jobs! That should be more than enough.
45
+ Rails integration to be done soon!
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- belated (0.1.0)
4
+ belated (0.3.2)
5
5
  drb
6
6
  dry-configurable
7
7
 
data/README.md CHANGED
@@ -1,24 +1,32 @@
1
- # Hardworker
1
+ # Belated
2
2
 
3
3
  [![CodeFactor](https://www.codefactor.io/repository/github/sampokuokkanen/belated/badge)](https://www.codefactor.io/repository/github/sampokuokkanen/belated) [![Gem Version](https://badge.fury.io/rb/belated.svg)](https://badge.fury.io/rb/belated)
4
4
 
5
- This is Belated, a new Ruby backend job library! It supports running procs and classes in the background.
6
- ~~Also, you lose all jobs if you restart the process.~~ It now uses YAML to load the queue into a file, which it then calls at startup to find the previous jobs.
5
+ This is Belated, a new Ruby backend job library! It supports running procs and classes in the background. To deal with restarts, it uses YAML to load the queue into a file, which it then calls at startup to find the previous jobs.
6
+
7
7
  Note that Belated used to be called HardWorker. That name was already in use in Sidekiq documentation and a bit too generic anyway.
8
8
 
9
9
  It uses dRuby to do the communication! Which is absolute great. No need for Redis or PostgreSQL, just Ruby standard libraries.
10
10
 
11
11
  TODO LIST:
12
12
 
13
- - ~~Marshal the job queue into a file so you don't lose all progress~~
14
- (Ended up using YAML)
15
- - ~~Support Rails~~ (Supported!)
16
- - ~~Parse options from command line, eg. `--workers 10`~~(Done!)
13
+ - Catch SIGTERM and friends
14
+ - Now supports it, partly.
15
+ - Don't crash on errors (Partially done)
16
+ - Make it possible to schedule jobs
17
17
  - Maybe support ActiveJob?
18
18
  - Have a web UI
19
19
  - Do some performance testing
20
20
  - Add a section telling people to use Sidekiq if they can
21
21
 
22
+ DONE
23
+
24
+ - ~~Marshal the job queue into a file so you don't lose all progress~~
25
+ (Ended up using YAML)
26
+ - ~~Add a logger~~
27
+ - ~~Support Rails~~ (Supported!)
28
+ - ~~Parse options from command line, eg. `--workers 10`~~(Done!)
29
+
22
30
  ## Installation
23
31
 
24
32
  Add this line to your application's Gemfile:
@@ -68,7 +76,8 @@ dummy.queue.push(proc { 2 / 1 })
68
76
  dummy.queue.push(DumDum.new)
69
77
  ```
70
78
 
71
- Hardworker runs on localhost, port 8788. Should probably make that a value you can change...
79
+ Belated runs on localhost, port 8788.
80
+ Going to make that an option in the future.
72
81
 
73
82
  ## Rails
74
83
 
@@ -77,14 +86,14 @@ First, start up Belated.
77
86
  Then,
78
87
 
79
88
  ```ruby
80
- $client = Belated::Client.new
89
+ client = Belated::Client.new
81
90
  ```
82
91
 
83
92
  and you can use the client!
84
93
  Call
85
94
 
86
95
  ```ruby
87
- $client.perform_belated(job)
96
+ client.perform_belated(job)
88
97
  ```
89
98
 
90
99
  If you want to pass a job to Belated.
@@ -124,7 +133,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
124
133
 
125
134
  ## Contributing
126
135
 
127
- Bug reports and pull requests are welcome on GitHub at https://github.com/sampokuokkanen/belated. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/hardworker/blob/master/CODE_OF_CONDUCT.md).
136
+ Bug reports and pull requests are welcome on GitHub at https://github.com/sampokuokkanen/belated. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/sampokuokkanen/belated/blob/master/CODE_OF_CONDUCT.md).
128
137
 
129
138
  ## License
130
139
 
@@ -132,4 +141,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
132
141
 
133
142
  ## Code of Conduct
134
143
 
135
- Everyone interacting in the Belated project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/hardworker/blob/master/CODE_OF_CONDUCT.md).
144
+ Everyone interacting in the Belated project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/sampokuokkanen/belated/blob/main/CODE_OF_CONDUCT.md).
data/belated.gemspec CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  # Specify which files should be added to the gem when it is released.
25
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
26
26
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
27
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
27
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|dummy|spec|features)/}) }
28
28
  end
29
29
  spec.bindir = 'bin'
30
30
  spec.executables = ['belated']
data/lib/belated.rb CHANGED
@@ -2,12 +2,13 @@
2
2
 
3
3
  require_relative 'belated/version'
4
4
  require_relative 'belated/worker'
5
+ require_relative 'belated/logging'
5
6
  require 'drb'
6
7
  require 'yaml'
7
8
  require 'singleton'
8
9
  require 'dry-configurable'
9
10
  require 'belated/client'
10
- require 'belated/rails' if defined?(::Rails::Engine)
11
+ require 'logger'
11
12
 
12
13
  # Belated is a pure Ruby job backend.
13
14
  # It has limited functionality, as it only accepts
@@ -17,8 +18,9 @@ require 'belated/rails' if defined?(::Rails::Engine)
17
18
  # and reloads them when started again.
18
19
  class Belated
19
20
  extend Dry::Configurable
21
+ include Logging
20
22
  include Singleton unless $TESTING
21
- URI = "druby://localhost:#{$TESTING ? Array.new(4) { rand(10) }.join : "8788"}"
23
+ URI = 'druby://localhost:8788'
22
24
  FILE_NAME = 'belated_dump'
23
25
  @@queue = Queue.new
24
26
 
@@ -27,25 +29,48 @@ class Belated
27
29
  setting :workers, 1
28
30
  setting :connect, true
29
31
  setting :environment, 'development'
32
+ setting :logger, Logger.new($stdout), reader: true
33
+ setting :log_level, :info, reader: true
30
34
 
31
35
  # Since it's running as a singleton, we need something to start it up.
32
36
  # Aliased for testing purposes.
33
37
  # This is only run from the bin file.
34
38
  def start
35
- boot_app
36
- load_jobs
39
+ boot_app && load_jobs
37
40
  @worker_list = []
38
41
  Belated.config.workers.times do |_i|
39
42
  @worker_list << Thread.new { Worker.new }
40
43
  end
41
44
  return unless Belated.config.connect
42
45
 
43
- DRb.start_service(URI, @@queue, verbose: true)
44
- puts banner_and_info
46
+ connect!
47
+ banner_and_info
48
+ trap_signals
45
49
  DRb.thread.join
46
50
  end
47
51
  alias initialize start
48
52
 
53
+ # Handles connection to DRb server.
54
+ def connect!
55
+ DRb.start_service(URI, @@queue, verbose: true)
56
+ rescue DRb::DRbConnError, Errno::EADDRINUSE
57
+ Belated.logger.error 'Could not connect to DRb server.'
58
+ retry
59
+ end
60
+
61
+ def trap_signals
62
+ %w[INT TERM].each do |signal|
63
+ Signal.trap(signal) do
64
+ @worker_list.length.times do
65
+ @@queue.push(:shutdown)
66
+ end
67
+ Thread.new { stop_workers }
68
+ sleep 0.1 until @@queue.empty?
69
+ exit
70
+ end
71
+ end
72
+ end
73
+
49
74
  def boot_app
50
75
  return unless rails?
51
76
 
@@ -60,6 +85,7 @@ class Belated
60
85
  end
61
86
 
62
87
  def load_jobs
88
+ log "reloading... if file exists #{File.exist?(Belated::FILE_NAME)}"
63
89
  return unless File.exist?(Belated::FILE_NAME)
64
90
 
65
91
  jobs = YAML.load(File.binread(FILE_NAME))
@@ -70,40 +96,27 @@ class Belated
70
96
  end
71
97
 
72
98
  def reload
99
+ log 'reloading...'
73
100
  load_jobs
74
101
  end
75
102
 
76
103
  def stop_workers
77
- @worker_list.each do |worker|
78
- Thread.kill(worker)
79
- end
80
- return if @@queue.empty?
81
-
82
- class_array = []
83
-
84
- @@queue.size.times do |_i|
85
- next if (klass_or_proc = @@queue.pop).instance_of?(Proc)
86
-
87
- class_array << klass_or_proc
88
- end
89
- File.open(FILE_NAME, 'wb') { |f| f.write(YAML.dump(class_array)) }
90
- end
91
-
92
- def self.stop_workers
93
104
  @worker_list&.each do |worker|
105
+ sleep 0.1 if worker.alive?
94
106
  Thread.kill(worker)
95
107
  end
96
108
  class_array = []
97
109
  @@queue.size.times do |_i|
98
- next if (klass_or_proc = @@queue.pop).instance_of?(Proc)
110
+ next if (klass = @@queue.pop).instance_of?(Proc)
99
111
 
100
- class_array << klass_or_proc
112
+ class_array << klass
101
113
  end
102
- File.open(FILE_NAME, 'wb') { |f| f.write(YAML.dump(class_array)) }
114
+ pp File.open(FILE_NAME, 'wb') { |f| f.write(YAML.dump(class_array)) }
103
115
  end
104
116
 
105
117
  def banner
106
118
  <<-'BANNER'
119
+
107
120
  .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------.
108
121
  | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. | .--------------. |
109
122
  | | ______ | | | _________ | | | _____ | | | __ | | | _________ | | | _________ | | | ________ | |
@@ -119,9 +132,9 @@ class Belated
119
132
  end
120
133
 
121
134
  def banner_and_info
122
- puts banner
123
- puts "Currently running Belated version #{Belated::VERSION}"
124
- puts %(Belated running #{@worker_list&.length.to_i} workers on #{URI}...)
135
+ log banner
136
+ log "Currently running Belated version #{Belated::VERSION}"
137
+ log %(Belated running #{@worker_list&.length.to_i} workers on #{URI}...)
125
138
  end
126
139
 
127
140
  def stats
@@ -131,6 +144,13 @@ class Belated
131
144
  }
132
145
  end
133
146
 
147
+ def self.kill_and_clear_queue!
148
+ @worker_list&.each do |worker|
149
+ Thread.kill(worker)
150
+ end
151
+ clear_queue!
152
+ end
153
+
134
154
  def self.clear_queue!
135
155
  @@queue.clear
136
156
  end
@@ -145,3 +165,5 @@ class Belated
145
165
 
146
166
  class Error < StandardError; end
147
167
  end
168
+
169
+ require 'belated/rails' if defined?(::Rails::Engine)
@@ -4,13 +4,15 @@ class Belated
4
4
 
5
5
  def initialize
6
6
  server_uri = Belated::URI
7
+ # @bank =
7
8
  DRb.start_service
8
9
  self.queue = DRbObject.new_with_uri(server_uri)
9
10
  end
10
11
 
11
- def perform_belated(job)
12
+ def perform(job)
12
13
  queue.push(job)
13
14
  end
14
- alias perform_later perform_belated
15
+ alias perform_belated perform
16
+ alias perform_later perform
15
17
  end
16
18
  end
@@ -0,0 +1,17 @@
1
+ class Belated
2
+ module Logging
3
+ extend self
4
+
5
+ def logger
6
+ @logger ||= Belated.logger
7
+ end
8
+
9
+ def log(message)
10
+ logger.__send__(Belated.log_level, message)
11
+ end
12
+
13
+ def logger=(logger)
14
+ @logger = logger
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Belated
4
- VERSION = '0.1.0'
4
+ VERSION = '0.3.2'
5
5
  end
@@ -1,27 +1,33 @@
1
+ require_relative 'logging'
1
2
  class Belated
2
3
  # The worker class that actually gets the jobs from the queue
3
4
  # and calls them. Expects the jobs to be procs.
4
5
  class Worker
6
+ include Logging
7
+
5
8
  def initialize
6
9
  start_working
7
10
  end
8
11
 
9
12
  def start_working
10
13
  loop do
11
- job = Belated.fetch_job
12
- next unless job
14
+ next unless (job = Belated.fetch_job)
15
+
16
+ break if job == :shutdown
13
17
 
14
- call_job(job)
15
- puts 'fetching jobs...'
18
+ log call_job(job)
19
+ log 'fetching jobs...'
16
20
  end
17
21
  end
18
22
 
19
23
  def call_job(job)
20
24
  if job.respond_to?(:call)
21
- pp job.call
25
+ job.call
22
26
  else
23
- pp job&.perform
27
+ job.perform
24
28
  end
29
+ rescue StandardError => e
30
+ e.inspect
25
31
  end
26
32
  end
27
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: belated
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sampo Kuokkanen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-24 00:00:00.000000000 Z
11
+ date: 2021-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: drb
@@ -78,75 +78,9 @@ files:
78
78
  - bin/bundle
79
79
  - bin/console
80
80
  - bin/setup
81
- - dummy/Rakefile
82
- - dummy/app/assets/config/manifest.js
83
- - dummy/app/assets/images/.keep
84
- - dummy/app/assets/stylesheets/application.css
85
- - dummy/app/channels/application_cable/channel.rb
86
- - dummy/app/channels/application_cable/connection.rb
87
- - dummy/app/controllers/application_controller.rb
88
- - dummy/app/controllers/concerns/.keep
89
- - dummy/app/helpers/application_helper.rb
90
- - dummy/app/javascript/packs/application.js
91
- - dummy/app/jobs/application_job.rb
92
- - dummy/app/mailers/application_mailer.rb
93
- - dummy/app/models/application_record.rb
94
- - dummy/app/models/concerns/.keep
95
- - dummy/app/models/user.rb
96
- - dummy/app/views/application/index.html.erb
97
- - dummy/app/views/layouts/application.html.erb
98
- - dummy/app/views/layouts/mailer.html.erb
99
- - dummy/app/views/layouts/mailer.text.erb
100
- - dummy/bin/rails
101
- - dummy/bin/rake
102
- - dummy/bin/setup
103
- - dummy/config.ru
104
- - dummy/config/application.rb
105
- - dummy/config/boot.rb
106
- - dummy/config/cable.yml
107
- - dummy/config/credentials.yml.enc
108
- - dummy/config/database.yml
109
- - dummy/config/environment.rb
110
- - dummy/config/environments/development.rb
111
- - dummy/config/environments/production.rb
112
- - dummy/config/environments/test.rb
113
- - dummy/config/initializers/application_controller_renderer.rb
114
- - dummy/config/initializers/backtrace_silencers.rb
115
- - dummy/config/initializers/content_security_policy.rb
116
- - dummy/config/initializers/cookies_serializer.rb
117
- - dummy/config/initializers/filter_parameter_logging.rb
118
- - dummy/config/initializers/inflections.rb
119
- - dummy/config/initializers/mime_types.rb
120
- - dummy/config/initializers/permissions_policy.rb
121
- - dummy/config/initializers/wrap_parameters.rb
122
- - dummy/config/locales/en.yml
123
- - dummy/config/master.key
124
- - dummy/config/puma.rb
125
- - dummy/config/routes.rb
126
- - dummy/config/storage.yml
127
- - dummy/db/migrate/20210613015406_create_users.rb
128
- - dummy/db/production.sqlite3
129
- - dummy/db/schema.rb
130
- - dummy/db/test.sqlite3
131
- - dummy/lib/assets/.keep
132
- - dummy/log/.keep
133
- - dummy/log/development.log
134
- - dummy/log/production.log
135
- - dummy/log/test.log
136
- - dummy/public/404.html
137
- - dummy/public/422.html
138
- - dummy/public/500.html
139
- - dummy/public/apple-touch-icon-precomposed.png
140
- - dummy/public/apple-touch-icon.png
141
- - dummy/public/favicon.ico
142
- - dummy/storage/.keep
143
- - dummy/tmp/.keep
144
- - dummy/tmp/development_secret.txt
145
- - dummy/tmp/pids/.keep
146
- - dummy/tmp/storage/.keep
147
- - hard_worker_dump
148
81
  - lib/belated.rb
149
82
  - lib/belated/client.rb
83
+ - lib/belated/logging.rb
150
84
  - lib/belated/rails.rb
151
85
  - lib/belated/version.rb
152
86
  - lib/belated/worker.rb