rails-queue-it 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +116 -0
  3. data/.circleci/setup-rubygems.sh +3 -0
  4. data/.editorconfig +24 -0
  5. data/.gitignore +9 -0
  6. data/.rspec +3 -0
  7. data/.rubocop.yml +503 -0
  8. data/.ruby-version +1 -0
  9. data/CHANGELOG.md +7 -0
  10. data/Gemfile +15 -0
  11. data/Gemfile.lock +277 -0
  12. data/Guardfile +12 -0
  13. data/LICENSE.txt +21 -0
  14. data/README.md +202 -0
  15. data/Rakefile +10 -0
  16. data/app/assets/config/queue_it_manifest.js +1 -0
  17. data/app/assets/images/queue_it/.keep +0 -0
  18. data/app/assets/stylesheets/queue_it/application.css +15 -0
  19. data/app/controllers/queue_it/application_controller.rb +5 -0
  20. data/app/helpers/queue_it/application_helper.rb +4 -0
  21. data/app/jobs/queue_it/application_job.rb +4 -0
  22. data/app/mailers/queue_it/application_mailer.rb +6 -0
  23. data/app/models/concerns/queue_it/queable.rb +89 -0
  24. data/app/models/queue_it/application_record.rb +5 -0
  25. data/app/models/queue_it/node.rb +68 -0
  26. data/app/models/queue_it/queue.rb +111 -0
  27. data/app/views/layouts/queue_it/application.html.erb +15 -0
  28. data/bin/rails +25 -0
  29. data/config/routes.rb +2 -0
  30. data/db/migrate/20210723140008_create_queue_it_queues.rb +10 -0
  31. data/db/migrate/20210723140434_create_queue_it_nodes.rb +12 -0
  32. data/lib/generators/queue_it/install/USAGE +5 -0
  33. data/lib/generators/queue_it/install/install_generator.rb +19 -0
  34. data/lib/generators/queue_it/install/templates/initializer.rb +2 -0
  35. data/lib/queue_it.rb +25 -0
  36. data/lib/queue_it/engine.rb +15 -0
  37. data/lib/queue_it/example_class.rb +7 -0
  38. data/lib/queue_it/version.rb +3 -0
  39. data/lib/tasks/auto_annotate_models.rake +67 -0
  40. data/lib/tasks/queue_it_tasks.rake +4 -0
  41. data/queue_it.gemspec +38 -0
  42. data/spec/concerns/queue_it/queable_spec.rb +492 -0
  43. data/spec/dummy/Rakefile +6 -0
  44. data/spec/dummy/app/assets/config/manifest.js +3 -0
  45. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  46. data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
  47. data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
  48. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  49. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  50. data/spec/dummy/app/javascript/packs/application.js +15 -0
  51. data/spec/dummy/app/jobs/application_job.rb +7 -0
  52. data/spec/dummy/app/mailers/application_mailer.rb +4 -0
  53. data/spec/dummy/app/models/application_record.rb +3 -0
  54. data/spec/dummy/app/models/task.rb +3 -0
  55. data/spec/dummy/app/models/user.rb +2 -0
  56. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  57. data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  58. data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  59. data/spec/dummy/bin/rails +4 -0
  60. data/spec/dummy/bin/rake +4 -0
  61. data/spec/dummy/bin/setup +33 -0
  62. data/spec/dummy/config.ru +5 -0
  63. data/spec/dummy/config/application.rb +30 -0
  64. data/spec/dummy/config/boot.rb +5 -0
  65. data/spec/dummy/config/cable.yml +10 -0
  66. data/spec/dummy/config/database.yml +27 -0
  67. data/spec/dummy/config/environment.rb +5 -0
  68. data/spec/dummy/config/environments/development.rb +81 -0
  69. data/spec/dummy/config/environments/production.rb +112 -0
  70. data/spec/dummy/config/environments/test.rb +49 -0
  71. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  72. data/spec/dummy/config/initializers/assets.rb +12 -0
  73. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  74. data/spec/dummy/config/initializers/content_security_policy.rb +28 -0
  75. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  76. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  77. data/spec/dummy/config/initializers/inflections.rb +16 -0
  78. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  79. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  80. data/spec/dummy/config/locales/en.yml +33 -0
  81. data/spec/dummy/config/puma.rb +38 -0
  82. data/spec/dummy/config/routes.rb +3 -0
  83. data/spec/dummy/config/spring.rb +6 -0
  84. data/spec/dummy/config/storage.yml +34 -0
  85. data/spec/dummy/db/migrate/20210723142357_create_users.rb +9 -0
  86. data/spec/dummy/db/migrate/20210723172002_create_tasks.rb +9 -0
  87. data/spec/dummy/db/schema.rb +52 -0
  88. data/spec/dummy/public/404.html +67 -0
  89. data/spec/dummy/public/422.html +67 -0
  90. data/spec/dummy/public/500.html +66 -0
  91. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  92. data/spec/dummy/public/apple-touch-icon.png +0 -0
  93. data/spec/dummy/public/favicon.ico +0 -0
  94. data/spec/dummy/spec/models/task_spec.rb +7 -0
  95. data/spec/dummy/spec/models/user_spec.rb +7 -0
  96. data/spec/factories/queue_it/nodes.rb +18 -0
  97. data/spec/factories/queue_it/queues.rb +26 -0
  98. data/spec/factories/tasks.rb +11 -0
  99. data/spec/factories/users.rb +5 -0
  100. data/spec/fixtures/files/image.png +0 -0
  101. data/spec/fixtures/files/video.mp4 +0 -0
  102. data/spec/models/queue_it/node_spec.rb +43 -0
  103. data/spec/models/queue_it/queue_spec.rb +116 -0
  104. data/spec/queue_it_spec.rb +16 -0
  105. data/spec/rails_helper.rb +52 -0
  106. data/spec/spec_helper.rb +9 -0
  107. data/spec/support/test_helpers.rb +5 -0
  108. metadata +441 -0
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
File without changes
@@ -0,0 +1,7 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe Task, type: :model do
4
+ it "has a valid factory" do
5
+ expect(build(:queue)).to be_valid
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe User, type: :model do
4
+ it "has a valid factory" do
5
+ expect(build(:user)).to be_valid
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ FactoryBot.define do
2
+ factory :node, class: 'QueueIt::Node' do
3
+ nodable { create(:user) }
4
+ queue
5
+
6
+ trait :head do
7
+ kind { :head }
8
+ end
9
+
10
+ trait :any do
11
+ kind { :any }
12
+ end
13
+
14
+ trait :tail do
15
+ kind { :tail }
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ FactoryBot.define do
2
+ factory :queue, class: 'QueueIt::Queue' do
3
+ queable { create(:task) }
4
+
5
+ trait :with_one_node do
6
+ after(:create) do |queue|
7
+ create(:node, :head, queue: queue)
8
+ end
9
+ end
10
+
11
+ trait :with_two_nodes do
12
+ after(:create) do |queue|
13
+ head_node = create(:node, :head, queue: queue)
14
+ create(:node, :tail, queue: queue, parent_node: head_node)
15
+ end
16
+ end
17
+
18
+ trait :with_three_nodes do
19
+ after(:create) do |queue|
20
+ head_node = create(:node, :head, queue: queue)
21
+ any_node = create(:node, :any, queue: queue, parent_node: head_node)
22
+ create(:node, :tail, queue: queue, parent_node: any_node)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,11 @@
1
+ FactoryBot.define do
2
+ factory :task do
3
+ name { "My Task" }
4
+
5
+ trait :with_three_nodes do
6
+ after(:create) do |task|
7
+ create(:queue, :with_three_nodes, queable: task)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ FactoryBot.define do
2
+ factory :user do
3
+ name { Faker::Name.first_name }
4
+ end
5
+ end
Binary file
Binary file
@@ -0,0 +1,43 @@
1
+ require 'rails_helper'
2
+
3
+ module QueueIt
4
+ RSpec.describe Node, type: :model do
5
+ it "has a valid factory" do
6
+ expect(build(:node, :head)).to be_valid
7
+ end
8
+
9
+ describe 'relations' do
10
+ it { is_expected.to belong_to(:nodable) }
11
+ it { is_expected.to belong_to(:queue).optional }
12
+ it { is_expected.to belong_to(:parent_node).class_name('QueueIt::Node').optional }
13
+ it { is_expected.to have_one(:child_node) }
14
+ end
15
+
16
+ describe 'validations' do
17
+ let(:queue) { create(:queue) }
18
+ let(:first_nodable) { create(:user) }
19
+ let(:second_nodable) { create(:user) }
20
+ let(:third_nodable) { create(:user) }
21
+
22
+ def create_node(nodable, kind)
23
+ create(:node, queue: queue, kind: kind, nodable: nodable)
24
+ end
25
+
26
+ describe 'when queue already has one head node' do
27
+ let!(:node) { create(:node, queue: queue, nodable: first_nodable, kind: :head) }
28
+
29
+ it 'expects to raise invalid record error' do
30
+ expect { create_node(second_nodable, :head) }.to raise_error(ActiveRecord::RecordInvalid)
31
+ end
32
+ end
33
+
34
+ describe 'when queue already has one tail node' do
35
+ let!(:node) { create(:node, queue: queue, nodable: first_nodable, kind: :tail) }
36
+
37
+ it 'expects to raise invalid record error' do
38
+ expect { create_node(second_nodable, :tail) }.to raise_error(ActiveRecord::RecordInvalid)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,116 @@
1
+ require 'rails_helper'
2
+
3
+ module QueueIt
4
+ RSpec.describe Queue, type: :model do
5
+ it "has a valid factory" do
6
+ expect(build(:queue)).to be_valid
7
+ end
8
+
9
+ describe 'relations' do
10
+ it { is_expected.to belong_to(:queable) }
11
+ it { is_expected.to have_many(:nodes) }
12
+ end
13
+
14
+ describe '#get_next_in_queue_with_length_two' do
15
+ let(:queue) { create(:queue, :with_two_nodes) }
16
+ let!(:original_head) { queue.head_node }
17
+ let!(:original_tail) { queue.tail_node }
18
+
19
+ it { expect(queue.get_next_in_queue_with_length_two).to eq(original_head) }
20
+
21
+ it 'expect original head to be the tail node' do
22
+ queue.get_next_in_queue_with_length_two
23
+ expect(queue.tail_node).to eq(original_head)
24
+ expect(original_head.child_node).to be(nil)
25
+ end
26
+
27
+ it 'expects original tail node to be head node' do
28
+ queue.get_next_in_queue_with_length_two
29
+ expect(queue.head_node).to eq(original_tail)
30
+ expect(original_tail.reload.child_node).to eq(original_head.reload)
31
+ end
32
+ end
33
+
34
+ describe '#get_next_in_queue_generic' do
35
+ let(:queue) { create(:queue, :with_three_nodes) }
36
+ let!(:original_head) { queue.head_node }
37
+ let!(:original_any) { queue.head_node.child_node }
38
+ let!(:original_tail) { queue.tail_node }
39
+
40
+ it { expect(queue.get_next_in_queue_with_length_two).to eq(original_head) }
41
+
42
+ it 'expects original head to be the tail node' do
43
+ queue.get_next_in_queue_generic
44
+ expect(queue.tail_node).to eq(original_head)
45
+ expect(original_head.child_node).to be(nil)
46
+ end
47
+
48
+ it 'expects orginal any to be the head node' do
49
+ queue.get_next_in_queue_generic
50
+ expect(queue.head_node).to eq(original_any)
51
+ expect(original_any.reload.child_node).to eq(original_tail.reload)
52
+ expect(original_tail.reload.child_node).to eq(original_head.reload)
53
+ end
54
+
55
+ it 'expects original tail node to be any node' do
56
+ queue.get_next_in_queue_generic
57
+ expect(queue.head_node.child_node).to eq(original_tail)
58
+ expect(original_tail.reload.child_node).to eq(original_head.reload)
59
+ end
60
+ end
61
+
62
+ describe '#push_node_when_queue_length_is_zero' do
63
+ let(:queue) { create(:queue) }
64
+ let(:nodable) { create(:user) }
65
+
66
+ it 'expects nodable to be in head node' do
67
+ queue.push_node_when_queue_length_is_zero(nodable)
68
+ expect(queue.head_node.nodable).to eq(nodable)
69
+ end
70
+ end
71
+
72
+ describe '#push_node_when_queue_length_is_one' do
73
+ let(:queue) { create(:queue, :with_one_node) }
74
+ let(:nodable) { create(:user) }
75
+ let(:in_head) { true }
76
+
77
+ it 'expects nodable to be in head node' do
78
+ queue.push_node_when_queue_length_is_one(nodable, in_head)
79
+ expect(queue.head_node.nodable).to eq(nodable)
80
+ end
81
+
82
+ context 'when in_head is false' do
83
+ let(:in_head) { false }
84
+
85
+ it 'expects nodable to be in tail node' do
86
+ queue.push_node_when_queue_length_is_one(nodable, in_head)
87
+ expect(queue.tail_node.nodable).to eq(nodable)
88
+ end
89
+ end
90
+ end
91
+
92
+ describe '#push_in_head' do
93
+ let(:queue) { create(:queue, :with_one_node) }
94
+ let(:nodable) { create(:user) }
95
+
96
+ it 'expects nodable to be in head node' do
97
+ old_head_node = queue.head_node
98
+ queue.push_in_head(nodable)
99
+ expect(queue.head_node.nodable).to eq(nodable)
100
+ expect(old_head_node.reload.parent_node).to eq(queue.head_node)
101
+ end
102
+ end
103
+
104
+ describe '#push_in_tail' do
105
+ let(:queue) { create(:queue, :with_two_nodes) }
106
+ let(:nodable) { create(:user) }
107
+
108
+ it 'expects nodable to be in tail node' do
109
+ old_tail_node = queue.tail_node
110
+ queue.push_in_tail(nodable)
111
+ expect(queue.tail_node.nodable).to eq(nodable)
112
+ expect(queue.tail_node.parent_node).to eq(old_tail_node)
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,16 @@
1
+ require "rails_helper"
2
+
3
+ describe QueueIt::ExampleClass do
4
+ before do
5
+ helper_example
6
+ end
7
+
8
+ it "says hi" do
9
+ expect(described_class.say_hi).to eq("Hello Platanus developer!")
10
+ end
11
+
12
+ it "uses fixtures" do
13
+ file = fixture_file_upload("image.png", "image/png")
14
+ expect(file.original_filename).to eq("image.png")
15
+ end
16
+ end
@@ -0,0 +1,52 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+ require 'faker'
4
+ require "shoulda/matchers"
5
+
6
+ formatters = [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter]
7
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter::new(formatters)
8
+
9
+ SimpleCov.start do
10
+ add_filter do |src|
11
+ r = [
12
+ src.filename =~ /lib/,
13
+ src.filename =~ /models/,
14
+ src.filename =~ /controllers/
15
+ ].uniq
16
+ r.count == 1 && r.first.nil?
17
+ end
18
+
19
+ add_filter "engine.rb"
20
+ add_filter "spec.rb"
21
+ end
22
+
23
+ ENV["RAILS_ENV"] ||= "test"
24
+ require File.expand_path("../../spec/dummy/config/environment", __FILE__)
25
+ abort("The Rails environment is running in production mode!") if Rails.env.production?
26
+ require "pry"
27
+ require "spec_helper"
28
+ require "rspec/rails"
29
+ require "factory_bot_rails"
30
+
31
+ Dir[::QueueIt::Engine.root.join("spec/support/**/*.rb")].sort.each { |f| require f }
32
+
33
+ Shoulda::Matchers.configure do |config|
34
+ config.integrate do |with|
35
+ with.test_framework :rspec
36
+ with.library :rails
37
+ end
38
+ end
39
+
40
+ RSpec.configure do |config|
41
+ config.fixture_path = "#{::QueueIt::Engine.root}/spec/assets"
42
+ config.use_transactional_fixtures = true
43
+ config.infer_spec_type_from_file_location!
44
+ config.filter_rails_from_backtrace!
45
+
46
+ config.filter_run :focus
47
+ config.run_all_when_everything_filtered = true
48
+
49
+ config.include FactoryBot::Syntax::Methods
50
+ config.include ActionDispatch::TestProcess
51
+ config.include TestHelpers
52
+ 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
@@ -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
metadata ADDED
@@ -0,0 +1,441 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails-queue-it
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Platanus
8
+ - Gabriel Lyon
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2021-08-19 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: '6.0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '6.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: annotate
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '3.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '3.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 2.2.15
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 2.2.15
56
+ - !ruby/object:Gem::Dependency
57
+ name: coveralls
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: factory_bot_rails
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: faker
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: pg
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: pry
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
+ - !ruby/object:Gem::Dependency
141
+ name: pry-rails
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: rspec_junit_formatter
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ - !ruby/object:Gem::Dependency
169
+ name: rspec-rails
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ - !ruby/object:Gem::Dependency
183
+ name: rubocop
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '1.9'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '1.9'
196
+ - !ruby/object:Gem::Dependency
197
+ name: rubocop-rails
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: shoulda-matchers
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ - !ruby/object:Gem::Dependency
225
+ name: sqlite3
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ description: ''
239
+ email:
240
+ - rubygems@platan.us
241
+ - gabriel@platan.us
242
+ executables: []
243
+ extensions: []
244
+ extra_rdoc_files: []
245
+ files:
246
+ - ".circleci/config.yml"
247
+ - ".circleci/setup-rubygems.sh"
248
+ - ".editorconfig"
249
+ - ".gitignore"
250
+ - ".rspec"
251
+ - ".rubocop.yml"
252
+ - ".ruby-version"
253
+ - CHANGELOG.md
254
+ - Gemfile
255
+ - Gemfile.lock
256
+ - Guardfile
257
+ - LICENSE.txt
258
+ - README.md
259
+ - Rakefile
260
+ - app/assets/config/queue_it_manifest.js
261
+ - app/assets/images/queue_it/.keep
262
+ - app/assets/stylesheets/queue_it/application.css
263
+ - app/controllers/queue_it/application_controller.rb
264
+ - app/helpers/queue_it/application_helper.rb
265
+ - app/jobs/queue_it/application_job.rb
266
+ - app/mailers/queue_it/application_mailer.rb
267
+ - app/models/concerns/queue_it/queable.rb
268
+ - app/models/queue_it/application_record.rb
269
+ - app/models/queue_it/node.rb
270
+ - app/models/queue_it/queue.rb
271
+ - app/views/layouts/queue_it/application.html.erb
272
+ - bin/rails
273
+ - config/routes.rb
274
+ - db/migrate/20210723140008_create_queue_it_queues.rb
275
+ - db/migrate/20210723140434_create_queue_it_nodes.rb
276
+ - lib/generators/queue_it/install/USAGE
277
+ - lib/generators/queue_it/install/install_generator.rb
278
+ - lib/generators/queue_it/install/templates/initializer.rb
279
+ - lib/queue_it.rb
280
+ - lib/queue_it/engine.rb
281
+ - lib/queue_it/example_class.rb
282
+ - lib/queue_it/version.rb
283
+ - lib/tasks/auto_annotate_models.rake
284
+ - lib/tasks/queue_it_tasks.rake
285
+ - queue_it.gemspec
286
+ - spec/concerns/queue_it/queable_spec.rb
287
+ - spec/dummy/Rakefile
288
+ - spec/dummy/app/assets/config/manifest.js
289
+ - spec/dummy/app/assets/stylesheets/application.css
290
+ - spec/dummy/app/channels/application_cable/channel.rb
291
+ - spec/dummy/app/channels/application_cable/connection.rb
292
+ - spec/dummy/app/controllers/application_controller.rb
293
+ - spec/dummy/app/helpers/application_helper.rb
294
+ - spec/dummy/app/javascript/packs/application.js
295
+ - spec/dummy/app/jobs/application_job.rb
296
+ - spec/dummy/app/mailers/application_mailer.rb
297
+ - spec/dummy/app/models/application_record.rb
298
+ - spec/dummy/app/models/task.rb
299
+ - spec/dummy/app/models/user.rb
300
+ - spec/dummy/app/views/layouts/application.html.erb
301
+ - spec/dummy/app/views/layouts/mailer.html.erb
302
+ - spec/dummy/app/views/layouts/mailer.text.erb
303
+ - spec/dummy/bin/rails
304
+ - spec/dummy/bin/rake
305
+ - spec/dummy/bin/setup
306
+ - spec/dummy/config.ru
307
+ - spec/dummy/config/application.rb
308
+ - spec/dummy/config/boot.rb
309
+ - spec/dummy/config/cable.yml
310
+ - spec/dummy/config/database.yml
311
+ - spec/dummy/config/environment.rb
312
+ - spec/dummy/config/environments/development.rb
313
+ - spec/dummy/config/environments/production.rb
314
+ - spec/dummy/config/environments/test.rb
315
+ - spec/dummy/config/initializers/application_controller_renderer.rb
316
+ - spec/dummy/config/initializers/assets.rb
317
+ - spec/dummy/config/initializers/backtrace_silencers.rb
318
+ - spec/dummy/config/initializers/content_security_policy.rb
319
+ - spec/dummy/config/initializers/cookies_serializer.rb
320
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
321
+ - spec/dummy/config/initializers/inflections.rb
322
+ - spec/dummy/config/initializers/mime_types.rb
323
+ - spec/dummy/config/initializers/wrap_parameters.rb
324
+ - spec/dummy/config/locales/en.yml
325
+ - spec/dummy/config/puma.rb
326
+ - spec/dummy/config/routes.rb
327
+ - spec/dummy/config/spring.rb
328
+ - spec/dummy/config/storage.yml
329
+ - spec/dummy/db/migrate/20210723142357_create_users.rb
330
+ - spec/dummy/db/migrate/20210723172002_create_tasks.rb
331
+ - spec/dummy/db/schema.rb
332
+ - spec/dummy/public/404.html
333
+ - spec/dummy/public/422.html
334
+ - spec/dummy/public/500.html
335
+ - spec/dummy/public/apple-touch-icon-precomposed.png
336
+ - spec/dummy/public/apple-touch-icon.png
337
+ - spec/dummy/public/favicon.ico
338
+ - spec/dummy/spec/models/task_spec.rb
339
+ - spec/dummy/spec/models/user_spec.rb
340
+ - spec/factories/queue_it/nodes.rb
341
+ - spec/factories/queue_it/queues.rb
342
+ - spec/factories/tasks.rb
343
+ - spec/factories/users.rb
344
+ - spec/fixtures/files/image.png
345
+ - spec/fixtures/files/video.mp4
346
+ - spec/models/queue_it/node_spec.rb
347
+ - spec/models/queue_it/queue_spec.rb
348
+ - spec/queue_it_spec.rb
349
+ - spec/rails_helper.rb
350
+ - spec/spec_helper.rb
351
+ - spec/support/test_helpers.rb
352
+ homepage: https://github.com/platanus/queue_it/master
353
+ licenses:
354
+ - MIT
355
+ metadata: {}
356
+ post_install_message:
357
+ rdoc_options: []
358
+ require_paths:
359
+ - lib
360
+ required_ruby_version: !ruby/object:Gem::Requirement
361
+ requirements:
362
+ - - ">="
363
+ - !ruby/object:Gem::Version
364
+ version: '0'
365
+ required_rubygems_version: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - ">="
368
+ - !ruby/object:Gem::Version
369
+ version: '0'
370
+ requirements: []
371
+ rubygems_version: 3.1.6
372
+ signing_key:
373
+ specification_version: 4
374
+ summary: ''
375
+ test_files:
376
+ - spec/concerns/queue_it/queable_spec.rb
377
+ - spec/dummy/Rakefile
378
+ - spec/dummy/app/assets/config/manifest.js
379
+ - spec/dummy/app/assets/stylesheets/application.css
380
+ - spec/dummy/app/channels/application_cable/channel.rb
381
+ - spec/dummy/app/channels/application_cable/connection.rb
382
+ - spec/dummy/app/controllers/application_controller.rb
383
+ - spec/dummy/app/helpers/application_helper.rb
384
+ - spec/dummy/app/javascript/packs/application.js
385
+ - spec/dummy/app/jobs/application_job.rb
386
+ - spec/dummy/app/mailers/application_mailer.rb
387
+ - spec/dummy/app/models/application_record.rb
388
+ - spec/dummy/app/models/task.rb
389
+ - spec/dummy/app/models/user.rb
390
+ - spec/dummy/app/views/layouts/application.html.erb
391
+ - spec/dummy/app/views/layouts/mailer.html.erb
392
+ - spec/dummy/app/views/layouts/mailer.text.erb
393
+ - spec/dummy/bin/rails
394
+ - spec/dummy/bin/rake
395
+ - spec/dummy/bin/setup
396
+ - spec/dummy/config.ru
397
+ - spec/dummy/config/application.rb
398
+ - spec/dummy/config/boot.rb
399
+ - spec/dummy/config/cable.yml
400
+ - spec/dummy/config/database.yml
401
+ - spec/dummy/config/environment.rb
402
+ - spec/dummy/config/environments/development.rb
403
+ - spec/dummy/config/environments/production.rb
404
+ - spec/dummy/config/environments/test.rb
405
+ - spec/dummy/config/initializers/application_controller_renderer.rb
406
+ - spec/dummy/config/initializers/assets.rb
407
+ - spec/dummy/config/initializers/backtrace_silencers.rb
408
+ - spec/dummy/config/initializers/content_security_policy.rb
409
+ - spec/dummy/config/initializers/cookies_serializer.rb
410
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
411
+ - spec/dummy/config/initializers/inflections.rb
412
+ - spec/dummy/config/initializers/mime_types.rb
413
+ - spec/dummy/config/initializers/wrap_parameters.rb
414
+ - spec/dummy/config/locales/en.yml
415
+ - spec/dummy/config/puma.rb
416
+ - spec/dummy/config/routes.rb
417
+ - spec/dummy/config/spring.rb
418
+ - spec/dummy/config/storage.yml
419
+ - spec/dummy/db/migrate/20210723142357_create_users.rb
420
+ - spec/dummy/db/migrate/20210723172002_create_tasks.rb
421
+ - spec/dummy/db/schema.rb
422
+ - spec/dummy/public/404.html
423
+ - spec/dummy/public/422.html
424
+ - spec/dummy/public/500.html
425
+ - spec/dummy/public/apple-touch-icon-precomposed.png
426
+ - spec/dummy/public/apple-touch-icon.png
427
+ - spec/dummy/public/favicon.ico
428
+ - spec/dummy/spec/models/task_spec.rb
429
+ - spec/dummy/spec/models/user_spec.rb
430
+ - spec/factories/queue_it/nodes.rb
431
+ - spec/factories/queue_it/queues.rb
432
+ - spec/factories/tasks.rb
433
+ - spec/factories/users.rb
434
+ - spec/fixtures/files/image.png
435
+ - spec/fixtures/files/video.mp4
436
+ - spec/models/queue_it/node_spec.rb
437
+ - spec/models/queue_it/queue_spec.rb
438
+ - spec/queue_it_spec.rb
439
+ - spec/rails_helper.rb
440
+ - spec/spec_helper.rb
441
+ - spec/support/test_helpers.rb