totoro 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/lib/totoro/base_queue.rb +4 -4
  3. data/lib/totoro/version.rb +1 -1
  4. metadata +1 -97
  5. data/pkg/totoro-1.0.5/CODE_OF_CONDUCT.md +0 -74
  6. data/pkg/totoro-1.0.5/Dockerfile +0 -14
  7. data/pkg/totoro-1.0.5/Gemfile +0 -8
  8. data/pkg/totoro-1.0.5/Gemfile.lock +0 -68
  9. data/pkg/totoro-1.0.5/LICENSE.txt +0 -21
  10. data/pkg/totoro-1.0.5/README.md +0 -169
  11. data/pkg/totoro-1.0.5/Rakefile +0 -8
  12. data/pkg/totoro-1.0.5/bin/console +0 -15
  13. data/pkg/totoro-1.0.5/bin/setup +0 -8
  14. data/pkg/totoro-1.0.5/bin/totoro +0 -16
  15. data/pkg/totoro-1.0.5/docker-compose.yml +0 -43
  16. data/pkg/totoro-1.0.5/lib/generators/totoro/config_generator.rb +0 -12
  17. data/pkg/totoro-1.0.5/lib/generators/totoro/init_generator.rb +0 -14
  18. data/pkg/totoro-1.0.5/lib/generators/totoro/templates/create_totoro_failed_messages.rb +0 -12
  19. data/pkg/totoro-1.0.5/lib/generators/totoro/templates/initializer.rb +0 -1
  20. data/pkg/totoro-1.0.5/lib/generators/totoro/templates/totoro.yml +0 -33
  21. data/pkg/totoro-1.0.5/lib/generators/totoro/templates/update_totoro_failed_messages.rb +0 -6
  22. data/pkg/totoro-1.0.5/lib/generators/totoro/templates/worker.rb.erb +0 -10
  23. data/pkg/totoro-1.0.5/lib/generators/totoro/update_generator.rb +0 -12
  24. data/pkg/totoro-1.0.5/lib/generators/totoro/worker_generator.rb +0 -17
  25. data/pkg/totoro-1.0.5/lib/totoro.rb +0 -21
  26. data/pkg/totoro-1.0.5/lib/totoro/base_queue.rb +0 -44
  27. data/pkg/totoro-1.0.5/lib/totoro/base_worker.rb +0 -61
  28. data/pkg/totoro-1.0.5/lib/totoro/config.rb +0 -44
  29. data/pkg/totoro-1.0.5/lib/totoro/errors/connection_break_error.rb +0 -6
  30. data/pkg/totoro-1.0.5/lib/totoro/errors/need_queue_name_error.rb +0 -5
  31. data/pkg/totoro-1.0.5/lib/totoro/initializer.rb +0 -39
  32. data/pkg/totoro-1.0.5/lib/totoro/message_resender.rb +0 -17
  33. data/pkg/totoro-1.0.5/lib/totoro/models/totoro_failed_message.rb +0 -8
  34. data/pkg/totoro-1.0.5/lib/totoro/railtie.rb +0 -15
  35. data/pkg/totoro-1.0.5/lib/totoro/services/broadcast_service.rb +0 -33
  36. data/pkg/totoro-1.0.5/lib/totoro/services/enqueue_service.rb +0 -38
  37. data/pkg/totoro-1.0.5/lib/totoro/services/resend_service.rb +0 -19
  38. data/pkg/totoro-1.0.5/lib/totoro/services/subscribe_service.rb +0 -34
  39. data/pkg/totoro-1.0.5/lib/totoro/tasks/resend_message.rake +0 -8
  40. data/pkg/totoro-1.0.5/lib/totoro/utils.rb +0 -22
  41. data/pkg/totoro-1.0.5/lib/totoro/version.rb +0 -5
  42. data/pkg/totoro-1.0.5/pkg/totoro-1.0.4.gem +0 -0
  43. data/pkg/totoro-1.0.5/spec/spec_helper.rb +0 -14
  44. data/pkg/totoro-1.0.5/spec/totoro_spec.rb +0 -9
  45. data/pkg/totoro-1.0.5/test/rabbitmq_commands.txt +0 -6
  46. data/pkg/totoro-1.0.5/test/totoro_test/Gemfile +0 -43
  47. data/pkg/totoro-1.0.5/test/totoro_test/Gemfile.lock +0 -157
  48. data/pkg/totoro-1.0.5/test/totoro_test/README.md +0 -24
  49. data/pkg/totoro-1.0.5/test/totoro_test/Rakefile +0 -6
  50. data/pkg/totoro-1.0.5/test/totoro_test/app/channels/application_cable/channel.rb +0 -4
  51. data/pkg/totoro-1.0.5/test/totoro_test/app/channels/application_cable/connection.rb +0 -4
  52. data/pkg/totoro-1.0.5/test/totoro_test/app/controllers/application_controller.rb +0 -2
  53. data/pkg/totoro-1.0.5/test/totoro_test/app/jobs/application_job.rb +0 -2
  54. data/pkg/totoro-1.0.5/test/totoro_test/app/mailers/application_mailer.rb +0 -4
  55. data/pkg/totoro-1.0.5/test/totoro_test/app/models/application_record.rb +0 -3
  56. data/pkg/totoro-1.0.5/test/totoro_test/app/models/worker/example_queue.rb +0 -10
  57. data/pkg/totoro-1.0.5/test/totoro_test/app/models/worker/exchange_queue.rb +0 -10
  58. data/pkg/totoro-1.0.5/test/totoro_test/app/models/worker/shu_queue.rb +0 -10
  59. data/pkg/totoro-1.0.5/test/totoro_test/app/services/bench_mark.txt +0 -7
  60. data/pkg/totoro-1.0.5/test/totoro_test/app/services/load_test.rb +0 -19
  61. data/pkg/totoro-1.0.5/test/totoro_test/app/views/layouts/mailer.html.erb +0 -13
  62. data/pkg/totoro-1.0.5/test/totoro_test/app/views/layouts/mailer.text.erb +0 -1
  63. data/pkg/totoro-1.0.5/test/totoro_test/bin/bundle +0 -3
  64. data/pkg/totoro-1.0.5/test/totoro_test/bin/delayed_job +0 -5
  65. data/pkg/totoro-1.0.5/test/totoro_test/bin/rails +0 -9
  66. data/pkg/totoro-1.0.5/test/totoro_test/bin/rake +0 -9
  67. data/pkg/totoro-1.0.5/test/totoro_test/bin/setup +0 -34
  68. data/pkg/totoro-1.0.5/test/totoro_test/bin/spring +0 -17
  69. data/pkg/totoro-1.0.5/test/totoro_test/bin/update +0 -29
  70. data/pkg/totoro-1.0.5/test/totoro_test/config.ru +0 -5
  71. data/pkg/totoro-1.0.5/test/totoro_test/config/application.rb +0 -34
  72. data/pkg/totoro-1.0.5/test/totoro_test/config/boot.rb +0 -3
  73. data/pkg/totoro-1.0.5/test/totoro_test/config/cable.yml +0 -10
  74. data/pkg/totoro-1.0.5/test/totoro_test/config/database.yml +0 -55
  75. data/pkg/totoro-1.0.5/test/totoro_test/config/environment.rb +0 -5
  76. data/pkg/totoro-1.0.5/test/totoro_test/config/environments/development.rb +0 -47
  77. data/pkg/totoro-1.0.5/test/totoro_test/config/environments/production.rb +0 -82
  78. data/pkg/totoro-1.0.5/test/totoro_test/config/environments/test.rb +0 -41
  79. data/pkg/totoro-1.0.5/test/totoro_test/config/initializers/application_controller_renderer.rb +0 -8
  80. data/pkg/totoro-1.0.5/test/totoro_test/config/initializers/backtrace_silencers.rb +0 -7
  81. data/pkg/totoro-1.0.5/test/totoro_test/config/initializers/cors.rb +0 -16
  82. data/pkg/totoro-1.0.5/test/totoro_test/config/initializers/filter_parameter_logging.rb +0 -4
  83. data/pkg/totoro-1.0.5/test/totoro_test/config/initializers/inflections.rb +0 -16
  84. data/pkg/totoro-1.0.5/test/totoro_test/config/initializers/mime_types.rb +0 -4
  85. data/pkg/totoro-1.0.5/test/totoro_test/config/initializers/totoro.rb +0 -1
  86. data/pkg/totoro-1.0.5/test/totoro_test/config/initializers/wrap_parameters.rb +0 -14
  87. data/pkg/totoro-1.0.5/test/totoro_test/config/locales/en.yml +0 -33
  88. data/pkg/totoro-1.0.5/test/totoro_test/config/puma.rb +0 -56
  89. data/pkg/totoro-1.0.5/test/totoro_test/config/routes.rb +0 -3
  90. data/pkg/totoro-1.0.5/test/totoro_test/config/secrets.yml +0 -32
  91. data/pkg/totoro-1.0.5/test/totoro_test/config/spring.rb +0 -6
  92. data/pkg/totoro-1.0.5/test/totoro_test/config/totoro.yml +0 -42
  93. data/pkg/totoro-1.0.5/test/totoro_test/db/migrate/20181019041208_create_delayed_jobs.rb +0 -22
  94. data/pkg/totoro-1.0.5/test/totoro_test/db/migrate/20181019070846_create_totoro_failed_messages.rb +0 -11
  95. data/pkg/totoro-1.0.5/test/totoro_test/db/migrate/20181228033422_update_totoro_failed_messages.rb +0 -5
  96. data/pkg/totoro-1.0.5/test/totoro_test/db/schema.rb +0 -42
  97. data/pkg/totoro-1.0.5/test/totoro_test/db/seeds.rb +0 -7
  98. data/pkg/totoro-1.0.5/test/totoro_test/public/robots.txt +0 -1
  99. data/pkg/totoro-1.0.5/test/totoro_test/test/test_helper.rb +0 -10
  100. data/pkg/totoro-1.0.5/totoro.gemspec +0 -29
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'delayed_job_recurring'
4
-
5
- module Totoro
6
- class MessageResender
7
- include Delayed::RecurringJob
8
- run_every 10.second
9
- queue 'totoro'
10
- def perform
11
- Totoro::ResendService.new.resend_all_messages
12
- rescue StandardError => error
13
- Rails.logger.error error.message
14
- STDOUT.flush
15
- end
16
- end
17
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_record/railtie'
4
- module Totoro
5
- class TotoroFailedMessage < ActiveRecord::Base
6
- end
7
- end
8
- # Totoro.constants.select {|c| Totoro.const_get(c).is_a? Class}
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'totoro'
4
- require 'rails'
5
-
6
- module Totoro
7
- class Railtie < Rails::Railtie
8
- railtie_name :totoro
9
-
10
- rake_tasks do
11
- path = File.expand_path(__dir__)
12
- Dir.glob("#{path}/tasks/*.rake").each { |f| load f }
13
- end
14
- end
15
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Totoro
4
- class BroadcastService
5
- def initialize(connection, config)
6
- @connection = connection
7
- @config = config
8
- end
9
-
10
- def broadcast(exchange_id, payload)
11
- @connection.start unless @connection.connected?
12
- exchange = channel.fanout(@config.exchange(exchange_id))
13
- payload = JSON.dump payload
14
- exchange.publish(payload)
15
- Rails.logger.debug "send message to exchange #{@config.exchange(exchange_id)}"
16
- STDOUT.flush
17
- channel.close
18
- rescue Bunny::TCPConnectionFailedForAllHosts,
19
- Bunny::NetworkErrorWrapper,
20
- Bunny::ChannelAlreadyClosed,
21
- Bunny::ConnectionAlreadyClosed,
22
- AMQ::Protocol::EmptyResponseError => error
23
- @channel.close if @channel.present?
24
- raise(Totoro::ConnectionBreakError, "type: #{error.class}, message: #{error.message}")
25
- end
26
-
27
- private
28
-
29
- def channel
30
- @channel ||= @connection.create_channel
31
- end
32
- end
33
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Totoro
4
- class EnqueueService
5
- def initialize(connection, config)
6
- @connection = connection
7
- @config = config
8
- end
9
-
10
- def enqueue(id, payload)
11
- @connection.start unless @connection.connected?
12
- queue = channel.queue(*@config.queue(id))
13
- payload = JSON.dump payload
14
- exchange.publish(payload, routing_key: queue.name)
15
- Rails.logger.debug "send message to #{queue.name}"
16
- STDOUT.flush
17
- channel.close
18
- rescue Bunny::TCPConnectionFailedForAllHosts,
19
- Bunny::NetworkErrorWrapper,
20
- Bunny::ChannelAlreadyClosed,
21
- Bunny::ConnectionAlreadyClosed,
22
- AMQ::Protocol::EmptyResponseError => error
23
- @channel.close if @channel.present?
24
- raise(Totoro::ConnectionBreakError, "type: #{error.class}, message: #{error.message}")
25
- end
26
-
27
- private
28
-
29
- def channel
30
- @channel ||= @connection.create_channel
31
- end
32
-
33
- # default exchange is a direct exchange
34
- def exchange
35
- @exchange ||= channel.default_exchange
36
- end
37
- end
38
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Totoro
4
- class ResendService
5
- def resend_all_messages
6
- Totoro::TotoroFailedMessage.find_in_batches(batch_size: 100) do |message_group|
7
- message_group.each { |m| resend_message(m) }
8
- end
9
- end
10
-
11
- private
12
-
13
- def resend_message(failed_message)
14
- queue_class = failed_message.class_name.constantize
15
- queue_class.method(failed_message.group).call(failed_message.queue_id, failed_message.payload)
16
- failed_message.destroy
17
- end
18
- end
19
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Totoro
4
- class SubscribeService
5
- def initialize(config)
6
- @config = config
7
- end
8
-
9
- def subscribe(id)
10
- queue = bind_queue(id)
11
- queue.purge if @config.clean_start?(id)
12
- queue.subscribe(manual_ack: @config.manual_ack?(id)) do |delivery_info, metadata, payload|
13
- yield(delivery_info, metadata, payload)
14
- ensure
15
- channel.ack(delivery_info.delivery_tag) if @config.force_ack?(id)
16
- end
17
- end
18
-
19
- def channel
20
- @channel ||= Bunny.new(@config.connect).tap(&:start).create_channel
21
- end
22
-
23
- private
24
-
25
- def bind_queue(id)
26
- exchange_name = @config.exchange_name_for_queue(id)
27
- if exchange_name.nil?
28
- channel.queue(*@config.queue(id))
29
- else
30
- channel.queue(*@config.queue(id)).bind(exchange_name)
31
- end
32
- end
33
- end
34
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :totoro do
4
- desc 'resend failed message'
5
- task resend_msg: :environment do
6
- Totoro::MessageResender.schedule!
7
- end
8
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Totoro
4
- class Utils
5
- def underscore_hash_keys(value)
6
- case value
7
- when Array
8
- value.map { |v| underscore_hash_keys(v) }
9
- when Hash
10
- Hash[value.map { |k, v| [underscorize(k), underscore_hash_keys(v)] }]
11
- else
12
- value
13
- end
14
- end
15
-
16
- private
17
-
18
- def underscorize(hash_key)
19
- hash_key.to_s.underscore.to_sym
20
- end
21
- end
22
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Totoro
4
- VERSION = '1.0.5'
5
- end
@@ -1,14 +0,0 @@
1
- require 'bundler/setup'
2
- require 'totoro'
3
-
4
- RSpec.configure do |config|
5
- # Enable flags like --only-failures and --next-failure
6
- config.example_status_persistence_file_path = '.rspec_status'
7
-
8
- # Disable RSpec exposing methods globally on `Module` and `main`
9
- config.disable_monkey_patching!
10
-
11
- config.expect_with :rspec do |c|
12
- c.syntax = :expect
13
- end
14
- end
@@ -1,9 +0,0 @@
1
- RSpec.describe Totoro do
2
- it 'has a version number' do
3
- expect(Totoro::VERSION).not_to be nil
4
- end
5
-
6
- it 'does something useful' do
7
- expect(false).to eq(true)
8
- end
9
- end
@@ -1,6 +0,0 @@
1
-
2
- rabbitmqctl set_permissions -p / hui '.*' '.*' '.*'
3
- rabbitmqctl clear_permissions -p / hui
4
- rabbitmqctl close_all_connections "changed_user_permissions"
5
-
6
- Totoro::Queue.enqueue('example_queue', {shu: 123})
@@ -1,43 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- git_source(:github) do |repo_name|
4
- repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?('/')
5
- "https://github.com/#{repo_name}.git"
6
- end
7
-
8
- gem 'delayed_job_active_record'
9
- gem 'delayed_job_recurring'
10
- gem 'totoro', path: '/totoro'
11
- # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
12
- gem 'rails', '~> 5.1.6'
13
- # Use sqlite3 as the database for Active Record
14
- gem 'pg'
15
- # Use Puma as the app server
16
- gem 'puma', '~> 3.7'
17
- # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
18
- # gem 'jbuilder', '~> 2.5'
19
- # Use Redis adapter to run Action Cable in production
20
- # gem 'redis', '~> 4.0'
21
- # Use ActiveModel has_secure_password
22
- # gem 'bcrypt', '~> 3.1.7'
23
-
24
- # Use Capistrano for deployment
25
- # gem 'capistrano-rails', group: :development
26
-
27
- # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
28
- # gem 'rack-cors'
29
-
30
- group :development, :test do
31
- # Call 'byebug' anywhere in the code to stop execution and get a debugger console
32
- gem 'byebug', platforms: %i[mri mingw x64_mingw]
33
- end
34
-
35
- group :development do
36
- gem 'listen', '>= 3.0.5', '< 3.2'
37
- # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
38
- gem 'spring'
39
- gem 'spring-watcher-listen', '~> 2.0.0'
40
- end
41
-
42
- # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
43
- gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby]
@@ -1,157 +0,0 @@
1
- PATH
2
- remote: /totoro
3
- specs:
4
- totoro (1.0.2)
5
- bunny (~> 2.10)
6
- delayed_job_active_record (~> 4.1.3)
7
- delayed_job_recurring (~> 0.3.7)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- actioncable (5.1.6.1)
13
- actionpack (= 5.1.6.1)
14
- nio4r (~> 2.0)
15
- websocket-driver (~> 0.6.1)
16
- actionmailer (5.1.6.1)
17
- actionpack (= 5.1.6.1)
18
- actionview (= 5.1.6.1)
19
- activejob (= 5.1.6.1)
20
- mail (~> 2.5, >= 2.5.4)
21
- rails-dom-testing (~> 2.0)
22
- actionpack (5.1.6.1)
23
- actionview (= 5.1.6.1)
24
- activesupport (= 5.1.6.1)
25
- rack (~> 2.0)
26
- rack-test (>= 0.6.3)
27
- rails-dom-testing (~> 2.0)
28
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
- actionview (5.1.6.1)
30
- activesupport (= 5.1.6.1)
31
- builder (~> 3.1)
32
- erubi (~> 1.4)
33
- rails-dom-testing (~> 2.0)
34
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
- activejob (5.1.6.1)
36
- activesupport (= 5.1.6.1)
37
- globalid (>= 0.3.6)
38
- activemodel (5.1.6.1)
39
- activesupport (= 5.1.6.1)
40
- activerecord (5.1.6.1)
41
- activemodel (= 5.1.6.1)
42
- activesupport (= 5.1.6.1)
43
- arel (~> 8.0)
44
- activesupport (5.1.6.1)
45
- concurrent-ruby (~> 1.0, >= 1.0.2)
46
- i18n (>= 0.7, < 2)
47
- minitest (~> 5.1)
48
- tzinfo (~> 1.1)
49
- amq-protocol (2.3.0)
50
- arel (8.0.0)
51
- builder (3.2.3)
52
- bunny (2.13.0)
53
- amq-protocol (~> 2.3, >= 2.3.0)
54
- byebug (10.0.2)
55
- concurrent-ruby (1.1.4)
56
- crass (1.0.4)
57
- delayed_job (4.1.5)
58
- activesupport (>= 3.0, < 5.3)
59
- delayed_job_active_record (4.1.3)
60
- activerecord (>= 3.0, < 5.3)
61
- delayed_job (>= 3.0, < 5)
62
- delayed_job_recurring (0.3.8)
63
- delayed_job (>= 3.0)
64
- delayed_job_active_record
65
- erubi (1.8.0)
66
- ffi (1.10.0)
67
- globalid (0.4.1)
68
- activesupport (>= 4.2.0)
69
- i18n (1.5.1)
70
- concurrent-ruby (~> 1.0)
71
- listen (3.1.5)
72
- rb-fsevent (~> 0.9, >= 0.9.4)
73
- rb-inotify (~> 0.9, >= 0.9.7)
74
- ruby_dep (~> 1.2)
75
- loofah (2.2.3)
76
- crass (~> 1.0.2)
77
- nokogiri (>= 1.5.9)
78
- mail (2.7.1)
79
- mini_mime (>= 0.1.1)
80
- method_source (0.9.2)
81
- mini_mime (1.0.1)
82
- mini_portile2 (2.4.0)
83
- minitest (5.11.3)
84
- nio4r (2.3.1)
85
- nokogiri (1.10.0)
86
- mini_portile2 (~> 2.4.0)
87
- pg (1.1.4)
88
- puma (3.12.0)
89
- rack (2.0.6)
90
- rack-test (1.1.0)
91
- rack (>= 1.0, < 3)
92
- rails (5.1.6.1)
93
- actioncable (= 5.1.6.1)
94
- actionmailer (= 5.1.6.1)
95
- actionpack (= 5.1.6.1)
96
- actionview (= 5.1.6.1)
97
- activejob (= 5.1.6.1)
98
- activemodel (= 5.1.6.1)
99
- activerecord (= 5.1.6.1)
100
- activesupport (= 5.1.6.1)
101
- bundler (>= 1.3.0)
102
- railties (= 5.1.6.1)
103
- sprockets-rails (>= 2.0.0)
104
- rails-dom-testing (2.0.3)
105
- activesupport (>= 4.2.0)
106
- nokogiri (>= 1.6)
107
- rails-html-sanitizer (1.0.4)
108
- loofah (~> 2.2, >= 2.2.2)
109
- railties (5.1.6.1)
110
- actionpack (= 5.1.6.1)
111
- activesupport (= 5.1.6.1)
112
- method_source
113
- rake (>= 0.8.7)
114
- thor (>= 0.18.1, < 2.0)
115
- rake (12.3.2)
116
- rb-fsevent (0.10.3)
117
- rb-inotify (0.10.0)
118
- ffi (~> 1.0)
119
- ruby_dep (1.5.0)
120
- spring (2.0.2)
121
- activesupport (>= 4.2)
122
- spring-watcher-listen (2.0.1)
123
- listen (>= 2.7, < 4.0)
124
- spring (>= 1.2, < 3.0)
125
- sprockets (3.7.2)
126
- concurrent-ruby (~> 1.0)
127
- rack (> 1, < 3)
128
- sprockets-rails (3.2.1)
129
- actionpack (>= 4.0)
130
- activesupport (>= 4.0)
131
- sprockets (>= 3.0.0)
132
- thor (0.20.3)
133
- thread_safe (0.3.6)
134
- tzinfo (1.2.5)
135
- thread_safe (~> 0.1)
136
- websocket-driver (0.6.5)
137
- websocket-extensions (>= 0.1.0)
138
- websocket-extensions (0.1.3)
139
-
140
- PLATFORMS
141
- ruby
142
-
143
- DEPENDENCIES
144
- byebug
145
- delayed_job_active_record
146
- delayed_job_recurring
147
- listen (>= 3.0.5, < 3.2)
148
- pg
149
- puma (~> 3.7)
150
- rails (~> 5.1.6)
151
- spring
152
- spring-watcher-listen (~> 2.0.0)
153
- totoro!
154
- tzinfo-data
155
-
156
- BUNDLED WITH
157
- 1.16.1