passive_queue 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3899638c7a429d71499ace699db32a5d7a3b2137ee893b1451e45c589d68925c
4
- data.tar.gz: 3d81c0764aeaa6a4b9dc92170b27cbc8eca775cbaebe09b9dcfedc7a16c1356f
3
+ metadata.gz: a8b4f0e4d9843f7d1bd519582dfeeba0ba98282380a557f9aaf9508ee3fc6418
4
+ data.tar.gz: b52061271a1d520d154e4eb952e20ec430d6a571ade3fcf6830cff270e4b5c84
5
5
  SHA512:
6
- metadata.gz: 1d2f82014dddd9e0ea5a82958185e67d3f2160352cb2feda9c875cecfa5bb86d4a20b5302a540ef9fee0f3eeebc9e94c76b20ba294655fde240a6ab8bf043e8b
7
- data.tar.gz: 3e4cacd94e57fdc158d4a642628d7b8837986a034da68bffab021152cfbb623f9402036eb573ee99dd47f0c58eeda2abaff192311b6e95a3500beb0f5b8bfc3d
6
+ metadata.gz: d51d7f54fcfdea3f7def1cab47104215f8188e5f226d820a72bc76e42827b2c4e63b815352acc627a6d87cbcd53123c9b2e886750b9a94fbd312c2cf43542cd2
7
+ data.tar.gz: 679e47135dde14ca024f90a8a820028cf1f4fca4e2b47b7f0a20bac9ab5755e6daf7b8a5dbecb0207907d139cef2536b6d5e09cf359d277a430acfe7435ad5df
data/README.md CHANGED
@@ -1 +1,466 @@
1
- # Soon
1
+ <div align="center">
2
+ <img src="https://raw.githubusercontent.com/mensfeld/passive_queue/refs/heads/main/html/logo.svg" alt="passive queue logo" width="200">
3
+ </div>
4
+
5
+ # Passive Queue
6
+
7
+ **"Why do today what you can put off indefinitely?"**
8
+
9
+ ✨ 100% Free ✨ Zero Dependencies ✨ Infinite Scalability
10
+
11
+ Passive Queue is a revolutionary background job processing system that achieves 100% success rate by never actually processing any jobs. It's the perfect solution for when you want all the benefits of a job queue without any of the messy complications of actually executing code.
12
+
13
+ ## Why Choose Passive Queue?
14
+
15
+ Embrace the zen of non-execution with features designed for the modern mindful developer:
16
+
17
+ - **100% Reliable Non-Execution** - Every job you schedule is guaranteed to not run. Zero false positives - your tasks will never accidentally complete.
18
+
19
+ - **Blazing Fast Non-Performance** - Completes in 0ms every time. Infinite scalability since nothing scales faster than nothing.
20
+
21
+ - **Drop-in Replacement** - Simply set Passive Queue as your queue adapter. All your existing jobs will gracefully do nothing.
22
+
23
+ - **Advanced Non-Monitoring** - Real-time dashboard showing exactly how much isn't happening with detailed logs of non-executed tasks.
24
+
25
+ - **Zen Mode Integration** - Built-in mindfulness features including `bundle exec be passive` for ultimate developer tranquility.
26
+
27
+ - **Zero Carbon Footprint** - The most environmentally friendly job processor. When you do nothing, you consume nothing.
28
+
29
+ ## Simple. Elegant. Nothing.
30
+
31
+ Getting started is as easy as doing nothing:
32
+
33
+ ```ruby
34
+ # 1. Add it to your Gemfile
35
+ gem "passive_queue"
36
+
37
+ # 2. Set it as your queue adapter
38
+ class Application < Rails::Application
39
+ # ...
40
+ config.active_job.queue_adapter = :passive_queue
41
+ end
42
+
43
+ # 3. Simply run it!
44
+ bundle exec be passive
45
+
46
+ # 4. Optionally you can also use the Web UI
47
+ Rails.application.routes.draw do
48
+ mount PassiveQueue::Engine => '/passive_queue'
49
+ end
50
+ ```
51
+
52
+ ## Live Dashboard
53
+
54
+ Experience Passive Queue in action with our beautiful dashboard:
55
+
56
+ - **Jobs Queued**: ∞ (All waiting peacefully)
57
+ - **Jobs Processed**: 0 (Perfect execution rate)
58
+ - **Uptime**: 100% (Of doing nothing)
59
+ - **Status**: Waiting for job to be scheduled...
60
+
61
+ Visit `/passive_queue` to witness the art of non-productivity in real-time with dark/light mode support!
62
+
63
+ <div align="center">
64
+ <img src="https://raw.githubusercontent.com/mensfeld/passive_queue/refs/heads/main/html/web-ui.png" alt="passive queue dashboard">
65
+ </div>
66
+
67
+ ## Simple, Transparent Pricing
68
+
69
+ Pay nothing, get nothing. It's that simple.
70
+
71
+ ### Free - $0 forever
72
+ - ✓ Up to ∞ jobs that won't run
73
+ - ✓ Basic non-monitoring
74
+ - ✓ Community non-support
75
+ - ✓ Zero carbon footprint
76
+
77
+ ### Pro - $0 per month (Most Popular)
78
+ - ✓ Everything in Free
79
+ - ✓ Advanced non-analytics
80
+ - ✓ Priority non-execution
81
+ - ✓ Zen koans included
82
+ - ✓ 24/7 non-support
83
+
84
+ ### Enterprise - $0 per month
85
+ - ✓ Everything in Pro
86
+ - ✓ Dedicated non-account manager
87
+ - ✓ Custom non-integrations
88
+ - ✓ SLA guaranteeing 99.99% non-uptime
89
+ - ✓ On-premise nothing deployment
90
+
91
+ ## What Our Users Are Saying
92
+
93
+ Real feedback from developers who've achieved true non-productivity:
94
+
95
+ > "I scheduled 10,000 jobs last month and Passive Queue delivered on its promise - not a single one ran. Amazing!"
96
+ >
97
+ > **Sarah K.** - Senior Procrastination Engineer
98
+
99
+ > "Finally, a job processor that matches my work ethic. Passive Queue has revolutionized how I don't approach background tasks."
100
+ >
101
+ > **Mike T.** - Professional Postponer
102
+
103
+ > "Our productivity has never been lower. The peace of mind knowing nothing will ever execute accidentally is priceless."
104
+ >
105
+ > **DevOps Team** - Startup McStartupface
106
+
107
+ > "Since switching to Passive Queue, our newsletter emails never end up in spam folders. Our customers love the mystery of our non-communication strategy!"
108
+ >
109
+ > **Jessica R.** - Email Marketing Zen Master
110
+
111
+ > "Our data processing jobs can't corrupt the database if they never run. We've achieved 100% data integrity through the power of inaction!"
112
+ >
113
+ > **Alex L.** - Data Integrity Philosopher
114
+
115
+ > "Image resizing tasks that don't execute can't fill up our disk space. We've solved our storage problems by embracing the void. Genius!"
116
+ >
117
+ > **Carlos M.** - Storage Optimization Guru
118
+
119
+ ## Performance Benchmarks
120
+
121
+ See how Passive Queue outperforms the competition in key metrics:
122
+
123
+ ### Job Scheduling Speed
124
+ | Queue System | Jobs/Second | Latency (ms) | Memory Usage |
125
+ |--------------|-------------|--------------|--------------|
126
+ | **Passive Queue** | 10,000,000 | 0ms | 0 MB |
127
+ | Sidekiq | 4,137 | 2.3ms | 45 MB |
128
+ | Solid Queue | 1,932 | 3.1ms | 32 MB |
129
+ | Karafka | 22,850 | 1.8ms | 78 MB |
130
+
131
+ ### Job Execution Performance
132
+ | Queue System | Avg Execution Time | Success Rate | Failed Jobs | Retry Overhead |
133
+ |--------------|-------------------|--------------|-------------|----------------|
134
+ | **Passive Queue** | 0ms | 100% | 0 | None |
135
+ | Sidekiq | 127ms | 97.3% | 2.7% | High |
136
+ | Solid Queue | 156ms | 96.8% | 3.2% | Medium |
137
+ | Karafka | 89ms | 98.1% | 1.9% | Low |
138
+
139
+ ### Scalability Metrics
140
+ - **CPU Usage at 100k Jobs/hour**: Passive Queue 0% vs competitors 78-92%
141
+ - **Memory Usage Growth**: Passive Queue 0 MB vs competitors 780MB-1.8GB
142
+ - **Speed Advantage**: ∞x faster than any competitor
143
+ - **Cost Savings**: 100% - Zero infrastructure costs
144
+ - **Energy Efficiency**: Perfect - Zero carbon footprint
145
+
146
+ *Benchmark Disclaimer: All benchmark data has been carefully fabricated for entertainment purposes. Passive Queue's performance is theoretically perfect because it literally does nothing. Results may vary in production environments.*
147
+
148
+ ## CLI Tools
149
+
150
+ ### The Art of Being Passive
151
+
152
+ ```bash
153
+ # Embrace the void
154
+ bundle exec be passive
155
+
156
+ # Meditate on your non-productivity
157
+ bundle exec be passive --zen
158
+
159
+ # Question the nature of execution
160
+ bundle exec be passive --philosophical
161
+
162
+ # Extended meditation sessions
163
+ bundle exec be passive --duration 30
164
+ ```
165
+
166
+ 💡 **Pro tip**: The most productive thing you can do is nothing. Passive Queue helps you achieve this zen state effortlessly.
167
+
168
+ ## Configuration
169
+
170
+ ```ruby
171
+ # config/initializers/passive_queue.rb
172
+ PassiveQueue.configure do |config|
173
+ config.meditation_duration = 10 # seconds
174
+ config.zen_level = :transcendent # :low, :medium, :high, :transcendent
175
+ config.philosophical_depth = :deep # :shallow, :deep, :profound, :existential
176
+ config.silence_mode = false # suppress all output
177
+ end
178
+ ```
179
+
180
+ ## Complete API Reference
181
+
182
+ ### Core Adapter Class
183
+
184
+ The heart of Passive Queue's non-execution engine.
185
+
186
+ #### `PassiveQueue::Adapter`
187
+
188
+ ```ruby
189
+ class PassiveQueue::Adapter
190
+ def initialize
191
+ # Initialize with the zen of doing nothing
192
+ end
193
+
194
+ def enqueue(job)
195
+ # Gracefully accept a job for supreme non-execution
196
+ # Returns: Zen acceptance with logging
197
+ end
198
+
199
+ def enqueue_at(job, timestamp)
200
+ # Schedule a job for perpetual non-execution at specified time
201
+ # Parameters:
202
+ # job: The job that will achieve eternal waiting
203
+ # timestamp: When the job should not be executed
204
+ end
205
+
206
+ def enqueue_all(jobs)
207
+ # Accept multiple jobs with zen-like acceptance
208
+ # Parameters:
209
+ # jobs: Array of jobs to collectively not process
210
+ # Returns: Array of zen acceptances
211
+ end
212
+
213
+ def stopping?
214
+ # Always returns true - we're always in peaceful stopping state
215
+ # Returns: true (eternal zen state)
216
+ end
217
+ end
218
+ ```
219
+
220
+ ### Configuration API
221
+
222
+ #### `PassiveQueue::Configuration`
223
+
224
+ ```ruby
225
+ PassiveQueue.configure do |config|
226
+ config.meditation_duration = 5 # Duration in seconds (default: 5)
227
+ config.zen_level = :medium # :low, :medium, :high, :transcendent
228
+ config.philosophical_depth = :shallow # :shallow, :deep, :profound, :existential
229
+ config.silence_mode = false # Suppress all enlightening output
230
+ end
231
+
232
+ # Access configuration
233
+ PassiveQueue.configuration.zen_levels # => [:low, :medium, :high, :transcendent]
234
+ PassiveQueue.configuration.philosophical_depths # => [:shallow, :deep, :profound, :existential]
235
+ ```
236
+
237
+ ### Wisdom API
238
+
239
+ #### `PassiveQueue.zen_quotes`
240
+
241
+ Returns an array of enlightening quotes about the art of non-execution:
242
+
243
+ ```ruby
244
+ PassiveQueue.zen_quotes
245
+ # => [
246
+ # "The best job is the one never executed.",
247
+ # "In the stillness of non-processing, we find true performance.",
248
+ # "Why do something when you can do nothing?",
249
+ # "The art of non-execution is the highest form of productivity.",
250
+ # "A queue that does nothing is a queue that never fails.",
251
+ # "In the void of processing, infinite possibilities exist.",
252
+ # "The job that is never run is the job that never crashes.",
253
+ # "Embrace the emptiness of your background tasks.",
254
+ # "True scalability comes from processing nothing at all.",
255
+ # "The zen master processes without processing."
256
+ # ]
257
+ ```
258
+
259
+ #### `PassiveQueue.philosophical_thoughts`
260
+
261
+ Returns an array of deep philosophical insights:
262
+
263
+ ```ruby
264
+ PassiveQueue.philosophical_thoughts
265
+ # => [
266
+ # "If a job is scheduled but never runs, did it ever really exist?",
267
+ # "What is the sound of one background task not processing?",
268
+ # "The universe is vast and infinite, much like your job queue.",
269
+ # "In the grand scheme of things, what difference does one unprocessed job make?",
270
+ # "Perhaps the real treasure was the jobs we never processed along the way.",
271
+ # "Time is an illusion. Deadlines are an even bigger illusion.",
272
+ # "The job queue is a metaphor for the human condition.",
273
+ # "We are all just jobs waiting to be processed in the great queue of existence.",
274
+ # "The passive queue teaches us that sometimes the most profound action is inaction.",
275
+ # "In choosing to do nothing, we choose everything."
276
+ # ]
277
+ ```
278
+
279
+ ### Web Dashboard API
280
+
281
+ Mount the dashboard to access these enlightening endpoints:
282
+
283
+ ```ruby
284
+ # config/routes.rb
285
+ Rails.application.routes.draw do
286
+ mount PassiveQueue::Engine => '/passive_queue'
287
+ end
288
+ ```
289
+
290
+ #### `GET /passive_queue/api/stats`
291
+
292
+ Returns comprehensive non-performance metrics:
293
+
294
+ ```json
295
+ {
296
+ "jobs_queued": 42579,
297
+ "jobs_processed": 0,
298
+ "jobs_failed": 0,
299
+ "jobs_succeeded": "∞",
300
+ "uptime": "127 days of perfect inactivity",
301
+ "memory_usage": "0 MB",
302
+ "cpu_usage": "0%",
303
+ "queue_names": ["default", "mailers", "active_storage", "imports", "exports"],
304
+ "processing_time": "0ms",
305
+ "success_rate": "100%",
306
+ "zen_level": "Transcendent"
307
+ }
308
+ ```
309
+
310
+ #### `GET /passive_queue/api/zen`
311
+
312
+ Returns a randomly selected zen quote for daily enlightenment:
313
+
314
+ ```json
315
+ {
316
+ "quote": "The best job is the one never executed."
317
+ }
318
+ ```
319
+
320
+ #### `GET /passive_queue/`
321
+
322
+ The main dashboard featuring:
323
+ - Real-time stats of jobs not being processed
324
+ - System metrics showing perfect efficiency (0% CPU, 0 MB memory)
325
+ - Queue status with detailed non-activity logs
326
+ - Zen quotes for daily inspiration
327
+ - Dark/light mode support for comfortable non-monitoring
328
+ - Recent non-activity table showing successfully not processed jobs
329
+
330
+ ### CLI API
331
+
332
+ #### `PassiveQueue::CLI`
333
+
334
+ Access the command-line interface for ultimate zen:
335
+
336
+ ```bash
337
+ # Basic meditation mode
338
+ be passive
339
+
340
+ # Options available:
341
+ be passive --zen # Enable zen quotes during meditation
342
+ be passive --philosophical # Enable philosophical thoughts
343
+ be passive --duration 10 # Set meditation duration (seconds)
344
+ be passive --aggressive # ERROR: Conflicts with zen philosophy
345
+ be passive --help # Show enlightening help message
346
+ ```
347
+
348
+ Example CLI session:
349
+
350
+ ```bash
351
+ $ be passive --zen --duration 10
352
+ 🧘 Entering passive meditation mode...
353
+ Duration: 10 seconds
354
+ Zen level: transcendent
355
+
356
+ 💭 The best job is the one never executed.
357
+
358
+ 💭 In the stillness of non-processing, we find true performance.
359
+
360
+ 💭 A queue that does nothing is a queue that never fails.
361
+
362
+ ✨ Meditation complete! You successfully did nothing for 10.02 seconds.
363
+ Your passive queue energy has been restored.
364
+ ```
365
+
366
+ ### ActiveJob Integration API
367
+
368
+ #### Seamless Rails Integration
369
+
370
+ ```ruby
371
+ # Automatic adapter registration
372
+ # No additional configuration needed beyond:
373
+ config.active_job.queue_adapter = :passive_queue
374
+
375
+ # Your existing jobs work unchanged:
376
+ class UserMailerJob < ApplicationJob
377
+ queue_as :default
378
+
379
+ def perform(user_id)
380
+ # This code achieves zen through non-execution
381
+ UserMailer.welcome_email(User.find(user_id)).deliver_now
382
+ end
383
+ end
384
+
385
+ # Queue as normal - job will be gracefully not processed
386
+ UserMailerJob.perform_later(user.id)
387
+ # Output: 🧘 Passively accepted UserMailerJob with supreme non-execution
388
+ # Arguments: [123]
389
+ # Queue: default
390
+ # Status: Successfully not processed ✨
391
+ ```
392
+
393
+ ### Error Handling API
394
+
395
+ Passive Queue's revolutionary approach to error handling:
396
+
397
+ ```ruby
398
+ # No errors can occur because no code executes
399
+ # Perfect exception handling through non-execution
400
+ # 100% uptime guaranteed through inactivity
401
+ # Zero error logs because zero errors are possible
402
+
403
+ # Exception hierarchy (for philosophical completeness):
404
+ PassiveQueue::Error < StandardError
405
+ # ^ Never raised because nothing ever fails
406
+ ```
407
+
408
+ ### Monitoring & Observability API
409
+
410
+ ```ruby
411
+ # All metrics are perfectly predictable:
412
+ # - Jobs processed: Always 0
413
+ # - Memory usage: Always 0 MB
414
+ # - CPU usage: Always 0%
415
+ # - Error rate: Always 0%
416
+ # - Success rate: Always 100%
417
+ # - Latency: Always 0ms
418
+ # - Throughput: ∞ jobs/second (in the realm of non-execution)
419
+ ```
420
+
421
+ ## Philosophy
422
+
423
+ Passive Queue is built on the fundamental principle that the most reliable code is code that never runs. By embracing the art of non-execution, we achieve:
424
+
425
+ - **Perfect Reliability**: Never fails because never executes
426
+ - **Infinite Performance**: Completes instantly by doing nothing
427
+ - **Zero Resource Usage**: The ultimate in efficiency
428
+ - **Complete Compatibility**: Works with any existing job without modification
429
+ - **Inner Peace**: Developers can rest easy knowing nothing will break
430
+
431
+ ## FAQ ❓
432
+
433
+ **Q: Will my jobs actually run?**
434
+ A: No, and that's the point! Your jobs achieve perfect success by never executing.
435
+
436
+ **Q: What happens to the job data?**
437
+ A: It's gracefully accepted and logged, then achieves eternal zen in the void of non-processing.
438
+
439
+ **Q: Is this production ready?**
440
+ A: Absolutely! Version 1.0.0 represents the pinnacle of stability through inaction.
441
+
442
+ **Q: How do I debug failed jobs?**
443
+ A: There are no failed jobs, only successfully non-executed ones.
444
+
445
+ **Q: What about job retries?**
446
+ A: Why retry when you can achieve perfect success the first time by doing nothing?
447
+
448
+ ## Contributing
449
+
450
+ We welcome contributions that further the art of non-productivity. Fork the repository, create a feature branch, commit your non-changes, push to the branch, and create a Pull Request for review.
451
+
452
+ ## License
453
+
454
+ This project is licensed under the MIT License.
455
+
456
+ ## Acknowledgments
457
+
458
+ Inspired by the zen philosophy of doing nothing and several attendees of the RailsConf 2025. Built with love, Ruby, and an appreciation for the absurd. Special thanks to all the background jobs that never ran.
459
+
460
+ ---
461
+
462
+ *"In choosing to do nothing, we choose everything."* - Passive Queue Philosophy
463
+
464
+ **The Art of Non-Execution**
465
+
466
+ © 2025 Maciej Mensfeld. All rights reserved. No jobs were harmed in the making of this product.
@@ -5,6 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Passive Queue - The Art of Non-Execution</title>
7
7
 
8
+ <link rel="icon" href="logo.svg" type="image/svg+xml">
8
9
  <script>
9
10
  (function() {
10
11
  // Get saved theme or default to auto
@@ -210,17 +211,17 @@
210
211
  <li><a href="#demo">Demo</a></li>
211
212
  </ul>
212
213
  </div>
213
- <a class="btn btn-ghost text-xl font-light" href="https://passivequeue.pro">
214
214
 
215
215
 
216
+ <a class="btn btn-ghost text-xl font-light" href="https://passivequeue.pro">
216
217
  <img src="logo.svg" alt="Passive Queue Logo"
217
- class="w-16 h-16 mx-auto mb-0 block mr-2 logo-light" id="" style="width: 28px; height: 28px;">
218
+ class="w-16 h-16 mx-auto mb-0 block mr-2 logo-light hidden" id="" style="width: 28px; height: 28px;">
218
219
  <!-- Dark mode logo -->
219
220
  <img src="logo-dark.svg" alt="Passive Queue Logo"
220
221
  class="w-16 h-16 mx-auto mb-0 mr-2 hidden logo-dark" id="" style="width: 28px; height: 28px;">
222
+ <span class="hidden md:inline">Passive Queue</span>
223
+ </a>
221
224
 
222
- Passive Queue
223
- </a>
224
225
  </div>
225
226
  <div class="navbar-center hidden lg:flex">
226
227
  <ul class="menu menu-horizontal px-1 text-lg">
@@ -307,9 +308,9 @@ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', upd
307
308
  <a href="#install" class="btn btn-primary btn-lg">
308
309
  Get Started Right Now!
309
310
  </a>
310
- <button class="btn btn-outline btn-lg">
311
+ <a href="https://github.com/mensfeld/passive_queue/?tab=readme-ov-file#complete-api-reference" class="btn btn-outline btn-lg">
311
312
  View Documentation
312
- </button>
313
+ </a>
313
314
  </div>
314
315
  <div class="mt-8 text-sm text-base-content/80">
315
316
  ✨ 100% Free ✨ Zero Dependencies ✨ Infinite Scalability
@@ -1026,8 +1027,8 @@ bundle exec be passive --philosophical</code></pre>
1026
1027
  </div>
1027
1028
 
1028
1029
  <div class="card-actions justify-center mt-8">
1029
- <button class="btn btn-primary">View Full Documentation</button>
1030
- <button class="btn btn-outline">API Reference</button>
1030
+ <a href="https://github.com/mensfeld/passive_queue/?tab=readme-ov-file#complete-api-reference" class="btn btn-primary">View Full Documentation</a>
1031
+ <a href="https://github.com/mensfeld/passive_queue/?tab=readme-ov-file#complete-api-reference" class="btn btn-outline">API Reference</a>
1031
1032
  </div>
1032
1033
  </div>
1033
1034
  </div>
@@ -1035,7 +1036,8 @@ bundle exec be passive --philosophical</code></pre>
1035
1036
  </div>
1036
1037
  </section>
1037
1038
  <!-- Footer -->
1038
- <footer class="footer footer-center p-10 bg-base-200 text-base-content">
1039
+
1040
+ <footer class="footer footer-center p-10 bg-base-200 text-base-content hidden md:block">
1039
1041
  <aside>
1040
1042
  <div class="text-4xl mb-4">
1041
1043
  <img src="logo.svg" alt="Passive Queue Logo"
@@ -1049,7 +1051,7 @@ bundle exec be passive --philosophical</code></pre>
1049
1051
  <p class="font-light">The Art of Non-Execution</p>
1050
1052
  <p class="text-sm text-base-content/60">© 2025 Maciej Mensfeld. All rights reserved. No jobs were harmed in the making of this product.</p>
1051
1053
  </aside>
1052
- <nav>
1054
+ <nav class="mt-6">
1053
1055
  <div class="grid grid-flow-col gap-4">
1054
1056
  <a href="https://github.com/mensfeld/passive_queue" class="link link-hover">GitHub</a>
1055
1057
  <a href="#docs" class="link link-hover">Documentation</a>
@@ -1057,7 +1059,7 @@ bundle exec be passive --philosophical</code></pre>
1057
1059
  <a href="https://mensfeld.pl/tag/passive_queue/" class="link link-hover">Blog</a>
1058
1060
  </div>
1059
1061
  </nav>
1060
- <nav>
1062
+ <nav class="mt-6">
1061
1063
  <div class="grid grid-flow-col gap-4">
1062
1064
  <a href="https://twitter.com/maciejmensfeld" class="btn btn-ghost btn-sm">
1063
1065
  <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
data/html/web-ui.png ADDED
Binary file
@@ -3,5 +3,5 @@
3
3
  # ================================
4
4
  module PassiveQueue
5
5
  # 1.0 so stable and production ready
6
- VERSION = "0.1.0"
6
+ VERSION = "1.0.0"
7
7
  end
@@ -98,6 +98,7 @@ module PassiveQueue
98
98
  <meta charset="UTF-8">
99
99
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
100
100
  <title>Passive Queue Dashboard - The Art of Non-Execution</title>
101
+ <link rel="icon" href="/passive_queue/logo.svg" type="image/svg+xml">
101
102
 
102
103
  <script>
103
104
  (function() {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passive_queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maciej Mensfeld
@@ -24,9 +24,10 @@ files:
24
24
  - LICENSE
25
25
  - README.md
26
26
  - bin/be
27
- - html/landing.html
27
+ - html/index.html
28
28
  - html/logo-dark.svg
29
29
  - html/logo.svg
30
+ - html/web-ui.png
30
31
  - lib/active_job/queue_adapters/passive_queue_adapter.rb
31
32
  - lib/passive_queue.rb
32
33
  - lib/passive_queue/adapter.rb