rq 0.1.7 → 3.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.
- data/INSTALL +21 -0
- data/README +752 -190
- data/TODO +18 -11
- data/TUTORIAL +230 -0
- data/all/install.rb +127 -0
- data/all/install.sh +165 -0
- data/all/packages/INSTALL +5 -0
- data/all/packages/arrayfields-3.6.0.tgz +0 -0
- data/all/packages/lockfile-1.4.1.tgz +0 -0
- data/all/packages/posixlock-0.0.1.tgz +0 -0
- data/all/packages/ruby-1.8.6.tgz +0 -0
- data/all/packages/rubygems-0.9.2.tgz +0 -0
- data/all/packages/sqlite-2.8.15.tar.gz +0 -0
- data/all/packages/sqlite-ruby-1.3.1.tar.gz +0 -0
- data/bin/rq +830 -361
- data/bin/rq-3.0.0 +860 -0
- data/doc/classes/ARGV.html +134 -0
- data/doc/classes/ARGV.src/M000036.html +36 -0
- data/doc/classes/ARGV.src/M000037.html +25 -0
- data/doc/classes/OrderedHash.html +1043 -0
- data/doc/classes/OrderedHash.src/M000003.html +26 -0
- data/doc/classes/OrderedHash.src/M000004.html +31 -0
- data/doc/classes/OrderedHash.src/M000005.html +23 -0
- data/doc/classes/OrderedHash.src/M000006.html +23 -0
- data/doc/classes/OrderedHash.src/M000007.html +24 -0
- data/doc/classes/OrderedHash.src/M000009.html +24 -0
- data/doc/classes/OrderedHash.src/M000010.html +24 -0
- data/doc/classes/OrderedHash.src/M000011.html +24 -0
- data/doc/classes/OrderedHash.src/M000012.html +24 -0
- data/doc/classes/OrderedHash.src/M000013.html +24 -0
- data/doc/classes/OrderedHash.src/M000014.html +24 -0
- data/doc/classes/OrderedHash.src/M000016.html +26 -0
- data/doc/classes/OrderedHash.src/M000017.html +25 -0
- data/doc/classes/OrderedHash.src/M000018.html +23 -0
- data/doc/classes/OrderedHash.src/M000019.html +25 -0
- data/doc/classes/OrderedHash.src/M000020.html +23 -0
- data/doc/classes/OrderedHash.src/M000021.html +24 -0
- data/doc/classes/OrderedHash.src/M000022.html +24 -0
- data/doc/classes/OrderedHash.src/M000023.html +24 -0
- data/doc/classes/OrderedHash.src/M000024.html +29 -0
- data/doc/classes/OrderedHash.src/M000025.html +29 -0
- data/doc/classes/OrderedHash.src/M000026.html +24 -0
- data/doc/classes/OrderedHash.src/M000027.html +25 -0
- data/doc/classes/OrderedHash.src/M000028.html +23 -0
- data/doc/classes/OrderedHash.src/M000029.html +25 -0
- data/doc/classes/OrderedHash.src/M000030.html +24 -0
- data/doc/classes/OrderedHash.src/M000032.html +23 -0
- data/doc/classes/OrderedHash.src/M000033.html +25 -0
- data/doc/classes/OrderedHash.src/M000034.html +36 -0
- data/doc/classes/OrderedHash.src/M000035.html +23 -0
- data/doc/classes/RQ.html +647 -0
- data/doc/classes/RQ/Backer.html +240 -0
- data/doc/classes/RQ/Backer.src/M000121.html +31 -0
- data/doc/classes/RQ/ConfigFile.html +416 -0
- data/doc/classes/RQ/ConfigFile.src/M000100.html +34 -0
- data/doc/classes/RQ/ConfigFile.src/M000101.html +26 -0
- data/doc/classes/RQ/ConfigFile.src/M000102.html +33 -0
- data/doc/classes/RQ/ConfigFile.src/M000103.html +25 -0
- data/doc/classes/RQ/ConfigFile.src/M000104.html +34 -0
- data/doc/classes/RQ/ConfigFile.src/M000105.html +25 -0
- data/doc/classes/RQ/Configurator.html +249 -0
- data/doc/classes/RQ/Configurator.src/M000122.html +40 -0
- data/doc/classes/RQ/Creator.html +264 -0
- data/doc/classes/RQ/Creator.src/M000157.html +32 -0
- data/doc/classes/RQ/Cron.html +461 -0
- data/doc/classes/RQ/Deleter.html +259 -0
- data/doc/classes/RQ/Deleter.src/M000078.html +52 -0
- data/doc/classes/RQ/Executor.html +249 -0
- data/doc/classes/RQ/Executor.src/M000099.html +45 -0
- data/doc/classes/RQ/Feeder.html +1131 -0
- data/doc/classes/RQ/Feeder.src/M000079.html +67 -0
- data/doc/classes/RQ/Feeder.src/M000080.html +47 -0
- data/doc/classes/RQ/Feeder.src/M000081.html +98 -0
- data/doc/classes/RQ/Feeder.src/M000082.html +25 -0
- data/doc/classes/RQ/Feeder.src/M000083.html +30 -0
- data/doc/classes/RQ/Feeder.src/M000084.html +58 -0
- data/doc/classes/RQ/Feeder.src/M000085.html +37 -0
- data/doc/classes/RQ/Feeder.src/M000086.html +40 -0
- data/doc/classes/RQ/Feeder.src/M000087.html +37 -0
- data/doc/classes/RQ/Feeder.src/M000088.html +35 -0
- data/doc/classes/RQ/Feeder.src/M000089.html +47 -0
- data/doc/classes/RQ/Feeder.src/M000090.html +25 -0
- data/doc/classes/RQ/Feeder.src/M000091.html +78 -0
- data/doc/classes/RQ/Feeder.src/M000092.html +34 -0
- data/doc/classes/RQ/Feeder.src/M000093.html +36 -0
- data/doc/classes/RQ/Feeder.src/M000094.html +25 -0
- data/doc/classes/RQ/Feeder.src/M000095.html +27 -0
- data/doc/classes/RQ/IOViewer.html +256 -0
- data/doc/classes/RQ/Job.html +304 -0
- data/doc/classes/RQ/Job.src/M000168.html +26 -0
- data/doc/classes/RQ/Job.src/M000169.html +37 -0
- data/doc/classes/RQ/Job.src/M000170.html +23 -0
- data/doc/classes/RQ/Job/Methods.html +210 -0
- data/doc/classes/RQ/JobQueue.html +1780 -0
- data/doc/classes/RQ/JobQueue.src/M000176.html +31 -0
- data/doc/classes/RQ/JobQueue.src/M000177.html +34 -0
- data/doc/classes/RQ/JobQueue.src/M000178.html +60 -0
- data/doc/classes/RQ/JobQueue.src/M000179.html +63 -0
- data/doc/classes/RQ/JobQueue.src/M000180.html +73 -0
- data/doc/classes/RQ/JobQueue.src/M000181.html +217 -0
- data/doc/classes/RQ/JobQueue.src/M000182.html +50 -0
- data/doc/classes/RQ/JobQueue.src/M000183.html +83 -0
- data/doc/classes/RQ/JobQueue.src/M000184.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000185.html +83 -0
- data/doc/classes/RQ/JobQueue.src/M000186.html +28 -0
- data/doc/classes/RQ/JobQueue.src/M000187.html +26 -0
- data/doc/classes/RQ/JobQueue.src/M000188.html +26 -0
- data/doc/classes/RQ/JobQueue.src/M000189.html +32 -0
- data/doc/classes/RQ/JobQueue.src/M000190.html +30 -0
- data/doc/classes/RQ/JobQueue.src/M000191.html +37 -0
- data/doc/classes/RQ/JobQueue.src/M000192.html +36 -0
- data/doc/classes/RQ/JobQueue.src/M000193.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000194.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000195.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000196.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000197.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000198.html +73 -0
- data/doc/classes/RQ/JobQueue.src/M000199.html +25 -0
- data/doc/classes/RQ/JobQueue.src/M000200.html +38 -0
- data/doc/classes/RQ/JobQueue.src/M000201.html +28 -0
- data/doc/classes/RQ/JobQueue/Error.html +187 -0
- data/doc/classes/RQ/JobRunner.html +386 -0
- data/doc/classes/RQ/JobRunner.src/M000117.html +53 -0
- data/doc/classes/RQ/JobRunner.src/M000118.html +26 -0
- data/doc/classes/RQ/JobRunnerDaemon.html +590 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000159.html +94 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000160.html +27 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000161.html +39 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000162.html +27 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000163.html +27 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000164.html +28 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000165.html +28 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000166.html +37 -0
- data/doc/classes/RQ/JobRunnerDaemon.src/M000167.html +25 -0
- data/doc/classes/RQ/Lister.html +256 -0
- data/doc/classes/RQ/Lister.src/M000156.html +52 -0
- data/doc/classes/RQ/Locker.html +250 -0
- data/doc/classes/RQ/Locker.src/M000120.html +40 -0
- data/doc/classes/RQ/Logging.html +296 -0
- data/doc/classes/RQ/Logging.src/M000067.html +28 -0
- data/doc/classes/RQ/Logging/LogClassMethods.html +254 -0
- data/doc/classes/RQ/Logging/LogClassMethods.src/M000068.html +32 -0
- data/doc/classes/RQ/Logging/LogClassMethods.src/M000069.html +28 -0
- data/doc/classes/RQ/Logging/LogMethods.html +404 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000070.html +35 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000071.html +28 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000072.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000073.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000074.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000075.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000076.html +21 -0
- data/doc/classes/RQ/Logging/LogMethods.src/M000077.html +29 -0
- data/doc/classes/RQ/Logging/LoggerExt.html +194 -0
- data/doc/classes/RQ/Main.html +2110 -0
- data/doc/classes/RQ/MainHelper.html +607 -0
- data/doc/classes/RQ/MainHelper.src/M000171.html +33 -0
- data/doc/classes/RQ/MainHelper.src/M000172.html +32 -0
- data/doc/classes/RQ/MainHelper.src/M000173.html +44 -0
- data/doc/classes/RQ/OrderedAutoHash.html +258 -0
- data/doc/classes/RQ/OrderedAutoHash.src/M000205.html +25 -0
- data/doc/classes/RQ/OrderedAutoHash.src/M000206.html +25 -0
- data/doc/classes/RQ/QDB.html +1653 -0
- data/doc/classes/RQ/QDB.src/M000126.html +25 -0
- data/doc/classes/RQ/QDB.src/M000127.html +37 -0
- data/doc/classes/RQ/QDB.src/M000128.html +27 -0
- data/doc/classes/RQ/QDB.src/M000129.html +27 -0
- data/doc/classes/RQ/QDB.src/M000130.html +27 -0
- data/doc/classes/RQ/QDB.src/M000131.html +31 -0
- data/doc/classes/RQ/QDB.src/M000132.html +32 -0
- data/doc/classes/RQ/QDB.src/M000133.html +30 -0
- data/doc/classes/RQ/QDB.src/M000134.html +91 -0
- data/doc/classes/RQ/QDB.src/M000135.html +26 -0
- data/doc/classes/RQ/QDB.src/M000136.html +46 -0
- data/doc/classes/RQ/QDB.src/M000137.html +26 -0
- data/doc/classes/RQ/QDB.src/M000138.html +51 -0
- data/doc/classes/RQ/QDB.src/M000139.html +61 -0
- data/doc/classes/RQ/QDB.src/M000140.html +57 -0
- data/doc/classes/RQ/QDB.src/M000141.html +25 -0
- data/doc/classes/RQ/QDB.src/M000142.html +25 -0
- data/doc/classes/RQ/QDB.src/M000143.html +37 -0
- data/doc/classes/RQ/QDB.src/M000144.html +107 -0
- data/doc/classes/RQ/QDB.src/M000145.html +40 -0
- data/doc/classes/RQ/QDB.src/M000146.html +34 -0
- data/doc/classes/RQ/QDB.src/M000147.html +33 -0
- data/doc/classes/RQ/QDB.src/M000148.html +32 -0
- data/doc/classes/RQ/QDB.src/M000149.html +98 -0
- data/doc/classes/RQ/QDB.src/M000150.html +26 -0
- data/doc/classes/RQ/QDB.src/M000151.html +31 -0
- data/doc/classes/RQ/QDB.src/M000154.html +26 -0
- data/doc/classes/RQ/QDB/AbortedTransactionError.html +187 -0
- data/doc/classes/RQ/QDB/RollbackTransactionError.html +187 -0
- data/doc/classes/RQ/Querier.html +328 -0
- data/doc/classes/RQ/Querier.src/M000203.html +45 -0
- data/doc/classes/RQ/Querier.src/M000204.html +78 -0
- data/doc/classes/RQ/ReSubmitter.html +307 -0
- data/doc/classes/RQ/ReSubmitter.src/M000098.html +111 -0
- data/doc/classes/RQ/Recoverer.html +247 -0
- data/doc/classes/RQ/Refresher.html +346 -0
- data/doc/classes/RQ/Refresher.src/M000174.html +51 -0
- data/doc/classes/RQ/Refresher.src/M000175.html +44 -0
- data/doc/classes/RQ/Relayer.html +723 -0
- data/doc/classes/RQ/Relayer.src/M000106.html +91 -0
- data/doc/classes/RQ/Relayer.src/M000107.html +47 -0
- data/doc/classes/RQ/Relayer.src/M000108.html +46 -0
- data/doc/classes/RQ/Relayer.src/M000109.html +26 -0
- data/doc/classes/RQ/Relayer.src/M000110.html +46 -0
- data/doc/classes/RQ/Relayer.src/M000111.html +40 -0
- data/doc/classes/RQ/Relayer.src/M000112.html +37 -0
- data/doc/classes/RQ/Relayer.src/M000113.html +40 -0
- data/doc/classes/RQ/Relayer.src/M000114.html +27 -0
- data/doc/classes/RQ/Relayer.src/M000115.html +25 -0
- data/doc/classes/RQ/Relayer.src/M000116.html +38 -0
- data/doc/classes/RQ/Resource.html +187 -0
- data/doc/classes/RQ/ResourceManager.html +276 -0
- data/doc/classes/RQ/Rotater.html +324 -0
- data/doc/classes/RQ/Rotater.src/M000158.html +71 -0
- data/doc/classes/RQ/SleepCycle.html +322 -0
- data/doc/classes/RQ/SleepCycle.src/M000123.html +32 -0
- data/doc/classes/RQ/SleepCycle.src/M000124.html +27 -0
- data/doc/classes/RQ/SleepCycle.src/M000125.html +25 -0
- data/doc/classes/RQ/Snapshotter.html +250 -0
- data/doc/classes/RQ/Snapshotter.src/M000097.html +35 -0
- data/doc/classes/RQ/StatusLister.html +289 -0
- data/doc/classes/RQ/StatusLister.src/M000096.html +26 -0
- data/doc/classes/RQ/Submitter.html +319 -0
- data/doc/classes/RQ/Submitter.src/M000119.html +92 -0
- data/doc/classes/RQ/Toucher.html +384 -0
- data/doc/classes/RQ/Updater.html +304 -0
- data/doc/classes/RQ/Updater.src/M000202.html +97 -0
- data/doc/classes/RQ/Usage.html +346 -0
- data/doc/classes/RQ/Usage.src/M000038.html +29 -0
- data/doc/classes/RQ/Usage.src/M000039.html +72 -0
- data/doc/classes/RQ/Util.html +1043 -0
- data/doc/classes/RQ/Util.src/M000040.html +27 -0
- data/doc/classes/RQ/Util.src/M000041.html +26 -0
- data/doc/classes/RQ/Util.src/M000042.html +25 -0
- data/doc/classes/RQ/Util.src/M000043.html +25 -0
- data/doc/classes/RQ/Util.src/M000044.html +30 -0
- data/doc/classes/RQ/Util.src/M000045.html +25 -0
- data/doc/classes/RQ/Util.src/M000046.html +34 -0
- data/doc/classes/RQ/Util.src/M000047.html +31 -0
- data/doc/classes/RQ/Util.src/M000048.html +41 -0
- data/doc/classes/RQ/Util.src/M000049.html +27 -0
- data/doc/classes/RQ/Util.src/M000050.html +34 -0
- data/doc/classes/RQ/Util.src/M000051.html +28 -0
- data/doc/classes/RQ/Util.src/M000052.html +27 -0
- data/doc/classes/RQ/Util.src/M000053.html +31 -0
- data/doc/classes/RQ/Util.src/M000054.html +31 -0
- data/doc/classes/RQ/Util.src/M000055.html +31 -0
- data/doc/classes/RQ/Util.src/M000056.html +25 -0
- data/doc/classes/RQ/Util.src/M000057.html +25 -0
- data/doc/classes/RQ/Util.src/M000058.html +25 -0
- data/doc/classes/RQ/Util.src/M000059.html +25 -0
- data/doc/classes/RQ/Util.src/M000060.html +25 -0
- data/doc/classes/RQ/Util.src/M000061.html +27 -0
- data/doc/classes/RQ/Util.src/M000062.html +28 -0
- data/doc/classes/RQ/Util.src/M000063.html +39 -0
- data/doc/classes/RQ/Util.src/M000064.html +39 -0
- data/doc/classes/RQ/Util.src/M000065.html +31 -0
- data/doc/classes/RQ/Util.src/M000066.html +29 -0
- data/doc/classes/SQLite.html +120 -0
- data/doc/classes/SQLite/Database.html +546 -0
- data/doc/classes/SQLite/TypeTranslator.html +221 -0
- data/doc/created.rid +1 -0
- data/doc/dot/f_0.dot +14 -0
- data/doc/dot/f_0.jpg +0 -0
- data/doc/dot/f_1.dot +14 -0
- data/doc/dot/f_1.jpg +0 -0
- data/doc/dot/f_10.dot +802 -0
- data/doc/dot/f_10.jpg +0 -0
- data/doc/dot/f_11.dot +14 -0
- data/doc/dot/f_11.jpg +0 -0
- data/doc/dot/f_12.dot +802 -0
- data/doc/dot/f_12.jpg +0 -0
- data/doc/dot/f_13.dot +802 -0
- data/doc/dot/f_13.jpg +0 -0
- data/doc/dot/f_14.dot +802 -0
- data/doc/dot/f_14.jpg +0 -0
- data/doc/dot/f_15.dot +802 -0
- data/doc/dot/f_15.jpg +0 -0
- data/doc/dot/f_16.dot +802 -0
- data/doc/dot/f_16.jpg +0 -0
- data/doc/dot/f_17.dot +802 -0
- data/doc/dot/f_17.jpg +0 -0
- data/doc/dot/f_18.dot +14 -0
- data/doc/dot/f_18.jpg +0 -0
- data/doc/dot/f_19.dot +802 -0
- data/doc/dot/f_19.jpg +0 -0
- data/doc/dot/f_2.dot +14 -0
- data/doc/dot/f_2.jpg +0 -0
- data/doc/dot/f_20.dot +802 -0
- data/doc/dot/f_20.jpg +0 -0
- data/doc/dot/f_21.dot +802 -0
- data/doc/dot/f_21.jpg +0 -0
- data/doc/dot/f_22.dot +802 -0
- data/doc/dot/f_22.jpg +0 -0
- data/doc/dot/f_23.dot +802 -0
- data/doc/dot/f_23.jpg +0 -0
- data/doc/dot/f_24.dot +802 -0
- data/doc/dot/f_24.jpg +0 -0
- data/doc/dot/f_25.dot +817 -0
- data/doc/dot/f_25.jpg +0 -0
- data/doc/dot/f_26.dot +29 -0
- data/doc/dot/f_26.jpg +0 -0
- data/doc/dot/f_27.dot +802 -0
- data/doc/dot/f_27.jpg +0 -0
- data/doc/dot/f_28.dot +802 -0
- data/doc/dot/f_28.jpg +0 -0
- data/doc/dot/f_29.dot +802 -0
- data/doc/dot/f_29.jpg +0 -0
- data/doc/dot/f_3.dot +14 -0
- data/doc/dot/f_3.jpg +0 -0
- data/doc/dot/f_30.dot +802 -0
- data/doc/dot/f_30.jpg +0 -0
- data/doc/dot/f_31.dot +802 -0
- data/doc/dot/f_31.jpg +0 -0
- data/doc/dot/f_32.dot +802 -0
- data/doc/dot/f_32.jpg +0 -0
- data/doc/dot/f_33.dot +802 -0
- data/doc/dot/f_33.jpg +0 -0
- data/doc/dot/f_34.dot +802 -0
- data/doc/dot/f_34.jpg +0 -0
- data/doc/dot/f_35.dot +802 -0
- data/doc/dot/f_35.jpg +0 -0
- data/doc/dot/f_36.dot +802 -0
- data/doc/dot/f_36.jpg +0 -0
- data/doc/dot/f_37.dot +802 -0
- data/doc/dot/f_37.jpg +0 -0
- data/doc/dot/f_38.dot +54 -0
- data/doc/dot/f_38.jpg +0 -0
- data/doc/dot/f_39.dot +802 -0
- data/doc/dot/f_39.jpg +0 -0
- data/doc/dot/f_4.dot +802 -0
- data/doc/dot/f_4.jpg +0 -0
- data/doc/dot/f_40.dot +802 -0
- data/doc/dot/f_40.jpg +0 -0
- data/doc/dot/f_41.dot +802 -0
- data/doc/dot/f_41.jpg +0 -0
- data/doc/dot/f_42.dot +802 -0
- data/doc/dot/f_42.jpg +0 -0
- data/doc/dot/f_43.dot +802 -0
- data/doc/dot/f_43.jpg +0 -0
- data/doc/dot/f_44.dot +802 -0
- data/doc/dot/f_44.jpg +0 -0
- data/doc/dot/f_5.dot +802 -0
- data/doc/dot/f_5.jpg +0 -0
- data/doc/dot/f_6.dot +802 -0
- data/doc/dot/f_6.jpg +0 -0
- data/doc/dot/f_7.dot +802 -0
- data/doc/dot/f_7.jpg +0 -0
- data/doc/dot/f_8.dot +802 -0
- data/doc/dot/f_8.jpg +0 -0
- data/doc/dot/f_9.dot +802 -0
- data/doc/dot/f_9.jpg +0 -0
- data/doc/dot/m_10_0.dot +802 -0
- data/doc/dot/m_10_0.jpg +0 -0
- data/doc/dot/m_11_0.dot +734 -0
- data/doc/dot/m_11_0.jpg +0 -0
- data/doc/dot/m_12_0.dot +802 -0
- data/doc/dot/m_12_0.jpg +0 -0
- data/doc/dot/m_13_0.dot +802 -0
- data/doc/dot/m_13_0.jpg +0 -0
- data/doc/dot/m_14_0.dot +802 -0
- data/doc/dot/m_14_0.jpg +0 -0
- data/doc/dot/m_15_0.dot +802 -0
- data/doc/dot/m_15_0.jpg +0 -0
- data/doc/dot/m_16_0.dot +802 -0
- data/doc/dot/m_16_0.jpg +0 -0
- data/doc/dot/m_17_0.dot +802 -0
- data/doc/dot/m_17_0.jpg +0 -0
- data/doc/dot/m_18_0.dot +734 -0
- data/doc/dot/m_18_0.jpg +0 -0
- data/doc/dot/m_19_0.dot +802 -0
- data/doc/dot/m_19_0.jpg +0 -0
- data/doc/dot/m_20_0.dot +802 -0
- data/doc/dot/m_20_0.jpg +0 -0
- data/doc/dot/m_21_0.dot +802 -0
- data/doc/dot/m_21_0.jpg +0 -0
- data/doc/dot/m_22_0.dot +802 -0
- data/doc/dot/m_22_0.jpg +0 -0
- data/doc/dot/m_23_0.dot +802 -0
- data/doc/dot/m_23_0.jpg +0 -0
- data/doc/dot/m_24_0.dot +802 -0
- data/doc/dot/m_24_0.jpg +0 -0
- data/doc/dot/m_25_0.dot +802 -0
- data/doc/dot/m_25_0.jpg +0 -0
- data/doc/dot/m_26_0.dot +734 -0
- data/doc/dot/m_26_0.jpg +0 -0
- data/doc/dot/m_27_0.dot +802 -0
- data/doc/dot/m_27_0.jpg +0 -0
- data/doc/dot/m_28_0.dot +802 -0
- data/doc/dot/m_28_0.jpg +0 -0
- data/doc/dot/m_29_0.dot +802 -0
- data/doc/dot/m_29_0.jpg +0 -0
- data/doc/dot/m_30_0.dot +802 -0
- data/doc/dot/m_30_0.jpg +0 -0
- data/doc/dot/m_31_0.dot +802 -0
- data/doc/dot/m_31_0.jpg +0 -0
- data/doc/dot/m_32_0.dot +802 -0
- data/doc/dot/m_32_0.jpg +0 -0
- data/doc/dot/m_33_0.dot +802 -0
- data/doc/dot/m_33_0.jpg +0 -0
- data/doc/dot/m_34_0.dot +802 -0
- data/doc/dot/m_34_0.jpg +0 -0
- data/doc/dot/m_35_0.dot +802 -0
- data/doc/dot/m_35_0.jpg +0 -0
- data/doc/dot/m_36_0.dot +802 -0
- data/doc/dot/m_36_0.jpg +0 -0
- data/doc/dot/m_37_0.dot +802 -0
- data/doc/dot/m_37_0.jpg +0 -0
- data/doc/dot/m_38_0.dot +54 -0
- data/doc/dot/m_38_0.jpg +0 -0
- data/doc/dot/m_39_0.dot +802 -0
- data/doc/dot/m_39_0.jpg +0 -0
- data/doc/dot/m_40_0.dot +802 -0
- data/doc/dot/m_40_0.jpg +0 -0
- data/doc/dot/m_41_0.dot +802 -0
- data/doc/dot/m_41_0.jpg +0 -0
- data/doc/dot/m_42_0.dot +802 -0
- data/doc/dot/m_42_0.jpg +0 -0
- data/doc/dot/m_43_0.dot +802 -0
- data/doc/dot/m_43_0.jpg +0 -0
- data/doc/dot/m_44_0.dot +802 -0
- data/doc/dot/m_44_0.jpg +0 -0
- data/doc/dot/m_4_0.dot +802 -0
- data/doc/dot/m_4_0.jpg +0 -0
- data/doc/dot/m_5_0.dot +802 -0
- data/doc/dot/m_5_0.jpg +0 -0
- data/doc/dot/m_6_0.dot +802 -0
- data/doc/dot/m_6_0.jpg +0 -0
- data/doc/dot/m_7_0.dot +802 -0
- data/doc/dot/m_7_0.jpg +0 -0
- data/doc/dot/m_8_0.dot +802 -0
- data/doc/dot/m_8_0.jpg +0 -0
- data/doc/dot/m_9_0.dot +802 -0
- data/doc/dot/m_9_0.jpg +0 -0
- data/doc/files/DEPENDS.html +107 -0
- data/doc/files/HISTORY.html +316 -0
- data/doc/files/INSTALL.html +126 -0
- data/doc/files/README.html +1223 -0
- data/doc/files/TODO.html +148 -0
- data/doc/files/TUTORIAL.html +392 -0
- data/doc/files/VERSION.html +107 -0
- data/doc/files/bin/rq_rb.html +231 -0
- data/doc/files/install_rb.html +188 -0
- data/doc/files/install_rb.src/M000001.html +53 -0
- data/doc/files/install_rb.src/M000002.html +43 -0
- data/doc/files/lib/rq-1_0_0/backer_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/configfile_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/configurator_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/creator_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-1_0_0/deleter_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/executor_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/feeder_rb.html +178 -0
- data/doc/files/lib/rq-1_0_0/job_rb.html +176 -0
- data/doc/files/lib/rq-1_0_0/jobqueue_rb.html +177 -0
- data/doc/files/lib/rq-1_0_0/jobrunner_rb.html +175 -0
- data/doc/files/lib/rq-1_0_0/jobrunnerdaemon_rb.html +179 -0
- data/doc/files/lib/rq-1_0_0/lister_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/locker_rb.html +175 -0
- data/doc/files/lib/rq-1_0_0/logging_rb.html +178 -0
- data/doc/files/lib/rq-1_0_0/mainhelper_rb.html +175 -0
- data/doc/files/lib/rq-1_0_0/qdb_rb.html +177 -0
- data/doc/files/lib/rq-1_0_0/querier_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/refresher_rb.html +167 -0
- data/doc/files/lib/rq-1_0_0/relayer_rb.html +178 -0
- data/doc/files/lib/rq-1_0_0/sleepcycle_rb.html +167 -0
- data/doc/files/lib/rq-1_0_0/snapshotter_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/statuslister_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/submitter_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/updater_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/usage_rb.html +174 -0
- data/doc/files/lib/rq-1_0_0/util_rb.html +176 -0
- data/doc/files/lib/rq-2_0_0/backer_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/configfile_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/configurator_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/creator_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-2_0_0/deleter_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/executor_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/feeder_rb.html +184 -0
- data/doc/files/lib/rq-2_0_0/job_rb.html +182 -0
- data/doc/files/lib/rq-2_0_0/jobqueue_rb.html +185 -0
- data/doc/files/lib/rq-2_0_0/jobrunner_rb.html +181 -0
- data/doc/files/lib/rq-2_0_0/jobrunnerdaemon_rb.html +185 -0
- data/doc/files/lib/rq-2_0_0/lister_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/locker_rb.html +181 -0
- data/doc/files/lib/rq-2_0_0/logging_rb.html +184 -0
- data/doc/files/lib/rq-2_0_0/mainhelper_rb.html +181 -0
- data/doc/files/lib/rq-2_0_0/orderedautohash_rb.html +182 -0
- data/doc/files/lib/rq-2_0_0/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-2_0_0/qdb_rb.html +184 -0
- data/doc/files/lib/rq-2_0_0/querier_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/refresher_rb.html +173 -0
- data/doc/files/lib/rq-2_0_0/relayer_rb.html +184 -0
- data/doc/files/lib/rq-2_0_0/rotater_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/sleepcycle_rb.html +173 -0
- data/doc/files/lib/rq-2_0_0/snapshotter_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/statuslister_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/submitter_rb.html +181 -0
- data/doc/files/lib/rq-2_0_0/updater_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/usage_rb.html +180 -0
- data/doc/files/lib/rq-2_0_0/util_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/backer_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/configfile_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/configurator_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/creator_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-2_3_1/deleter_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/executor_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/feeder_rb.html +187 -0
- data/doc/files/lib/rq-2_3_1/job_rb.html +185 -0
- data/doc/files/lib/rq-2_3_1/jobqueue_rb.html +187 -0
- data/doc/files/lib/rq-2_3_1/jobrunner_rb.html +184 -0
- data/doc/files/lib/rq-2_3_1/jobrunnerdaemon_rb.html +187 -0
- data/doc/files/lib/rq-2_3_1/lister_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/locker_rb.html +183 -0
- data/doc/files/lib/rq-2_3_1/logging_rb.html +186 -0
- data/doc/files/lib/rq-2_3_1/mainhelper_rb.html +183 -0
- data/doc/files/lib/rq-2_3_1/orderedautohash_rb.html +184 -0
- data/doc/files/lib/rq-2_3_1/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-2_3_1/qdb_rb.html +188 -0
- data/doc/files/lib/rq-2_3_1/querier_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/refresher_rb.html +175 -0
- data/doc/files/lib/rq-2_3_1/relayer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_1/resubmitter_rb.html +183 -0
- data/doc/files/lib/rq-2_3_1/rotater_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/sleepcycle_rb.html +175 -0
- data/doc/files/lib/rq-2_3_1/snapshotter_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/statuslister_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/submitter_rb.html +183 -0
- data/doc/files/lib/rq-2_3_1/updater_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/usage_rb.html +182 -0
- data/doc/files/lib/rq-2_3_1/util_rb.html +184 -0
- data/doc/files/lib/rq-2_3_1_rb.html +153 -0
- data/doc/files/lib/rq-2_3_2/backer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/configfile_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/configurator_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/creator_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-2_3_2/deleter_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/executor_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/feeder_rb.html +191 -0
- data/doc/files/lib/rq-2_3_2/ioviewer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/job_rb.html +189 -0
- data/doc/files/lib/rq-2_3_2/jobqueue_rb.html +192 -0
- data/doc/files/lib/rq-2_3_2/jobrunner_rb.html +188 -0
- data/doc/files/lib/rq-2_3_2/jobrunnerdaemon_rb.html +191 -0
- data/doc/files/lib/rq-2_3_2/lister_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/locker_rb.html +187 -0
- data/doc/files/lib/rq-2_3_2/logging_rb.html +190 -0
- data/doc/files/lib/rq-2_3_2/mainhelper_rb.html +188 -0
- data/doc/files/lib/rq-2_3_2/orderedautohash_rb.html +188 -0
- data/doc/files/lib/rq-2_3_2/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-2_3_2/qdb_rb.html +193 -0
- data/doc/files/lib/rq-2_3_2/querier_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/recoverer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/refresher_rb.html +179 -0
- data/doc/files/lib/rq-2_3_2/relayer_rb.html +190 -0
- data/doc/files/lib/rq-2_3_2/resubmitter_rb.html +187 -0
- data/doc/files/lib/rq-2_3_2/rotater_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/sleepcycle_rb.html +179 -0
- data/doc/files/lib/rq-2_3_2/snapshotter_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/statuslister_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/submitter_rb.html +187 -0
- data/doc/files/lib/rq-2_3_2/updater_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/usage_rb.html +186 -0
- data/doc/files/lib/rq-2_3_2/util_rb.html +188 -0
- data/doc/files/lib/rq-2_3_3/backer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/configfile_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/configurator_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/creator_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-2_3_3/deleter_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/executor_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/feeder_rb.html +191 -0
- data/doc/files/lib/rq-2_3_3/ioviewer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/job_rb.html +189 -0
- data/doc/files/lib/rq-2_3_3/jobqueue_rb.html +192 -0
- data/doc/files/lib/rq-2_3_3/jobrunner_rb.html +188 -0
- data/doc/files/lib/rq-2_3_3/jobrunnerdaemon_rb.html +191 -0
- data/doc/files/lib/rq-2_3_3/lister_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/locker_rb.html +187 -0
- data/doc/files/lib/rq-2_3_3/logging_rb.html +190 -0
- data/doc/files/lib/rq-2_3_3/mainhelper_rb.html +188 -0
- data/doc/files/lib/rq-2_3_3/orderedautohash_rb.html +188 -0
- data/doc/files/lib/rq-2_3_3/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-2_3_3/qdb_rb.html +193 -0
- data/doc/files/lib/rq-2_3_3/querier_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/recoverer_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/refresher_rb.html +179 -0
- data/doc/files/lib/rq-2_3_3/relayer_rb.html +190 -0
- data/doc/files/lib/rq-2_3_3/resubmitter_rb.html +187 -0
- data/doc/files/lib/rq-2_3_3/rotater_rb.html +187 -0
- data/doc/files/lib/rq-2_3_3/sleepcycle_rb.html +179 -0
- data/doc/files/lib/rq-2_3_3/snapshotter_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/statuslister_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/submitter_rb.html +187 -0
- data/doc/files/lib/rq-2_3_3/updater_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/usage_rb.html +186 -0
- data/doc/files/lib/rq-2_3_3/util_rb.html +188 -0
- data/doc/files/lib/rq-3_0_0/backer_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/configfile_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/configurator_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/creator_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/cron_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/defaultconfig_txt.html +110 -0
- data/doc/files/lib/rq-3_0_0/deleter_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/executor_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/feeder_rb.html +199 -0
- data/doc/files/lib/rq-3_0_0/ioviewer_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/job_rb.html +197 -0
- data/doc/files/lib/rq-3_0_0/jobqueue_rb.html +200 -0
- data/doc/files/lib/rq-3_0_0/jobrunner_rb.html +196 -0
- data/doc/files/lib/rq-3_0_0/jobrunnerdaemon_rb.html +199 -0
- data/doc/files/lib/rq-3_0_0/lister_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/locker_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/logging_rb.html +198 -0
- data/doc/files/lib/rq-3_0_0/mainhelper_rb.html +196 -0
- data/doc/files/lib/rq-3_0_0/orderedautohash_rb.html +196 -0
- data/doc/files/lib/rq-3_0_0/orderedhash_rb.html +138 -0
- data/doc/files/lib/rq-3_0_0/qdb_rb.html +201 -0
- data/doc/files/lib/rq-3_0_0/querier_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/recoverer_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/refresher_rb.html +187 -0
- data/doc/files/lib/rq-3_0_0/relayer_rb.html +198 -0
- data/doc/files/lib/rq-3_0_0/resource_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/resourcemanager_rb.html +187 -0
- data/doc/files/lib/rq-3_0_0/resubmitter_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/rotater_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/sleepcycle_rb.html +187 -0
- data/doc/files/lib/rq-3_0_0/snapshotter_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/sqlite_rb.html +160 -0
- data/doc/files/lib/rq-3_0_0/statuslister_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/submitter_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/toucher_rb.html +195 -0
- data/doc/files/lib/rq-3_0_0/updater_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/usage_rb.html +194 -0
- data/doc/files/lib/rq-3_0_0/util_rb.html +196 -0
- data/doc/files/lib/rq_rb.html +244 -0
- data/doc/fr_class_index.html +73 -0
- data/doc/fr_file_index.html +71 -0
- data/doc/fr_method_index.html +323 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +172 -0
- data/extconf.rb +150 -0
- data/gemspec.rb +32 -0
- data/install.rb +75 -8
- data/lib/{rq-0.1.7.rb → rq-3.0.0.rb} +52 -10
- data/lib/{rq-0.1.7 → rq-3.0.0}/backer.rb +11 -7
- data/lib/{rq-0.1.7 → rq-3.0.0}/configfile.rb +21 -17
- data/lib/{rq-0.1.7 → rq-3.0.0}/configurator.rb +10 -6
- data/lib/rq-3.0.0/creator.rb +46 -0
- data/lib/rq-3.0.0/cron.rb +125 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/defaultconfig.txt +0 -0
- data/lib/rq-3.0.0/deleter.rb +51 -0
- data/lib/rq-3.0.0/executor.rb +40 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/feeder.rb +245 -91
- data/lib/rq-3.0.0/i686-linux/_sqlite.so +0 -0
- data/lib/rq-3.0.0/ioviewer.rb +48 -0
- data/lib/rq-3.0.0/job.rb +51 -0
- data/lib/rq-3.0.0/jobqueue.rb +899 -0
- data/lib/rq-3.0.0/jobrunner.rb +104 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/jobrunnerdaemon.rb +41 -27
- data/lib/rq-3.0.0/lister.rb +47 -0
- data/lib/rq-3.0.0/local/bin/sqlite +0 -0
- data/lib/rq-3.0.0/local/include/sqlite.h +868 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.a +0 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.la +35 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.so +0 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.so.0 +0 -0
- data/lib/rq-3.0.0/local/lib/libsqlite.so.0.8.6 +0 -0
- data/lib/rq-3.0.0/local/lib/pkgconfig/sqlite.pc +12 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/locker.rb +12 -6
- data/lib/{rq-0.1.7 → rq-3.0.0}/logging.rb +49 -42
- data/lib/rq-3.0.0/mainhelper.rb +184 -0
- data/lib/rq-3.0.0/orderedautohash.rb +39 -0
- data/lib/rq-3.0.0/orderedhash.rb +240 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/qdb.rb +183 -84
- data/lib/rq-3.0.0/querier.rb +98 -0
- data/lib/rq-3.0.0/recoverer.rb +28 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/refresher.rb +16 -8
- data/lib/rq-3.0.0/relayer.rb +283 -0
- data/lib/rq-3.0.0/resource.rb +22 -0
- data/lib/rq-3.0.0/resourcemanager.rb +40 -0
- data/lib/rq-3.0.0/resubmitter.rb +96 -0
- data/lib/rq-3.0.0/rotater.rb +98 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/sleepcycle.rb +14 -14
- data/lib/rq-3.0.0/snapshotter.rb +40 -0
- data/lib/rq-3.0.0/sqlite.rb +293 -0
- data/lib/rq-3.0.0/statuslister.rb +48 -0
- data/lib/rq-3.0.0/submitter.rb +109 -0
- data/lib/rq-3.0.0/toucher.rb +177 -0
- data/lib/rq-3.0.0/updater.rb +95 -0
- data/lib/rq-3.0.0/usage.rb +1157 -0
- data/lib/{rq-0.1.7 → rq-3.0.0}/util.rb +74 -56
- data/lib/rq.rb +52 -12
- data/rdoc.sh +17 -0
- data/rq +3 -1
- data/white_box/joblist +8 -0
- metadata +779 -96
- data/DEPENDS +0 -5
- data/HISTORY +0 -26
- data/VERSION +0 -1
- data/bin/rq-0.1.7 +0 -410
- data/lib/rq-0.1.7/creator.rb +0 -23
- data/lib/rq-0.1.7/deleter.rb +0 -39
- data/lib/rq-0.1.7/executor.rb +0 -41
- data/lib/rq-0.1.7/job.rb +0 -51
- data/lib/rq-0.1.7/jobqueue.rb +0 -432
- data/lib/rq-0.1.7/jobrunner.rb +0 -63
- data/lib/rq-0.1.7/lister.rb +0 -22
- data/lib/rq-0.1.7/mainhelper.rb +0 -53
- data/lib/rq-0.1.7/querier.rb +0 -33
- data/lib/rq-0.1.7/snapshotter.rb +0 -25
- data/lib/rq-0.1.7/statuslister.rb +0 -22
- data/lib/rq-0.1.7/submitter.rb +0 -90
- data/lib/rq-0.1.7/updater.rb +0 -95
- data/lib/rq-0.1.7/usage.rb +0 -609
- data/rdoc.cmd +0 -2
- data/rq.gemspec +0 -36
- data/rq.help +0 -552
@@ -0,0 +1,22 @@
|
|
1
|
+
unless defined? $__rq_resource__
|
2
|
+
$__rq_resource__ = __FILE__
|
3
|
+
|
4
|
+
module RQ
|
5
|
+
#--{{{
|
6
|
+
RQ::LIBDIR =
|
7
|
+
File::dirname(File::expand_path(__FILE__)) + File::SEPARATOR unless
|
8
|
+
defined? RQ::LIBDIR
|
9
|
+
|
10
|
+
RQ::INCDIR =
|
11
|
+
File::dirname(RQ::LIBDIR) + File::SEPARATOR unless
|
12
|
+
defined? RQ::INCDIR
|
13
|
+
|
14
|
+
require INCDIR + 'rq'
|
15
|
+
|
16
|
+
class Resource
|
17
|
+
#--{{{
|
18
|
+
#--}}}
|
19
|
+
end # class Resource
|
20
|
+
#--}}}
|
21
|
+
end # module RQ
|
22
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
unless defined? $__rq_resourcemanager__
|
2
|
+
$__rq_resourcemanager__ = __FILE__
|
3
|
+
|
4
|
+
#require 'yaml'
|
5
|
+
#require 'yaml/store'
|
6
|
+
#require 'socket'
|
7
|
+
|
8
|
+
module RQ
|
9
|
+
#--{{{
|
10
|
+
RQ::LIBDIR =
|
11
|
+
File::dirname(File::expand_path(__FILE__)) + File::SEPARATOR unless
|
12
|
+
defined? RQ::LIBDIR
|
13
|
+
|
14
|
+
RQ::INCDIR =
|
15
|
+
File::dirname(RQ::LIBDIR) + File::SEPARATOR unless
|
16
|
+
defined? RQ::INCDIR
|
17
|
+
|
18
|
+
#require INCDIR + 'rq'
|
19
|
+
|
20
|
+
class ResourceManager
|
21
|
+
#--{{{
|
22
|
+
attr 'path'
|
23
|
+
attr 'ystore'
|
24
|
+
|
25
|
+
def initialize path
|
26
|
+
#--{{{
|
27
|
+
@path = File.expand_path path.to_s
|
28
|
+
@ystore = YAML::Store.new @path
|
29
|
+
#--}}}
|
30
|
+
end
|
31
|
+
|
32
|
+
def valid? expr
|
33
|
+
#--{{{
|
34
|
+
#--}}}
|
35
|
+
end
|
36
|
+
#--}}}
|
37
|
+
end # class ResourceManager
|
38
|
+
#--}}}
|
39
|
+
end # module RQ
|
40
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
unless defined? $__rq_resubmitter__
|
2
|
+
module RQ
|
3
|
+
#--{{{
|
4
|
+
LIBDIR = File::dirname(File::expand_path(__FILE__)) + File::SEPARATOR unless
|
5
|
+
defined? LIBDIR
|
6
|
+
|
7
|
+
require LIBDIR + 'mainhelper'
|
8
|
+
require LIBDIR + 'job'
|
9
|
+
|
10
|
+
#
|
11
|
+
# the Submitter class is responsible for submitting commands to the queue,
|
12
|
+
# the commands it submits are taken from the command line, stdin, or the
|
13
|
+
# specified infile. the format of commands read from stdin or file is
|
14
|
+
# either a simple list of commands, one per line, where blank lines and
|
15
|
+
# comments (#) are ignored OR it is valid yaml input. if the Submitter sees
|
16
|
+
# the token '---' in the input stream it is assumed the input is yaml. for
|
17
|
+
# an example of valid yaml input examine the output of a Lister using
|
18
|
+
#
|
19
|
+
# rq q list
|
20
|
+
#
|
21
|
+
# the output of other commands, such as that of a Querier may also be used
|
22
|
+
# as input to submit
|
23
|
+
#
|
24
|
+
class ReSubmitter < MainHelper
|
25
|
+
#--{{{
|
26
|
+
def resubmit
|
27
|
+
#--{{{
|
28
|
+
set_q
|
29
|
+
|
30
|
+
@priority = @options['priority']
|
31
|
+
debug{ "priority <#{ @priority }>" }
|
32
|
+
|
33
|
+
@tag = @options['tag']
|
34
|
+
debug{ "tag <#{ @tag }>" }
|
35
|
+
|
36
|
+
@runner = @options['runner']
|
37
|
+
debug{ "runner <#{ @runner }>" }
|
38
|
+
|
39
|
+
@restartable = @options['restartable']
|
40
|
+
debug{ "restartable <#{ @restartable }>" }
|
41
|
+
|
42
|
+
@infile = @options['infile']
|
43
|
+
debug{ "infile <#{ @infile }>" }
|
44
|
+
|
45
|
+
if job_stdin == '-' and stdin?
|
46
|
+
abort "cannot specify both jobs and job input on stdin"
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
jobs = []
|
51
|
+
|
52
|
+
if @infile
|
53
|
+
open(@infile) do |f|
|
54
|
+
debug{ "reading jobs from <#{ @infile }>" }
|
55
|
+
loadio f, @infile, jobs
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
if stdin?
|
60
|
+
debug{ "reading jobs from <stdin>" }
|
61
|
+
loadio stdin, 'stdin', jobs
|
62
|
+
end
|
63
|
+
jobs.each{|job| @argv << Integer(job['jid'])}
|
64
|
+
|
65
|
+
abort "no jobs specified!" if @argv.empty?
|
66
|
+
|
67
|
+
init_job_stdin!
|
68
|
+
|
69
|
+
puts '---'
|
70
|
+
@q.transaction do
|
71
|
+
jobs = @q.list(*@argv)
|
72
|
+
jobs.each do |job|
|
73
|
+
job['priority'] = @priority if @options.has_key?('priority')
|
74
|
+
job['tag'] = @tag if @options.has_key?('tag')
|
75
|
+
job['runner'] = @runner if @options.has_key?('runner')
|
76
|
+
job['restartable'] = @restartable if @options.has_key?('restartable')
|
77
|
+
job['stdin'] = @job_stdin if @job_stdin
|
78
|
+
unless job['state'] =~ %r/running/io
|
79
|
+
resubmitted = nil
|
80
|
+
@q.resubmit(job){|resubmitted|}
|
81
|
+
puts '-'
|
82
|
+
resubmitted.fields.each{|f| puts " #{ f }: #{ resubmitted[f] }" }
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
jobs = nil
|
88
|
+
self
|
89
|
+
#--}}}
|
90
|
+
end
|
91
|
+
#--}}}
|
92
|
+
end # class ReSubmitter
|
93
|
+
#--}}}
|
94
|
+
end # module RQ
|
95
|
+
$__rq_resubmitter__ = __FILE__
|
96
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
unless defined? $__rq_rotater__
|
2
|
+
module RQ
|
3
|
+
#--{{{
|
4
|
+
LIBDIR = File::dirname(File::expand_path(__FILE__)) + File::SEPARATOR unless
|
5
|
+
defined? LIBDIR
|
6
|
+
|
7
|
+
require LIBDIR + 'mainhelper'
|
8
|
+
require LIBDIR + 'util'
|
9
|
+
|
10
|
+
class Rotater < MainHelper
|
11
|
+
#--{{{
|
12
|
+
def rotate
|
13
|
+
#--{{{
|
14
|
+
set_q
|
15
|
+
|
16
|
+
rot = Util::realpath @argv.shift
|
17
|
+
|
18
|
+
rot =
|
19
|
+
if rot
|
20
|
+
if File::directory? rot
|
21
|
+
t = Time::now.strftime('%Y%m%d%H%M%S')
|
22
|
+
File::join(rot, "#{ File.basename @qpath }.#{ t }")
|
23
|
+
else
|
24
|
+
rot
|
25
|
+
end
|
26
|
+
else
|
27
|
+
t = Time::now.strftime('%Y%m%d%H%M%S')
|
28
|
+
"#{ @qpath }.#{ t }"
|
29
|
+
end
|
30
|
+
|
31
|
+
#rot ||= "#{ @qpath }.#{ Util::timestamp.gsub(/[:\s\.-]/,'_') }.rot"
|
32
|
+
|
33
|
+
abort "<#{ rot }> exists" if rot and test(?e, rot)
|
34
|
+
debug{ "rotation <#{ rot }>" }
|
35
|
+
|
36
|
+
FileUtils::mkdir_p(File::dirname(rot)) rescue nil
|
37
|
+
|
38
|
+
rotq = nil
|
39
|
+
|
40
|
+
@q.transaction do
|
41
|
+
begin
|
42
|
+
#FileUtils::cp_r @qpath, rot
|
43
|
+
self.cp_r @qpath, rot
|
44
|
+
rotq = JobQueue::new rot, 'logger' => @logger
|
45
|
+
rotq.delete 'pending', 'running', 'holding', 'force' => true
|
46
|
+
@q.delete 'dead', 'finished'
|
47
|
+
rescue
|
48
|
+
FileUtils::rm_rf rot
|
49
|
+
raise
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
tgz = File::expand_path "#{ rot }.tgz"
|
54
|
+
#dirname = File::dirname rot
|
55
|
+
if(system("cd #{ File::dirname rot } && tar cvfz #{ File::basename tgz } #{ File::basename rot }/ >/dev/null 2>&1"))
|
56
|
+
FileUtils::rm_rf rot
|
57
|
+
rot = tgz
|
58
|
+
end
|
59
|
+
|
60
|
+
puts "---"
|
61
|
+
puts "rotation : #{ rot }"
|
62
|
+
|
63
|
+
#puts '---'
|
64
|
+
#puts "q: #{ rotq.path }"
|
65
|
+
#puts "db: #{ rotq.db.path }"
|
66
|
+
#puts "schema: #{ rotq.db.schema }"
|
67
|
+
#puts "lock: #{ rotq.db.lockfile }"
|
68
|
+
|
69
|
+
EXIT_SUCCESS
|
70
|
+
#--}}}
|
71
|
+
end
|
72
|
+
##
|
73
|
+
# the cp_r should never fail, so we build in another attempt under
|
74
|
+
# failing conditions
|
75
|
+
def cp_r srcdir, dstdir
|
76
|
+
#--{{{
|
77
|
+
attempts = 0
|
78
|
+
loop do
|
79
|
+
begin
|
80
|
+
break(FileUtils::cp_r(srcdir, dstdir))
|
81
|
+
rescue => e
|
82
|
+
raise if attempts > 2
|
83
|
+
warn{ e }
|
84
|
+
Util::uncache srcdir rescue nil
|
85
|
+
Util::uncache dstdir rescue nil
|
86
|
+
sleep 2
|
87
|
+
ensure
|
88
|
+
attempts += 1
|
89
|
+
end
|
90
|
+
end
|
91
|
+
#--}}}
|
92
|
+
end
|
93
|
+
#--}}}
|
94
|
+
end # class Rotater
|
95
|
+
#--}}}
|
96
|
+
end # module RQ
|
97
|
+
$__rq_rotater__ = __FILE__
|
98
|
+
end
|
@@ -1,21 +1,21 @@
|
|
1
1
|
unless defined? $__rq_sleepcycle__
|
2
2
|
module RQ
|
3
|
-
|
3
|
+
#--{{{
|
4
4
|
LIBDIR = File::dirname(File::expand_path(__FILE__)) + File::SEPARATOR unless
|
5
5
|
defined? LIBDIR
|
6
6
|
|
7
|
-
#
|
8
|
-
# the sleepcycle class provides timeouts for better than average polling
|
9
|
-
# performance
|
10
|
-
#
|
7
|
+
#
|
8
|
+
# the sleepcycle class provides timeouts for better than average polling
|
9
|
+
# performance by the locking protocol used by the QDB
|
10
|
+
#
|
11
11
|
class SleepCycle < Array
|
12
|
-
|
12
|
+
#--{{{
|
13
13
|
attr :min
|
14
14
|
attr :max
|
15
15
|
attr :range
|
16
16
|
attr :inc
|
17
17
|
def initialize min, max, inc
|
18
|
-
|
18
|
+
#--{{{
|
19
19
|
@min, @max, @inc = Float(min), Float(max), Float(inc)
|
20
20
|
@range = @max - @min
|
21
21
|
raise RangeError, "max < min" if @max < @min
|
@@ -24,23 +24,23 @@ unless defined? $__rq_sleepcycle__
|
|
24
24
|
push(s) and s += @inc while(s <= @max)
|
25
25
|
self[-1] = @max if self[-1] < @max
|
26
26
|
reset
|
27
|
-
|
27
|
+
#--}}}
|
28
28
|
end
|
29
29
|
def next
|
30
|
-
|
30
|
+
#--{{{
|
31
31
|
ret = self[@idx]
|
32
32
|
@idx = ((@idx + 1) % self.size)
|
33
33
|
ret
|
34
|
-
|
34
|
+
#--}}}
|
35
35
|
end
|
36
36
|
def reset
|
37
|
-
|
37
|
+
#--{{{
|
38
38
|
@idx = 0
|
39
|
-
|
39
|
+
#--}}}
|
40
40
|
end
|
41
|
-
|
41
|
+
#--}}}
|
42
42
|
end # class SleepCycle
|
43
|
-
|
43
|
+
#--}}}
|
44
44
|
end # module RQ
|
45
45
|
$__rq_sleepcycle__ = __FILE__
|
46
46
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
unless defined? $__rq_snapshotter__
|
2
|
+
module RQ
|
3
|
+
#--{{{
|
4
|
+
LIBDIR = File::dirname(File::expand_path(__FILE__)) + File::SEPARATOR unless
|
5
|
+
defined? LIBDIR
|
6
|
+
|
7
|
+
require LIBDIR + 'mainhelper'
|
8
|
+
|
9
|
+
#
|
10
|
+
# a Snapshotter is responsible for safely making a hot snapshot of a queue's
|
11
|
+
# db. it's very useful to make a snapshot if, for instance, you are working
|
12
|
+
# out a complex query over several attempts since each attempt will compete
|
13
|
+
# with other processes for the queue's lock. by making a snapshot you will
|
14
|
+
# have your own read only copy to perfect your command before applying it to
|
15
|
+
# the actual queue. the feature can also be used to make a hot backup of a
|
16
|
+
# queue - tough the Backer has some features that make this more convenient
|
17
|
+
#
|
18
|
+
class Snapshotter < MainHelper
|
19
|
+
#--{{{
|
20
|
+
def snapshot
|
21
|
+
#--{{{
|
22
|
+
set_q
|
23
|
+
qtmp = @argv.shift
|
24
|
+
raise "<#{ qtmp }> exists" if qtmp and test(?e, qtmp)
|
25
|
+
qss = @q.snapshot qtmp, @options['retries']
|
26
|
+
#info{ "created q snapshot <#{ qtmp }>" }
|
27
|
+
|
28
|
+
puts '---'
|
29
|
+
puts "q: #{ qss.path }"
|
30
|
+
puts "db: #{ qss.db.path }"
|
31
|
+
puts "schema: #{ qss.db.schema }"
|
32
|
+
puts "lock: #{ qss.db.lockfile }"
|
33
|
+
#--}}}
|
34
|
+
end
|
35
|
+
#--}}}
|
36
|
+
end # class Snapshotter
|
37
|
+
#--}}}
|
38
|
+
end # module RQ
|
39
|
+
$__rq_snapshotter__ = __FILE__
|
40
|
+
end
|
@@ -0,0 +1,293 @@
|
|
1
|
+
# --------------------------------------------------------------------------
|
2
|
+
# sqlite.rb -- ruby interface for enhancing the core SQLite routines
|
3
|
+
# Copyright (C) 2003 Jamis Buck (jgb3@email.byu.edu)
|
4
|
+
# --------------------------------------------------------------------------
|
5
|
+
# This file is part of the SQLite ruby interface.
|
6
|
+
#
|
7
|
+
# The SQLite/Ruby Interface is free software; you can redistribute it and/or
|
8
|
+
# modify it under the terms of the GNU General Public License as published
|
9
|
+
# by the Free Software Foundation; either version 2 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# The SQLite/Ruby Interface is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15
|
+
# General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with the SQLite/Ruby Interface; if not, write to the Free Software
|
19
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
20
|
+
# --------------------------------------------------------------------------
|
21
|
+
# This defines further enhancements to the SQLite::Database class.
|
22
|
+
#
|
23
|
+
# Author: Jamis Buck (jgb3@email.byu.edu)
|
24
|
+
# Date: June 2003
|
25
|
+
# --------------------------------------------------------------------------
|
26
|
+
|
27
|
+
require '_sqlite'
|
28
|
+
require 'time'
|
29
|
+
require 'base64'
|
30
|
+
|
31
|
+
# The SQLite module defines the classes and objects needed to interface with a
|
32
|
+
# SQLite database.
|
33
|
+
module SQLite
|
34
|
+
|
35
|
+
# The Database class represents a single SQLite database.
|
36
|
+
class Database
|
37
|
+
|
38
|
+
# An alias for #new, with the exception that the mode parameter is optional and
|
39
|
+
# defaults to 0 if unspecified.
|
40
|
+
def self.open( name, mode=0 )
|
41
|
+
new( name, mode )
|
42
|
+
end
|
43
|
+
|
44
|
+
# Returns a string with special characters escaped, such that the string may
|
45
|
+
# be safely used as a string literal in an SQL query.
|
46
|
+
def self.quote( string )
|
47
|
+
return string.gsub( /'/, "''" )
|
48
|
+
end
|
49
|
+
|
50
|
+
# Returns a string that represents the serialization of the given object. The
|
51
|
+
# string may safely be used in an SQL statement.
|
52
|
+
def self.encode( object )
|
53
|
+
Base64.encode64( Marshal.dump( object ) ).strip
|
54
|
+
end
|
55
|
+
|
56
|
+
# Returns an object that was serialized in the given string.
|
57
|
+
def self.decode( string )
|
58
|
+
Marshal.load( Base64.decode64( string ) )
|
59
|
+
end
|
60
|
+
|
61
|
+
# This is a convenience method for querying the database. If the (optional)
|
62
|
+
# block is not specified, then an array of rows will be returned. Otherwise,
|
63
|
+
# the given block will be executed one for each row in the result set.
|
64
|
+
def execute( sql, arg=nil, &block )
|
65
|
+
if block_given?
|
66
|
+
exec( sql, block, arg )
|
67
|
+
else
|
68
|
+
rows = []
|
69
|
+
exec( sql, proc { |row| rows.push row }, arg )
|
70
|
+
return rows
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# A convenience method for retrieving the first row of the result set returned
|
75
|
+
# by the given query.
|
76
|
+
def get_first_row( sql )
|
77
|
+
result = nil
|
78
|
+
execute( sql ) do |row|
|
79
|
+
result = row
|
80
|
+
SQLite::ABORT
|
81
|
+
end
|
82
|
+
result
|
83
|
+
end
|
84
|
+
|
85
|
+
# A convenience method for retrieving the first column of the first row of the
|
86
|
+
# result set returned by the given query.
|
87
|
+
def get_first_value( sql )
|
88
|
+
result = nil
|
89
|
+
execute( sql ) do |row|
|
90
|
+
result = row[0]
|
91
|
+
SQLite::ABORT
|
92
|
+
end
|
93
|
+
result
|
94
|
+
end
|
95
|
+
|
96
|
+
# Performs an integrity check on the database. If there is a problem, it will raise an
|
97
|
+
# exception, otherwise the database is fine.
|
98
|
+
def integrity_check
|
99
|
+
execute( "PRAGMA integrity_check" ) do |row|
|
100
|
+
raise DatabaseException, row[0] if row[0] != "ok"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
# Defines a getter and setter for the named boolean pragma. A boolean pragma
|
105
|
+
# is one that is either true or false.
|
106
|
+
def self.define_boolean_pragma( name )
|
107
|
+
class_eval <<-EODEF
|
108
|
+
def #{name}
|
109
|
+
get_first_value( "PRAGMA #{name}" ) != "0"
|
110
|
+
end
|
111
|
+
|
112
|
+
def #{name}=( mode )
|
113
|
+
execute( "PRAGMA #{name}=\#{fix_pragma_parm(mode)}" )
|
114
|
+
end
|
115
|
+
EODEF
|
116
|
+
end
|
117
|
+
|
118
|
+
# Defines a method for invoking the named query pragma, with the given parameters.
|
119
|
+
# A query pragma is one that accepts an optional callback block and invokes it for
|
120
|
+
# each row that the pragma returns.
|
121
|
+
def self.define_query_pragma( name, *parms )
|
122
|
+
if parms.empty?
|
123
|
+
definition = <<-EODEF
|
124
|
+
def #{name}( &block )
|
125
|
+
execute( "PRAGMA #{name}", &block )
|
126
|
+
end
|
127
|
+
EODEF
|
128
|
+
else
|
129
|
+
definition = <<-EODEF
|
130
|
+
def #{name}( #{parms.join(',')}, &block )
|
131
|
+
execute( "PRAGMA #{name}( '\#{#{parms.join("}','\#{")}}' )", &block )
|
132
|
+
end
|
133
|
+
EODEF
|
134
|
+
end
|
135
|
+
|
136
|
+
class_eval definition
|
137
|
+
end
|
138
|
+
|
139
|
+
# Defines a getter and setter for an enumeration pragma, which is like the boolean pragma
|
140
|
+
# except that it accepts a range of discrete values.
|
141
|
+
def self.define_enum_pragma( name, *enums )
|
142
|
+
cases = ""
|
143
|
+
enums.each do |enum|
|
144
|
+
cases << "when \"" <<
|
145
|
+
enum.map { |i| i.to_s.downcase }.join( '", "' ) <<
|
146
|
+
"\": mode = \"" <<
|
147
|
+
enum.first.upcase << "\"\n"
|
148
|
+
end
|
149
|
+
|
150
|
+
class_eval <<-EODEF
|
151
|
+
def #{name}
|
152
|
+
get_first_value( "PRAGMA #{name}" )
|
153
|
+
end
|
154
|
+
|
155
|
+
def #{name}=( mode )
|
156
|
+
case mode.to_s.downcase
|
157
|
+
#{cases}
|
158
|
+
else
|
159
|
+
raise DatabaseException, "unrecognized #{name} '\#{mode}'"
|
160
|
+
end
|
161
|
+
|
162
|
+
execute( "PRAGMA #{name}='\#{mode}'" )
|
163
|
+
end
|
164
|
+
EODEF
|
165
|
+
end
|
166
|
+
|
167
|
+
# Defines a getter and setter for a pragma that accepts (or returns) an integer pragma.
|
168
|
+
def self.define_int_pragma( name, *enums )
|
169
|
+
class_eval <<-EODEF
|
170
|
+
def #{name}
|
171
|
+
get_first_value( "PRAGMA #{name}" ).to_i
|
172
|
+
end
|
173
|
+
|
174
|
+
def #{name}=( value )
|
175
|
+
execute( "PRAGMA #{name}=\#{value.to_i}" )
|
176
|
+
end
|
177
|
+
EODEF
|
178
|
+
end
|
179
|
+
|
180
|
+
# An internal method for converting the pragma parameter of the boolean pragmas to
|
181
|
+
# something that SQLite can understand.
|
182
|
+
def fix_pragma_parm( parm )
|
183
|
+
case parm
|
184
|
+
when String
|
185
|
+
case parm.downcase
|
186
|
+
when "on", "yes", "true", "y", "t": return "'ON'"
|
187
|
+
when "off", "no", "false", "n", "f": return "'OFF'"
|
188
|
+
else
|
189
|
+
raise DatabaseException, "unrecognized pragma parameter '#{parm}'"
|
190
|
+
end
|
191
|
+
when true, 1
|
192
|
+
return "ON"
|
193
|
+
when false, 0, nil
|
194
|
+
return "OFF"
|
195
|
+
else
|
196
|
+
raise DatabaseException, "unrecognized pragma parameter '#{parm.inspect}'"
|
197
|
+
end
|
198
|
+
end
|
199
|
+
private :fix_pragma_parm
|
200
|
+
|
201
|
+
define_int_pragma "cache_size"
|
202
|
+
define_int_pragma "default_cache_size"
|
203
|
+
|
204
|
+
define_enum_pragma "default_synchronous", [ 'full', 2 ], [ 'normal', 1 ], [ 'off', 0 ]
|
205
|
+
define_enum_pragma "default_temp_store", [ 'default', 0 ], [ 'file', 1 ], [ 'memory', 2 ]
|
206
|
+
define_enum_pragma "synchronous", [ 'full', 2 ], [ 'normal', 1 ], [ 'off', 0 ]
|
207
|
+
define_enum_pragma "temp_store", [ 'default', 0 ], [ 'file', 1 ], [ 'memory', 2 ]
|
208
|
+
|
209
|
+
define_boolean_pragma "empty_result_callbacks"
|
210
|
+
define_boolean_pragma "full_column_names"
|
211
|
+
define_boolean_pragma "parser_trace"
|
212
|
+
define_boolean_pragma "show_datatypes"
|
213
|
+
define_boolean_pragma "vdbe_trace"
|
214
|
+
|
215
|
+
define_query_pragma "database_list"
|
216
|
+
define_query_pragma "foreign_key_list", "table_name"
|
217
|
+
define_query_pragma "index_info", "index"
|
218
|
+
define_query_pragma "index_list", "table"
|
219
|
+
define_query_pragma "table_info", "table"
|
220
|
+
end
|
221
|
+
|
222
|
+
# The TypeTranslator is a singleton class that manages the routines that have
|
223
|
+
# been registered to convert particular types. The translator only manages
|
224
|
+
# conversions in queries (where data is coming out of the database), and not
|
225
|
+
# updates (where data is going into the database).
|
226
|
+
class TypeTranslator
|
227
|
+
@@default_translator = proc { |type,value| value }
|
228
|
+
@@translators = Hash.new( @@default_translator )
|
229
|
+
|
230
|
+
# Registers the given block to be used when a value of the given type needs
|
231
|
+
# to be translated from a string.
|
232
|
+
def self.add_translator( type, &block )
|
233
|
+
@@translators[ type_name( type ) ] = block
|
234
|
+
end
|
235
|
+
|
236
|
+
# Looks up the translator for the given type, and asks it to convert the
|
237
|
+
# given value.
|
238
|
+
def self.translate( type, value )
|
239
|
+
unless value.nil?
|
240
|
+
@@translators[ type_name( type ) ].call( type, value )
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
# Finds the base type name for the given type. Type names with parenthesis
|
245
|
+
# (like "VARCHAR(x)" and "DECIMAL(x,y)") will have the parenthesized portion
|
246
|
+
# removed.
|
247
|
+
def self.type_name( type )
|
248
|
+
type = $1 if type =~ /^(.*?)\(/
|
249
|
+
type.upcase
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
[ "date",
|
254
|
+
"datetime",
|
255
|
+
"time" ].each { |type| TypeTranslator.add_translator( type ) { |t,v| Time.parse( v ) } }
|
256
|
+
|
257
|
+
[ "decimal",
|
258
|
+
"float",
|
259
|
+
"numeric",
|
260
|
+
"double",
|
261
|
+
"real",
|
262
|
+
"dec",
|
263
|
+
"fixed" ].each { |type| TypeTranslator.add_translator( type ) { |t,v| v.to_f } }
|
264
|
+
|
265
|
+
[ "integer",
|
266
|
+
"smallint",
|
267
|
+
"mediumint",
|
268
|
+
"int",
|
269
|
+
"integer",
|
270
|
+
"bigint" ].each { |type| TypeTranslator.add_translator( type ) { |t,v| v.to_i } }
|
271
|
+
|
272
|
+
[ "bit",
|
273
|
+
"bool",
|
274
|
+
"boolean" ].each do |type|
|
275
|
+
TypeTranslator.add_translator( type ) do |t,v|
|
276
|
+
!( v.to_i == 0 ||
|
277
|
+
v.downcase == "false" ||
|
278
|
+
v.downcase == "f" ||
|
279
|
+
v.downcase == "no" ||
|
280
|
+
v.downcase == "n" )
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
TypeTranslator.add_translator( "timestamp" ) { |type, value| Time.at( value.to_i ) }
|
285
|
+
TypeTranslator.add_translator( "tinyint" ) do |type, value|
|
286
|
+
if type =~ /\(\s*1\s*\)/
|
287
|
+
value.to_i == 1
|
288
|
+
else
|
289
|
+
value.to_i
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
end
|