ttk 0.1.580 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (452) hide show
  1. data/AUTHORS +27 -26
  2. data/ChangeLog +232 -0
  3. data/GUIDELINES +5 -4
  4. data/NEWS +36 -0
  5. data/Rakefile +4 -125
  6. data/SPEC.dyn.yml +10 -0
  7. data/SPEC.gemspec +17 -0
  8. data/SPEC.yml +52 -0
  9. data/TODO.old +0 -84
  10. data/VERSION +2 -2
  11. data/bin/getopts/ttk.rb +9 -23
  12. data/bin/ttk +41 -33
  13. data/lib/ttk.rb +16 -11
  14. data/lib/ttk/dumpers/Basic.rb +23 -0
  15. data/lib/ttk/dumpers/Dumper.rb +7 -1
  16. data/lib/ttk/dumpers/Notif.rb +8 -13
  17. data/lib/ttk/dumpers/Yaml.rb +7 -16
  18. data/lib/ttk/fetchers/client/receiver.rb +1 -4
  19. data/lib/ttk/fetchers/server/sender.rb +1 -4
  20. data/lib/ttk/loaders/Loader.rb +42 -19
  21. data/lib/ttk/loaders/Yaml.rb +46 -45
  22. data/lib/ttk/logger.rb +11 -8
  23. data/lib/ttk/logger/severity.rb +9 -8
  24. data/lib/ttk/logger/to_ttk_log.rb +9 -6
  25. data/lib/ttk/logger_factory.rb +8 -3
  26. data/lib/ttk/strategies/Authors.rb +2 -2
  27. data/lib/ttk/strategies/Checkout.rb +2 -1
  28. data/lib/ttk/strategies/CmdBase.rb +8 -2
  29. data/lib/ttk/strategies/Collection.rb +10 -4
  30. data/lib/ttk/strategies/Composite.rb +8 -2
  31. data/lib/ttk/strategies/IOBased.rb +6 -9
  32. data/lib/ttk/strategies/PackageCollection.rb +8 -2
  33. data/lib/ttk/strategies/RUnit.rb +12 -3
  34. data/lib/ttk/strategies/RemoteCmd.rb +35 -4
  35. data/lib/ttk/strategies/Strategy.rb +6 -7
  36. data/lib/ttk/strategies/Streams.rb +72 -0
  37. data/lib/ttk/strategies/Streams/Pipe.rb +49 -0
  38. data/lib/ttk/strategies/Streams/Stream.rb +2 -69
  39. data/lib/ttk/strategies/SubCmd.rb +26 -10
  40. data/lib/ttk/strategies/Suite.rb +2 -49
  41. data/lib/ttk/symtbl.rb +4 -4
  42. data/template/README +29 -0
  43. data/test/{ttk-dist-suite.yml → dist-suite.yml} +2 -0
  44. data/test/{ttk-minimal-suite.yml → minimal-suite.yml} +0 -0
  45. data/test/pkg-suite.yml +10 -0
  46. data/test/pool-suite.yml +10 -0
  47. data/test/{ttk-minimal → pool-tests}/pool.yml +0 -0
  48. data/test/ressources/runit/bad.rb +1 -5
  49. data/test/ressources/runit/good.rb +1 -5
  50. data/test/runit/dumpers/xml_test.rb +3 -4
  51. data/test/runit/dumpers/yaml_test.rb +3 -4
  52. data/test/runit/fetchers/fetchers_test.rb +16 -8
  53. data/test/runit/logger/section_node_test.rb +3 -6
  54. data/test/runit/logger/severity_test.rb +4 -6
  55. data/test/runit/logger/verbosity_test.rb +3 -6
  56. data/test/runit/logger_test.rb +138 -146
  57. data/test/runit/strategies/Strategy/assert_eval_test.rb +3 -4
  58. data/test/runit/strategies/suite_test.rb +133 -0
  59. data/test/test-unit-setup.rb +8 -0
  60. data/test/ttk-check.yml +10 -0
  61. data/test/ttk-distcheck.yml +22 -0
  62. data/test/ttk-minimal/runit.yml +6 -5
  63. data/test/ttk-minimal/sub.yml +2 -2
  64. data/test/ttk-pkg/cmdline.yml +29 -0
  65. data/test/unit-suite.yml +13 -0
  66. metadata +233 -560
  67. data/DATE +0 -1
  68. data/DESCRIPTION +0 -8
  69. data/REVISION +0 -1
  70. data/doc/html/classes/IO/CutInput.html +0 -159
  71. data/doc/html/classes/IO/Delegator.html +0 -291
  72. data/doc/html/classes/IO/Dispatch.html +0 -204
  73. data/doc/html/classes/IO/Ext.html +0 -118
  74. data/doc/html/classes/IO/ImplExt.html +0 -149
  75. data/doc/html/classes/IO/ImplIndent.html +0 -175
  76. data/doc/html/classes/IO/ImplPrintFile.html +0 -142
  77. data/doc/html/classes/IO/ImplPrintIO.html +0 -143
  78. data/doc/html/classes/IO/InputFilter.html +0 -347
  79. data/doc/html/classes/IO/OutputFilter.html +0 -298
  80. data/doc/html/classes/NilClass.html +0 -198
  81. data/doc/html/classes/SafeEval.html +0 -277
  82. data/doc/html/classes/String.html +0 -245
  83. data/doc/html/classes/SymTbl.html +0 -146
  84. data/doc/html/classes/TTK.html +0 -658
  85. data/doc/html/classes/TTK/AbortStatus.html +0 -211
  86. data/doc/html/classes/TTK/Daemons.html +0 -142
  87. data/doc/html/classes/TTK/Daemons/Daemon.html +0 -170
  88. data/doc/html/classes/TTK/Daemons/Daemon/Logger.html +0 -192
  89. data/doc/html/classes/TTK/Daemons/Master.html +0 -163
  90. data/doc/html/classes/TTK/Daemons/Slave.html +0 -158
  91. data/doc/html/classes/TTK/Dumpers.html +0 -150
  92. data/doc/html/classes/TTK/Dumpers/Dumper.html +0 -465
  93. data/doc/html/classes/TTK/Dumpers/Notif.html +0 -208
  94. data/doc/html/classes/TTK/Dumpers/Xml.html +0 -260
  95. data/doc/html/classes/TTK/Dumpers/Yaml.html +0 -307
  96. data/doc/html/classes/TTK/ErrorStatus.html +0 -133
  97. data/doc/html/classes/TTK/FailStatus.html +0 -195
  98. data/doc/html/classes/TTK/Fetchers.html +0 -135
  99. data/doc/html/classes/TTK/Fetchers/Client.html +0 -229
  100. data/doc/html/classes/TTK/Fetchers/Client/Receiver.html +0 -254
  101. data/doc/html/classes/TTK/Fetchers/Server.html +0 -256
  102. data/doc/html/classes/TTK/Fetchers/Server/Sender.html +0 -241
  103. data/doc/html/classes/TTK/Filters.html +0 -142
  104. data/doc/html/classes/TTK/Filters/BasicLogger.html +0 -187
  105. data/doc/html/classes/TTK/Filters/Filter.html +0 -188
  106. data/doc/html/classes/TTK/Filters/Saver.html +0 -279
  107. data/doc/html/classes/TTK/Loaders.html +0 -115
  108. data/doc/html/classes/TTK/Loaders/BaseNode.html +0 -224
  109. data/doc/html/classes/TTK/Loaders/Loader.html +0 -242
  110. data/doc/html/classes/TTK/Loaders/OYaml.html +0 -161
  111. data/doc/html/classes/TTK/Loaders/Yaml.html +0 -157
  112. data/doc/html/classes/TTK/Loaders/YamlOld.html +0 -155
  113. data/doc/html/classes/TTK/Logger.html +0 -808
  114. data/doc/html/classes/TTK/Logger/Path.html +0 -161
  115. data/doc/html/classes/TTK/Logger/SectionNode.html +0 -925
  116. data/doc/html/classes/TTK/Logger/Severity.html +0 -306
  117. data/doc/html/classes/TTK/Logger/ToTTKLog.html +0 -119
  118. data/doc/html/classes/TTK/Logger/Verbosity.html +0 -278
  119. data/doc/html/classes/TTK/LoggerFactory.html +0 -204
  120. data/doc/html/classes/TTK/Monitors.html +0 -132
  121. data/doc/html/classes/TTK/Monitors/Client.html +0 -261
  122. data/doc/html/classes/TTK/Monitors/Monitor.html +0 -209
  123. data/doc/html/classes/TTK/Monitors/Server.html +0 -288
  124. data/doc/html/classes/TTK/Monitors/Server/Notification.html +0 -118
  125. data/doc/html/classes/TTK/Monitors/Server/Notifier.html +0 -118
  126. data/doc/html/classes/TTK/PassStatus.html +0 -168
  127. data/doc/html/classes/TTK/RunningStatus.html +0 -133
  128. data/doc/html/classes/TTK/Services.html +0 -161
  129. data/doc/html/classes/TTK/Services/DRbService.html +0 -217
  130. data/doc/html/classes/TTK/Services/DRbService/Notification.html +0 -123
  131. data/doc/html/classes/TTK/Services/DRbService/SubTestable.html +0 -197
  132. data/doc/html/classes/TTK/Services/FetcherClient.html +0 -190
  133. data/doc/html/classes/TTK/Services/FetcherServer.html +0 -149
  134. data/doc/html/classes/TTK/Services/MonitorClient.html +0 -190
  135. data/doc/html/classes/TTK/Services/MonitorServer.html +0 -149
  136. data/doc/html/classes/TTK/Services/TesterClient.html +0 -207
  137. data/doc/html/classes/TTK/Services/TesterMaster.html +0 -193
  138. data/doc/html/classes/TTK/Services/TesterMaster/Notification.html +0 -123
  139. data/doc/html/classes/TTK/Services/TesterSlave.html +0 -157
  140. data/doc/html/classes/TTK/Services/TesterSlave/Notification.html +0 -118
  141. data/doc/html/classes/TTK/SkipStatus.html +0 -169
  142. data/doc/html/classes/TTK/StartStatus.html +0 -133
  143. data/doc/html/classes/TTK/Status.html +0 -373
  144. data/doc/html/classes/TTK/StatusException.html +0 -161
  145. data/doc/html/classes/TTK/StatusWithMessage.html +0 -220
  146. data/doc/html/classes/TTK/Strategies.html +0 -356
  147. data/doc/html/classes/TTK/Strategies/Abort.html +0 -161
  148. data/doc/html/classes/TTK/Strategies/Authors.html +0 -170
  149. data/doc/html/classes/TTK/Strategies/Ball.html +0 -200
  150. data/doc/html/classes/TTK/Strategies/Block.html +0 -230
  151. data/doc/html/classes/TTK/Strategies/Bootstrap.html +0 -238
  152. data/doc/html/classes/TTK/Strategies/Checkout.html +0 -201
  153. data/doc/html/classes/TTK/Strategies/Clean.html +0 -160
  154. data/doc/html/classes/TTK/Strategies/Cmd.html +0 -218
  155. data/doc/html/classes/TTK/Strategies/CmdBase.html +0 -312
  156. data/doc/html/classes/TTK/Strategies/Collection.html +0 -282
  157. data/doc/html/classes/TTK/Strategies/Compile.html +0 -199
  158. data/doc/html/classes/TTK/Strategies/Composite.html +0 -541
  159. data/doc/html/classes/TTK/Strategies/Composite/Ordered.html +0 -183
  160. data/doc/html/classes/TTK/Strategies/Configure.html +0 -270
  161. data/doc/html/classes/TTK/Strategies/DistDelegate.html +0 -192
  162. data/doc/html/classes/TTK/Strategies/DistDuplicate.html +0 -221
  163. data/doc/html/classes/TTK/Strategies/DistStrategy.html +0 -224
  164. data/doc/html/classes/TTK/Strategies/Distribute.html +0 -163
  165. data/doc/html/classes/TTK/Strategies/Error.html +0 -161
  166. data/doc/html/classes/TTK/Strategies/Extract.html +0 -179
  167. data/doc/html/classes/TTK/Strategies/Fail.html +0 -161
  168. data/doc/html/classes/TTK/Strategies/Fetch.html +0 -400
  169. data/doc/html/classes/TTK/Strategies/Fetcher.html +0 -276
  170. data/doc/html/classes/TTK/Strategies/Glob.html +0 -201
  171. data/doc/html/classes/TTK/Strategies/IOBased.html +0 -400
  172. data/doc/html/classes/TTK/Strategies/Import.html +0 -215
  173. data/doc/html/classes/TTK/Strategies/JUnit.html +0 -623
  174. data/doc/html/classes/TTK/Strategies/KillAll.html +0 -249
  175. data/doc/html/classes/TTK/Strategies/Make.html +0 -235
  176. data/doc/html/classes/TTK/Strategies/Make/All.html +0 -120
  177. data/doc/html/classes/TTK/Strategies/Make/Check.html +0 -120
  178. data/doc/html/classes/TTK/Strategies/Make/Default.html +0 -155
  179. data/doc/html/classes/TTK/Strategies/Make/DistCheck.html +0 -120
  180. data/doc/html/classes/TTK/Strategies/Make/Install.html +0 -120
  181. data/doc/html/classes/TTK/Strategies/Make/Target.html +0 -179
  182. data/doc/html/classes/TTK/Strategies/Package.html +0 -271
  183. data/doc/html/classes/TTK/Strategies/PackageCollection.html +0 -168
  184. data/doc/html/classes/TTK/Strategies/Pass.html +0 -161
  185. data/doc/html/classes/TTK/Strategies/Pool.html +0 -306
  186. data/doc/html/classes/TTK/Strategies/Pool/PoolComponent.html +0 -139
  187. data/doc/html/classes/TTK/Strategies/ProbabilityThreshold.html +0 -187
  188. data/doc/html/classes/TTK/Strategies/Proxy.html +0 -211
  189. data/doc/html/classes/TTK/Strategies/RUnit.html +0 -355
  190. data/doc/html/classes/TTK/Strategies/RemoteCmd.html +0 -213
  191. data/doc/html/classes/TTK/Strategies/SignalCmd.html +0 -269
  192. data/doc/html/classes/TTK/Strategies/Sleep.html +0 -193
  193. data/doc/html/classes/TTK/Strategies/SqlQuery.html +0 -248
  194. data/doc/html/classes/TTK/Strategies/Strategy.html +0 -2847
  195. data/doc/html/classes/TTK/Strategies/Strategy/AssertEval.html +0 -233
  196. data/doc/html/classes/TTK/Strategies/Strategy/AttributedClass.html +0 -107
  197. data/doc/html/classes/TTK/Strategies/Strategy/AttributedClass/Attribute.html +0 -246
  198. data/doc/html/classes/TTK/Strategies/Strategy/Failure.html +0 -121
  199. data/doc/html/classes/TTK/Strategies/Stub.html +0 -179
  200. data/doc/html/classes/TTK/Strategies/SubCmd.html +0 -241
  201. data/doc/html/classes/TTK/Strategies/Suite.html +0 -182
  202. data/doc/html/classes/TTK/Strategies/Test.html +0 -310
  203. data/doc/html/classes/TTK/Strategies/Tester.html +0 -218
  204. data/doc/html/classes/TTK/Streams.html +0 -116
  205. data/doc/html/classes/TTK/Streams/Diff.html +0 -148
  206. data/doc/html/classes/TTK/Streams/Stream.html +0 -295
  207. data/doc/html/classes/TTK/SymTbl.html +0 -266
  208. data/doc/html/classes/TTK/TTKException.html +0 -118
  209. data/doc/html/classes/TTK/TTKModule.html +0 -145
  210. data/doc/html/classes/TTK/Testers.html +0 -156
  211. data/doc/html/classes/TTK/Testers/Master.html +0 -304
  212. data/doc/html/classes/TTK/Testers/Slave.html +0 -120
  213. data/doc/html/classes/TTK/Testers/Tester.html +0 -547
  214. data/doc/html/classes/TTK/Testers/Tester/Config.html +0 -310
  215. data/doc/html/classes/TTK/Testers/Tester/Notification.html +0 -123
  216. data/doc/html/classes/TTK/Testers/Tester/Notifier.html +0 -118
  217. data/doc/html/classes/TTK/Testers/Tester/QueryNode.html +0 -341
  218. data/doc/html/classes/TTK/Testers/Tester/RemoteStatus.html +0 -165
  219. data/doc/html/classes/TTK/Testers/Tester/RunningTask.html +0 -262
  220. data/doc/html/classes/TTK/Testers/Tester/Score.html +0 -198
  221. data/doc/html/classes/TTK/TimeoutAbortStatus.html +0 -161
  222. data/doc/html/classes/TTK/Tools.html +0 -111
  223. data/doc/html/classes/TTK/Tools/HostDispatcher.html +0 -246
  224. data/doc/html/classes/TTK/Weights.html +0 -160
  225. data/doc/html/classes/TTK/Weights/WExpr.html +0 -326
  226. data/doc/html/classes/TTK/Weights/WFloat.html +0 -149
  227. data/doc/html/classes/TTK/Weights/WMin.html +0 -148
  228. data/doc/html/classes/TTK/Weights/Weight.html +0 -624
  229. data/doc/html/created.rid +0 -1
  230. data/doc/html/files/AUTHORS.html +0 -198
  231. data/doc/html/files/NEWS.html +0 -236
  232. data/doc/html/files/README.html +0 -435
  233. data/doc/html/files/TODO.html +0 -128
  234. data/doc/html/files/lib/ttk/Tools/HostDispatcher_rb.html +0 -126
  235. data/doc/html/files/lib/ttk/Tools/SafeEval_rb.html +0 -119
  236. data/doc/html/files/lib/ttk/Tools/cut_output_rb.html +0 -126
  237. data/doc/html/files/lib/ttk/Tools/io/delegator_rb.html +0 -127
  238. data/doc/html/files/lib/ttk/Tools/io/dispatch_rb.html +0 -127
  239. data/doc/html/files/lib/ttk/Tools/io/ext_rb.html +0 -126
  240. data/doc/html/files/lib/ttk/Tools/io/filters_rb.html +0 -127
  241. data/doc/html/files/lib/ttk/daemons/Daemon_rb.html +0 -126
  242. data/doc/html/files/lib/ttk/daemons/Master_rb.html +0 -119
  243. data/doc/html/files/lib/ttk/daemons/Slave_rb.html +0 -119
  244. data/doc/html/files/lib/ttk/daemons/daemon/logger_rb.html +0 -126
  245. data/doc/html/files/lib/ttk/dumpers/Dumper_rb.html +0 -119
  246. data/doc/html/files/lib/ttk/dumpers/Notif_rb.html +0 -119
  247. data/doc/html/files/lib/ttk/dumpers/Xml_rb.html +0 -126
  248. data/doc/html/files/lib/ttk/dumpers/Yaml_rb.html +0 -119
  249. data/doc/html/files/lib/ttk/fetchers/Client_rb.html +0 -126
  250. data/doc/html/files/lib/ttk/fetchers/Server_rb.html +0 -126
  251. data/doc/html/files/lib/ttk/fetchers/client/receiver_rb.html +0 -127
  252. data/doc/html/files/lib/ttk/fetchers/server/sender_rb.html +0 -127
  253. data/doc/html/files/lib/ttk/filters/BasicLogger_rb.html +0 -126
  254. data/doc/html/files/lib/ttk/filters/Filter_rb.html +0 -119
  255. data/doc/html/files/lib/ttk/filters/Saver_rb.html +0 -119
  256. data/doc/html/files/lib/ttk/loaders/Loader_rb.html +0 -119
  257. data/doc/html/files/lib/ttk/loaders/OYaml_rb.html +0 -126
  258. data/doc/html/files/lib/ttk/loaders/YamlOld_rb.html +0 -126
  259. data/doc/html/files/lib/ttk/loaders/Yaml_rb.html +0 -126
  260. data/doc/html/files/lib/ttk/logger/path_rb.html +0 -119
  261. data/doc/html/files/lib/ttk/logger/section_node_rb.html +0 -119
  262. data/doc/html/files/lib/ttk/logger/severity_rb.html +0 -119
  263. data/doc/html/files/lib/ttk/logger/to_ttk_log_rb.html +0 -119
  264. data/doc/html/files/lib/ttk/logger/verbosity_rb.html +0 -119
  265. data/doc/html/files/lib/ttk/logger_factory_rb.html +0 -119
  266. data/doc/html/files/lib/ttk/logger_rb.html +0 -131
  267. data/doc/html/files/lib/ttk/monitors/Client_rb.html +0 -119
  268. data/doc/html/files/lib/ttk/monitors/Monitor_rb.html +0 -127
  269. data/doc/html/files/lib/ttk/monitors/Server_rb.html +0 -126
  270. data/doc/html/files/lib/ttk/services/DRbService/sub_testable_rb.html +0 -119
  271. data/doc/html/files/lib/ttk/services/DRbService_rb.html +0 -126
  272. data/doc/html/files/lib/ttk/services/FetcherClient_rb.html +0 -119
  273. data/doc/html/files/lib/ttk/services/FetcherServer_rb.html +0 -119
  274. data/doc/html/files/lib/ttk/services/MonitorClient_rb.html +0 -119
  275. data/doc/html/files/lib/ttk/services/MonitorServer_rb.html +0 -119
  276. data/doc/html/files/lib/ttk/services/TesterClient_rb.html +0 -119
  277. data/doc/html/files/lib/ttk/services/TesterMaster_rb.html +0 -119
  278. data/doc/html/files/lib/ttk/services/TesterSlave_rb.html +0 -119
  279. data/doc/html/files/lib/ttk/status_rb.html +0 -119
  280. data/doc/html/files/lib/ttk/strategies/Abort_rb.html +0 -119
  281. data/doc/html/files/lib/ttk/strategies/Authors_rb.html +0 -119
  282. data/doc/html/files/lib/ttk/strategies/Ball_rb.html +0 -119
  283. data/doc/html/files/lib/ttk/strategies/Block_rb.html +0 -119
  284. data/doc/html/files/lib/ttk/strategies/Bootstrap_rb.html +0 -119
  285. data/doc/html/files/lib/ttk/strategies/Checkout_rb.html +0 -127
  286. data/doc/html/files/lib/ttk/strategies/Clean_rb.html +0 -119
  287. data/doc/html/files/lib/ttk/strategies/CmdBase_rb.html +0 -119
  288. data/doc/html/files/lib/ttk/strategies/Cmd_rb.html +0 -119
  289. data/doc/html/files/lib/ttk/strategies/Collection_rb.html +0 -119
  290. data/doc/html/files/lib/ttk/strategies/Compile_rb.html +0 -119
  291. data/doc/html/files/lib/ttk/strategies/Composite_rb.html +0 -119
  292. data/doc/html/files/lib/ttk/strategies/Configure_rb.html +0 -119
  293. data/doc/html/files/lib/ttk/strategies/DistDelegate_rb.html +0 -119
  294. data/doc/html/files/lib/ttk/strategies/DistDuplicate_rb.html +0 -119
  295. data/doc/html/files/lib/ttk/strategies/DistStrategy_rb.html +0 -119
  296. data/doc/html/files/lib/ttk/strategies/Distribute_rb.html +0 -119
  297. data/doc/html/files/lib/ttk/strategies/Error_rb.html +0 -119
  298. data/doc/html/files/lib/ttk/strategies/Extract_rb.html +0 -126
  299. data/doc/html/files/lib/ttk/strategies/Fail_rb.html +0 -119
  300. data/doc/html/files/lib/ttk/strategies/Fetch_rb.html +0 -127
  301. data/doc/html/files/lib/ttk/strategies/Fetcher_rb.html +0 -126
  302. data/doc/html/files/lib/ttk/strategies/Glob_rb.html +0 -119
  303. data/doc/html/files/lib/ttk/strategies/IOBased_rb.html +0 -119
  304. data/doc/html/files/lib/ttk/strategies/Import_rb.html +0 -119
  305. data/doc/html/files/lib/ttk/strategies/JUnit_rb.html +0 -119
  306. data/doc/html/files/lib/ttk/strategies/KillAll_rb.html +0 -119
  307. data/doc/html/files/lib/ttk/strategies/Make_rb.html +0 -119
  308. data/doc/html/files/lib/ttk/strategies/PackageCollection_rb.html +0 -126
  309. data/doc/html/files/lib/ttk/strategies/Package_rb.html +0 -119
  310. data/doc/html/files/lib/ttk/strategies/Pass_rb.html +0 -119
  311. data/doc/html/files/lib/ttk/strategies/Pool_rb.html +0 -119
  312. data/doc/html/files/lib/ttk/strategies/ProbabilityThreshold_rb.html +0 -119
  313. data/doc/html/files/lib/ttk/strategies/Proxy_rb.html +0 -119
  314. data/doc/html/files/lib/ttk/strategies/RUnit_rb.html +0 -127
  315. data/doc/html/files/lib/ttk/strategies/RemoteCmd_rb.html +0 -126
  316. data/doc/html/files/lib/ttk/strategies/SignalCmd_rb.html +0 -119
  317. data/doc/html/files/lib/ttk/strategies/Sleep_rb.html +0 -119
  318. data/doc/html/files/lib/ttk/strategies/SqlQuery_rb.html +0 -126
  319. data/doc/html/files/lib/ttk/strategies/Strategy/assert_eval_rb.html +0 -127
  320. data/doc/html/files/lib/ttk/strategies/Strategy_rb.html +0 -131
  321. data/doc/html/files/lib/ttk/strategies/Streams/Diff_rb.html +0 -119
  322. data/doc/html/files/lib/ttk/strategies/Streams/Stream_rb.html +0 -126
  323. data/doc/html/files/lib/ttk/strategies/Stub_rb.html +0 -119
  324. data/doc/html/files/lib/ttk/strategies/SubCmd_rb.html +0 -119
  325. data/doc/html/files/lib/ttk/strategies/Suite_rb.html +0 -119
  326. data/doc/html/files/lib/ttk/strategies/Test_rb.html +0 -127
  327. data/doc/html/files/lib/ttk/strategies/Tester_rb.html +0 -126
  328. data/doc/html/files/lib/ttk/symtbl_rb.html +0 -126
  329. data/doc/html/files/lib/ttk/testers/Master_rb.html +0 -119
  330. data/doc/html/files/lib/ttk/testers/Slave_rb.html +0 -119
  331. data/doc/html/files/lib/ttk/testers/Tester_rb.html +0 -131
  332. data/doc/html/files/lib/ttk/testers/tester/config_rb.html +0 -126
  333. data/doc/html/files/lib/ttk/testers/tester/notifier_rb.html +0 -119
  334. data/doc/html/files/lib/ttk/testers/tester/query_node_rb.html +0 -126
  335. data/doc/html/files/lib/ttk/testers/tester/remote_status_rb.html +0 -119
  336. data/doc/html/files/lib/ttk/testers/tester/running_task_rb.html +0 -119
  337. data/doc/html/files/lib/ttk/testers/tester/score_rb.html +0 -119
  338. data/doc/html/files/lib/ttk/weights/WExpr_rb.html +0 -119
  339. data/doc/html/files/lib/ttk/weights/WFloat_rb.html +0 -119
  340. data/doc/html/files/lib/ttk/weights/WMin_rb.html +0 -119
  341. data/doc/html/files/lib/ttk/weights/Weight_rb.html +0 -126
  342. data/doc/html/files/lib/ttk_rb.html +0 -146
  343. data/doc/html/files/lib/ttkd_rb.html +0 -131
  344. data/doc/html/files/template/README.html +0 -160
  345. data/doc/html/files/test/examples/README.html +0 -190
  346. data/doc/html/fr_class_index.html +0 -186
  347. data/doc/html/fr_file_index.html +0 -147
  348. data/doc/html/fr_method_index.html +0 -580
  349. data/doc/html/index.html +0 -24
  350. data/doc/html/rdoc-style.css +0 -208
  351. data/lib/ttk/Tools/HostDispatcher.rb +0 -44
  352. data/lib/ttk/Tools/SafeEval.rb +0 -64
  353. data/lib/ttk/Tools/cut_output.rb +0 -35
  354. data/lib/ttk/Tools/io/delegator.rb +0 -88
  355. data/lib/ttk/Tools/io/dispatch.rb +0 -31
  356. data/lib/ttk/Tools/io/ext.rb +0 -70
  357. data/lib/ttk/Tools/io/filters.rb +0 -71
  358. data/lib/ttk/filters/BasicLogger.rb +0 -30
  359. data/lib/ttk/loaders/OYaml.rb +0 -60
  360. data/lib/ttk/loaders/YamlOld.rb +0 -65
  361. data/ruby_ex/abstract.rb +0 -246
  362. data/ruby_ex/abstract_node.rb +0 -85
  363. data/ruby_ex/array_each_pair.rb +0 -18
  364. data/ruby_ex/ask.rb +0 -101
  365. data/ruby_ex/attributed_class.rb +0 -304
  366. data/ruby_ex/cache.rb +0 -373
  367. data/ruby_ex/checkout.rb +0 -12
  368. data/ruby_ex/config_file.rb +0 -96
  369. data/ruby_ex/const_regexp.rb +0 -59
  370. data/ruby_ex/daemon.rb +0 -134
  371. data/ruby_ex/diff.rb +0 -667
  372. data/ruby_ex/dlogger.rb +0 -62
  373. data/ruby_ex/drb/dispatcher.rb +0 -252
  374. data/ruby_ex/drb/dispatcher_server_test.rb +0 -29
  375. data/ruby_ex/drb/drb_observable.rb +0 -97
  376. data/ruby_ex/drb/drb_observable_pool.rb +0 -27
  377. data/ruby_ex/drb/drb_service.rb +0 -43
  378. data/ruby_ex/drb/drb_undumped_attributes.rb +0 -55
  379. data/ruby_ex/drb/drb_undumped_indexed_object.rb +0 -54
  380. data/ruby_ex/drb/insecure_protected_methods.rb +0 -103
  381. data/ruby_ex/drb/session_client_test.rb +0 -40
  382. data/ruby_ex/drb/session_manager.rb +0 -246
  383. data/ruby_ex/drb/session_server.rb +0 -53
  384. data/ruby_ex/dtime.rb +0 -143
  385. data/ruby_ex/dumpable_proc.rb +0 -63
  386. data/ruby_ex/exception.rb +0 -32
  387. data/ruby_ex/filetype.rb +0 -229
  388. data/ruby_ex/fileutils_ex.rb +0 -44
  389. data/ruby_ex/fold.rb +0 -58
  390. data/ruby_ex/generate_id.rb +0 -31
  391. data/ruby_ex/inactive_timeout.rb +0 -137
  392. data/ruby_ex/indexed_node.rb +0 -66
  393. data/ruby_ex/io_marshal.rb +0 -100
  394. data/ruby_ex/ioo.rb +0 -194
  395. data/ruby_ex/labeled_node.rb +0 -63
  396. data/ruby_ex/logger_observer.rb +0 -23
  397. data/ruby_ex/md5sum.rb +0 -66
  398. data/ruby_ex/mktemp.rb +0 -208
  399. data/ruby_ex/module/attr_once.rb +0 -36
  400. data/ruby_ex/module/autoload_tree.rb +0 -68
  401. data/ruby_ex/module/hierarchy.rb +0 -335
  402. data/ruby_ex/module/instance_method_visibility.rb +0 -73
  403. data/ruby_ex/module_ex.rb +0 -11
  404. data/ruby_ex/node.rb +0 -80
  405. data/ruby_ex/object_monitor.rb +0 -145
  406. data/ruby_ex/object_monitor_activity.rb +0 -33
  407. data/ruby_ex/observable.rb +0 -140
  408. data/ruby_ex/observable_pool.rb +0 -293
  409. data/ruby_ex/orderedhash.rb +0 -252
  410. data/ruby_ex/pathname_ex.rb +0 -113
  411. data/ruby_ex/pp_hierarchy.rb +0 -29
  412. data/ruby_ex/pseudo_cache.rb +0 -190
  413. data/ruby_ex/queue.rb +0 -56
  414. data/ruby_ex/safe_eval.rb +0 -348
  415. data/ruby_ex/service_manager.rb +0 -121
  416. data/ruby_ex/session/administrable.rb +0 -120
  417. data/ruby_ex/session/client.rb +0 -153
  418. data/ruby_ex/session/const.rb +0 -18
  419. data/ruby_ex/session/dispatcher.rb +0 -184
  420. data/ruby_ex/session/error.rb +0 -21
  421. data/ruby_ex/session/fetchable.rb +0 -57
  422. data/ruby_ex/session/fetcher.rb +0 -62
  423. data/ruby_ex/session/hookable.rb +0 -26
  424. data/ruby_ex/session/profile.rb +0 -110
  425. data/ruby_ex/session/server.rb +0 -582
  426. data/ruby_ex/session/test/administrable_test.rb +0 -337
  427. data/ruby_ex/session/test/basic_test.rb +0 -523
  428. data/ruby_ex/session/test/dispatcher_test.rb +0 -409
  429. data/ruby_ex/session/test/fetchable_test.rb +0 -119
  430. data/ruby_ex/session/test/sub_server_test.rb +0 -188
  431. data/ruby_ex/spring.rb +0 -136
  432. data/ruby_ex/spring_set.rb +0 -137
  433. data/ruby_ex/symtbl.rb +0 -106
  434. data/ruby_ex/synflow.rb +0 -474
  435. data/ruby_ex/test/unit/ui/yaml/testrunner.rb +0 -164
  436. data/ruby_ex/thread_mutex.rb +0 -10
  437. data/ruby_ex/timeout_ex.rb +0 -81
  438. data/ruby_ex/top_down.rb +0 -73
  439. data/ruby_ex/trace.rb +0 -26
  440. data/ruby_ex/uri/druby.rb +0 -81
  441. data/ruby_ex/uri/file.rb +0 -39
  442. data/ruby_ex/uri/ftp_ex.rb +0 -37
  443. data/ruby_ex/uri/http_ex.rb +0 -43
  444. data/ruby_ex/uri/svn.rb +0 -101
  445. data/ruby_ex/uri_ex.rb +0 -35
  446. data/ruby_ex/version.rb +0 -66
  447. data/ruby_ex/yaml/basenode_ext.rb +0 -63
  448. data/ruby_ex/yaml/transform.rb +0 -447
  449. data/ruby_ex/yaml/yregexpath.rb +0 -76
  450. data/test/runit/loaders/OYaml_test.rb +0 -35
  451. data/test/ttk-check +0 -26
  452. data/test/ttk-minimal/unit_test.yml +0 -13
@@ -1,59 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: const_regexp.rb 83 2004-12-16 13:06:42Z polrop $
7
-
8
-
9
- module ConstRegexp
10
-
11
- RB_INST_VAR = /^@[A-Za-z_][A-Za-z0-9_]*$/
12
- RB_CLASS_VAR = /^@@[A-Za-z_][A-Za-z0-9_]*$/ #FIXME: concat with RB_INST_VAR
13
- RB_LOCAL_VAR = /^[a-z_][A-Za-z0-9_]*$/
14
- RB_METHOD = /^[a-z_][A-Za-z0-9_]*[=?!]?$/
15
- RB_REGEXP = /^\/([^\\]|\\.)*\/$/
16
- RB_CONST = /^[A-Z][a-zA-Z0-9_]*$/
17
-
18
- CRYPTED_STRING = /^[A-Za-z0-9.\/]{13}$/
19
-
20
- DRB_URI = /^([^:]+):\/\/([^:]+):(\d+)$/
21
-
22
-
23
-
24
- end # module ConstRegexp
25
-
26
-
27
- #
28
- # Unit test suite
29
- #
30
- if defined? TEST_MODE or $0 == __FILE__
31
-
32
-
33
- require 'test/unit/ui/yaml/testrunner'
34
-
35
-
36
- class ConstRegexpTest < Test::Unit::TestCase
37
-
38
- include ConstRegexp
39
-
40
- #
41
- # Tests
42
- #
43
- def test_rb_regexp
44
- assert_match(RB_REGEXP, '//')
45
- assert_no_match(RB_REGEXP, '')
46
- assert_match(RB_REGEXP, '/\//')
47
- assert_match(RB_REGEXP, '/\/\//')
48
- assert_match(RB_REGEXP, '/reg\/e/')
49
- assert_no_match(RB_REGEXP, '/\\/')
50
- assert_match(RB_REGEXP, '/\\\\/')
51
- assert_match(RB_REGEXP, '/\e/')
52
- assert_no_match(RB_REGEXP, '/\/')
53
- end
54
-
55
- end # class ConstRegexpTest
56
-
57
-
58
- end
59
-
@@ -1,134 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: daemon.rb 144 2005-01-30 14:12:16Z polrop $
7
-
8
-
9
- require 'pathname'
10
- require 'singleton'
11
-
12
- require 'observable'
13
- require 'observable_pool'
14
- require 'service_manager'
15
-
16
-
17
- class Daemon
18
- include Singleton
19
- include ServiceManager
20
- include Observable
21
- include ObservablePool
22
-
23
- module Notification
24
-
25
- START = :daemon_notification_start
26
- STOP = :daemon_notification_stop
27
- WORKDIR = :daemon_notification_workdir
28
- CONFIG = :daemon_notification_config
29
- CLEAN_WORKDIR = :daemon_notification_clean_workdir
30
- DETACH = :daemon_notification_detach
31
- SIGNAL_TRAPS = :daemon_notification_signal_traps
32
- RELOAD_CONFIG = :daemon_notification_reload_config
33
-
34
- end # module Notification
35
-
36
- def initialize
37
- @config = nil
38
- @workdir = Pathname.new('')
39
- @detached = false
40
- add_observable(self)
41
- @logger = nil
42
- end
43
-
44
- def config=(config)
45
- unless config.nil? or config.respond_to?(:__load__)
46
- raise(NoMethodError, 'configuration class need to respond to `load\'')
47
- end
48
- @config = config
49
- changed
50
- notify_observers(Notification::CONFIG, @config)
51
- @config
52
- end
53
-
54
- attr_reader :config
55
-
56
- def workdir=(workdir)
57
- unless workdir.to_s.empty?
58
- unless File.directory?(workdir)
59
- raise(ArgumentError, "`#{workdir}' - not a directory")
60
- end
61
- Dir.chdir(workdir)
62
- end
63
- @workdir = Pathname.new(workdir)
64
- changed
65
- notify_observers(Notification::WORKDIR, @workdir)
66
- @workdir
67
- end
68
-
69
- attr_reader :workdir
70
-
71
- def clean_workdir
72
- @workdir.each_entry do |p|
73
- next if p.to_s =~ /^\./
74
- (@workdir + p).rmtree
75
- end
76
- changed
77
- notify_observers(Notification::CLEAN_WORKDIR)
78
- nil
79
- end
80
-
81
- def detach
82
- return if @detached
83
- @detached = true
84
- if pid = fork # father
85
- exit
86
- else # son
87
- Dir.chdir(@workdir.to_s.empty? ? '/' : @workdir.to_s)
88
- Process.setsid
89
- STDIN.close
90
- STDOUT.close
91
- STDERR.close
92
- end
93
- changed
94
- notify_observers(Notification::DETACH)
95
- nil
96
- end
97
-
98
- def detached?
99
- @detached
100
- end
101
-
102
- def logger=(logger)
103
- delete_global_observer(@logger) unless @logger.nil?
104
- @logger = logger
105
- add_global_observer(@logger)
106
- changed
107
- notify_observers(Notification::START)
108
- end
109
-
110
- attr_reader :logger
111
-
112
- def stop_daemon
113
- stop_services
114
- changed
115
- notify_observers(Notification::STOP)
116
- exit
117
- end
118
-
119
- def reload_config
120
- unless @config.nil?
121
- @config.__load__
122
- changed
123
- notify_observers(Notification::RELOAD_CONFIG)
124
- @config
125
- end
126
- end
127
-
128
- def start_daemon(*args)
129
- end
130
-
131
- end # class Daemon
132
-
133
-
134
- #FIXME: test me somehow
@@ -1,667 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: ertai $
6
- # $Id: diff.rb 186 2005-04-03 00:07:45Z ertai $
7
-
8
-
9
- module Diff
10
-
11
- def diff(other, recursive=true)
12
- gen_diff(other, recursive) {|a, b| a == b}
13
- end
14
-
15
- def gen_diff(other, recursive=true, &comp)
16
- result = {
17
- :similar => {},
18
- :different => {},
19
- :missing => {},
20
- :additional => {}
21
- }
22
- if not other.is_a?(self.class)
23
- result[:different] = {:self => self.class, :other => other.class}
24
- return result
25
- end
26
- self.each_pair do |k, v|
27
- if other.has_key?(k)
28
- if comp[v, other[k]]
29
- result[:similar][k] = v
30
- else
31
- if recursive and v.respond_to?(:gen_diff)
32
- diff_result = v.gen_diff(other[k], recursive, &comp)
33
- else
34
- diff_result = {:self => v, :other => other[k]}
35
- end
36
- result[:different][k] = diff_result unless diff_result.no_diff?
37
- end
38
- else
39
- result[:additional][k] = v
40
- end
41
- end
42
- other.each_pair do |k, v|
43
- if not self.has_key?(k)
44
- result[:missing][k] = v
45
- end
46
- end
47
- result
48
- end
49
-
50
- def no_diff?
51
- self[:different] == {} and self[:missing] == {} and self[:additional] == {}
52
- end
53
-
54
- end # module Diff
55
-
56
-
57
- class Array
58
-
59
- include Diff
60
-
61
- def each_pair
62
- for i in 0...length do
63
- yield(i, self[i])
64
- end
65
- end
66
-
67
- def has_index?(i)
68
- 0 <= i and i < length
69
- end
70
-
71
- alias has_key? has_index?
72
-
73
- end # class Array
74
-
75
-
76
- class Hash
77
-
78
- include Diff
79
-
80
- def no_diff?
81
- self[:different] == {} and self[:missing] == {} and self[:additional] == {}
82
- end
83
-
84
- end # class Hash
85
-
86
-
87
- #
88
- # Unit test suite
89
- #
90
- if defined? TEST_MODE or $0 == __FILE__
91
-
92
-
93
- #FIXME: Tidy me because some of my test are duplicated.
94
-
95
-
96
- require 'test/unit/ui/yaml/testrunner'
97
-
98
-
99
- class DiffTest < Test::Unit::TestCase
100
-
101
- #
102
- # Setup
103
- #
104
- class A < Array ; end
105
- class H < Hash ; end
106
-
107
- #
108
- # Tests
109
- #
110
- def test_empty
111
- h = []
112
- other_h = []
113
- result_h = h.diff(h)
114
- assert_equal(true, result_h.no_diff?)
115
- assert_equal({}, result_h[:similar])
116
- end
117
-
118
- def test_simple_similar
119
- other_h = h = [ 'toto' => 'tata' ]
120
- result_h = {
121
- :additional => {},
122
- :missing => {},
123
- :similar => { 0 => { 'toto' => 'tata' } },
124
- :different => {}
125
- }
126
- assert_equal(result_h, h.diff(other_h))
127
- end
128
-
129
- def test_simple_additional
130
- h = [ 'toto' => 'tata' ]
131
- other_h = []
132
- result_h = {
133
- :additional => { 0 => { 'toto' => 'tata' } },
134
- :missing => {},
135
- :similar => {},
136
- :different => {}
137
- }
138
- assert_equal(result_h, h.diff(other_h))
139
- end
140
-
141
- def test_simple_missing
142
- h = []
143
- other_h = [ 'toto' => 'tata' ]
144
- result_h = {
145
- :additional => {},
146
- :missing => { 0 => { 'toto' => 'tata' } },
147
- :similar => {},
148
- :different => {}
149
- }
150
- assert_equal(result_h, h.diff(other_h))
151
- end
152
-
153
- def test_simple_different
154
- h = [ 'tutu' ]
155
- other_h = [ 'tata' ]
156
- result_h = {
157
- :additional => {},
158
- :missing => {},
159
- :similar => {},
160
- :different => {0 => {:self => 'tutu', :other => 'tata'}},
161
- }
162
- assert_equal(result_h, h.diff(other_h))
163
- end
164
-
165
- def test_several_similar
166
- other_h = h = [ 'toto', 'tata']
167
- result_h = {
168
- :additional => {},
169
- :missing => {},
170
- :similar => {0 => 'toto', 1 => 'tata'},
171
- :different => {}
172
- }
173
- assert_equal(result_h, h.diff(other_h))
174
- end
175
-
176
- def test_several_additional
177
- h = [ 'toto', 'tata' ]
178
- other_h = []
179
- result_h = {
180
- :additional => {0 => 'toto', 1 => 'tata'},
181
- :missing => {},
182
- :similar => {},
183
- :different => {}
184
- }
185
- assert_equal(result_h, h.diff(other_h))
186
- end
187
-
188
- def test_several_missing
189
- h = []
190
- other_h = [ 'toto', 'tata' ]
191
- result_h = {
192
- :additional => {},
193
- :missing => {0 => 'toto', 1 => 'tata'},
194
- :similar => {},
195
- :different => {}
196
- }
197
- assert_equal(result_h, h.diff(other_h))
198
- end
199
-
200
- def test_several_different
201
- h = [ 'foo', 'tutu' ]
202
- other_h = [ 'bar', 'tata' ]
203
- result_h = {
204
- :additional => {},
205
- :missing => {},
206
- :similar => {},
207
- :different => {
208
- 0 => {:self => 'foo', :other => 'bar'},
209
- 1 => {:self => 'tutu', :other => 'tata'},
210
- }
211
- }
212
- assert_equal(result_h, h.diff(other_h))
213
- end
214
-
215
- def test_simple_missing_missing
216
- h = []
217
- other_h = []
218
- h[0] = 'toto'
219
- other_h[1] = 'foo'
220
- result_h = {
221
- :additional => {},
222
- :missing => {1 => 'foo'},
223
- :similar => {},
224
- :different => {0 => {:self => 'toto', :other => nil}}
225
- }
226
- assert_equal(result_h, h.diff(other_h))
227
- end
228
-
229
- def test_simple_additional_similar
230
- h = [ 'foo', 'toto' ]
231
- other_h = [ 'foo' ]
232
- result_h = {
233
- :additional => {1 => 'toto'},
234
- :missing => {},
235
- :similar => {0 => 'foo'},
236
- :different => {}
237
- }
238
- assert_equal(result_h, h.diff(other_h))
239
- end
240
-
241
- def test_simple_additional_different
242
- h = [ 'toto', 'tata' ]
243
- other_h = [ 'foo' ]
244
- result_h = {
245
- :additional => {1 => 'tata'},
246
- :missing => {},
247
- :similar => {},
248
- :different => {0 => { :self => 'toto', :other => 'foo' } }
249
- }
250
- assert_equal(result_h, h.diff(other_h))
251
- end
252
-
253
- def test_simple_missing_similar
254
- h = [ 'foo' ]
255
- other_h = [ 'foo', 'toto' ]
256
- result_h = {
257
- :additional => {},
258
- :missing => {1 => 'toto'},
259
- :similar => {0 => 'foo'},
260
- :different => {}
261
- }
262
- assert_equal(result_h, h.diff(other_h))
263
- end
264
-
265
- def test_simple_missing_different
266
- h = ['foo']
267
- other_h = ['bor', 'toto']
268
- result_h = {
269
- :additional => {},
270
- :missing => {1 => 'toto'},
271
- :similar => {},
272
- :different => {0 => {:self => 'foo', :other => 'bor'}}
273
- }
274
- assert_equal(result_h, h.diff(other_h))
275
- end
276
-
277
- def test_simple_similar_different
278
- h = ['bar', 'toto']
279
- other_h = ['bor', 'toto']
280
- result_h = {
281
- :additional => {},
282
- :missing => {},
283
- :similar => {1 => 'toto'},
284
- :different => {0 => {:self => 'bar', :other => 'bor'}}
285
- }
286
- assert_equal(result_h, h.diff(other_h))
287
- end
288
-
289
- def test_nested_similar_different
290
- h = [['toto', 'bar'], 'tata']
291
- other_h = [['toto', 'bor'], 'tata']
292
- result_h = {
293
- :additional => {},
294
- :missing => {},
295
- :similar => {1 => 'tata'},
296
- :different => {0 => {
297
- :additional => {},
298
- :missing => {},
299
- :similar => {0 => 'toto'},
300
- :different => {1 => {:self => 'bar', :other => 'bor'}}
301
- }
302
- }
303
- }
304
- assert_equal(result_h, h.diff(other_h))
305
- end
306
-
307
- def test_nested_different_different
308
- h = [['toto', 'bar'], 'tata']
309
- other_h = [['toto', 'bor'], 'tutu']
310
- result_h = {
311
- :additional => {},
312
- :missing => {},
313
- :similar => {},
314
- :different => {
315
- 0 => {
316
- :additional => {},
317
- :missing => {},
318
- :similar => {0 => 'toto'},
319
- :different => {1 => {:self => 'bar', :other => 'bor'}}
320
- },
321
- 1 => {:self => 'tata', :other => 'tutu'}
322
- }
323
- }
324
- assert_equal(result_h, h.diff(other_h))
325
- end
326
-
327
- def test_similar_different_additional
328
- h = ['goo', 'wrong', 'add']
329
- other_h = ['goo', 'bar']
330
- result_h = {
331
- :additional => {2 => 'add'},
332
- :missing => {},
333
- :similar => {0 => 'goo'},
334
- :different => {1 => {:self => 'wrong', :other => 'bar'}}
335
- }
336
- assert_equal(result_h, h.diff(other_h))
337
- end
338
-
339
- def test_diff_class
340
- h = ['bar', 'tata']
341
- other_h = {0 => 'bar', 1 => 'tata'}
342
- result_h = {
343
- :additional => {},
344
- :missing => {},
345
- :similar => {},
346
- :different => {:self => Array, :other => Hash}
347
- }
348
- assert_equal(result_h, h.diff(other_h))
349
- end
350
-
351
- def test_diff_inherited_class
352
- h = A.new(['bar', 'tata'])
353
- other_h = {0 => 'bar', 1 => 'tata'}
354
- result_h = {
355
- :additional => {},
356
- :missing => {},
357
- :similar => {},
358
- :different => {:self => A, :other => Hash}
359
- }
360
- assert_equal(result_h, h.diff(other_h))
361
- end
362
-
363
- def test_array_in_hash
364
- h = {'toto' => 'tata', 'foo' => ['goo', 'wrong', 'add']}
365
- other_h = {'toto' => 'tata', 'foo' => ['goo', 'bar']}
366
- result_h = {
367
- :additional => {},
368
- :missing => {},
369
- :similar => {'toto' => 'tata'},
370
- :different => {'foo' => {
371
- :additional => {2 => 'add'},
372
- :missing => {},
373
- :similar => {0 => 'goo'},
374
- :different => {1 => {:self => 'wrong', :other => 'bar'}}
375
- }
376
- }
377
- }
378
- assert_equal(result_h, h.diff(other_h))
379
- end
380
-
381
- def test_no_recursion
382
- h = [['toto', 'bar'], 'tata']
383
- other_h = [['toto', 'bor'], 'tutu']
384
- result_h = {
385
- :additional => {},
386
- :missing => {},
387
- :similar => {},
388
- :different => {0 => {
389
- :self => ['toto', 'bar'],
390
- :other => ['toto', 'bor']
391
- },
392
- 1 => {
393
- :self => 'tata',
394
- :other => 'tutu'
395
- }
396
- }
397
- }
398
- assert_equal(result_h, h.diff(other_h,false))
399
- end
400
-
401
- def test_other_comp_fun
402
- h = [['false']]
403
- other_h = [[false]]
404
- result_h = {
405
- :additional => {},
406
- :missing => {},
407
- :similar => { 0 => ['false']},
408
- :different => {}
409
- }
410
- assert_equal(result_h, h.gen_diff(other_h, true) {|a, b| a.to_s == b.to_s})
411
- end
412
-
413
- def test_empty2
414
- other_h = h = {}
415
- diff_h = h.diff(h)
416
- assert_equal(true, diff_h.no_diff?)
417
- assert_equal({}, diff_h[:similar])
418
- end
419
-
420
- def test_simple_similar2
421
- other_h = h = { 'toto' => 'tata' }
422
- result_h = {
423
- :additional => {},
424
- :missing => {},
425
- :similar => { 'toto' => 'tata' },
426
- :different => {}
427
- }
428
- assert_equal(result_h, h.diff(other_h))
429
- end
430
-
431
- def test_simple_additional2
432
- h = { 'toto' => 'tata' }
433
- other_h = {}
434
- result_h = {
435
- :additional => { 'toto' => 'tata' },
436
- :missing => {},
437
- :similar => {},
438
- :different => {}
439
- }
440
- assert_equal(result_h, h.diff(other_h))
441
- end
442
-
443
- def test_simple_missing2
444
- h = {}
445
- other_h = { 'toto' => 'tata' }
446
- result_h = {
447
- :additional => {},
448
- :missing => { 'toto' => 'tata' },
449
- :similar => {},
450
- :different => {}
451
- }
452
- assert_equal(result_h, h.diff(other_h))
453
- end
454
-
455
- def test_simple_different2
456
- h = { 'toto' => 'tutu' }
457
- other_h = { 'toto' => 'tata' }
458
- result_h = {
459
- :additional => {},
460
- :missing => {},
461
- :similar => {},
462
- :different => { 'toto' => { :self => 'tutu', :other => 'tata' } }
463
- }
464
- assert_equal(result_h, h.diff(other_h))
465
- end
466
-
467
- def test_several_similar2
468
- other_h = h = { 'toto' => 'tata', 'foo' => 'bar' }
469
- result_h = {
470
- :additional => {},
471
- :missing => {},
472
- :similar => { 'toto' => 'tata', 'foo' => 'bar' },
473
- :different => {}
474
- }
475
- diff = h.diff(other_h)
476
- assert_equal(result_h, diff)
477
- assert_equal(true, diff.no_diff?)
478
- end
479
-
480
- def test_several_additional2
481
- h = { 'toto' => 'tata', 'foo' => 'bar' }
482
- other_h = {}
483
- result_h = {
484
- :additional => { 'toto' => 'tata', 'foo' => 'bar' },
485
- :missing => {},
486
- :similar => {},
487
- :different => {}
488
- }
489
- assert_equal(result_h, h.diff(other_h))
490
- end
491
-
492
- def test_several_missing2
493
- h = {}
494
- other_h = { 'toto' => 'tata', 'foo' => 'bar' }
495
- result_h = {
496
- :additional => {},
497
- :missing => { 'toto' => 'tata', 'foo' => 'bar' },
498
- :similar => {},
499
- :different => {}
500
- }
501
- assert_equal(result_h, h.diff(other_h))
502
- end
503
-
504
- def test_several_different2
505
- h = { 'toto' => 'tutu', 'foo' => 'bor' }
506
- other_h = { 'toto' => 'tata', 'foo' => 'bar' }
507
- result_h = {
508
- :additional => {},
509
- :missing => {},
510
- :similar => {},
511
- :different => {
512
- 'toto' => { :self => 'tutu', :other => 'tata' },
513
- 'foo' => { :self => 'bor', :other => 'bar' },
514
- }
515
- }
516
- assert_equal(result_h, h.diff(other_h))
517
- end
518
-
519
- def test_simple_missing_missing2
520
- h = { 'toto' => 'tata' }
521
- other_h = { 'foo' => 'bar' }
522
- result_h = {
523
- :additional => { 'toto' => 'tata' },
524
- :missing => { 'foo' => 'bar' },
525
- :similar => {},
526
- :different => {}
527
- }
528
- assert_equal(result_h, h.diff(other_h))
529
- end
530
-
531
- def test_simple_additional_similar2
532
- h = { 'toto' => 'tata', 'foo' => 'bar' }
533
- other_h = { 'foo' => 'bar' }
534
- result_h = {
535
- :additional => { 'toto' => 'tata' },
536
- :missing => {},
537
- :similar => { 'foo' => 'bar' },
538
- :different => {}
539
- }
540
- diff = h.diff(other_h)
541
- assert_equal(result_h, diff)
542
- assert_equal(false, diff.no_diff?)
543
- end
544
-
545
- def test_simple_additional_different2
546
- h = { 'toto' => 'tata', 'foo' => 'bar' }
547
- other_h = { 'foo' => 'bor' }
548
- result_h = {
549
- :additional => { 'toto' => 'tata' },
550
- :missing => {},
551
- :similar => {},
552
- :different => { 'foo' => { :self => 'bar', :other => 'bor' } }
553
- }
554
- assert_equal(result_h, h.diff(other_h))
555
- end
556
-
557
- def test_simple_missing_similar2
558
- h = { 'foo' => 'bar' }
559
- other_h = { 'foo' => 'bar', 'toto' => 'tata' }
560
- result_h = {
561
- :additional => {},
562
- :missing => { 'toto' => 'tata' },
563
- :similar => { 'foo' => 'bar' },
564
- :different => {}
565
- }
566
- assert_equal(result_h, h.diff(other_h))
567
- end
568
-
569
- def test_simple_missing_different2
570
- h = { 'foo' => 'bar' }
571
- other_h = { 'foo' => 'bor', 'toto' => 'tata' }
572
- result_h = {
573
- :additional => {},
574
- :missing => { 'toto' => 'tata' },
575
- :similar => {},
576
- :different => { 'foo' => { :self => 'bar', :other => 'bor' } }
577
- }
578
- assert_equal(result_h, h.diff(other_h))
579
- end
580
-
581
- def test_simple_similar_different2
582
- h = { 'foo' => 'bar', 'toto' => 'tata' }
583
- other_h = { 'foo' => 'bor', 'toto' => 'tata' }
584
- result_h = {
585
- :additional => {},
586
- :missing => {},
587
- :similar => { 'toto' => 'tata' },
588
- :different => { 'foo' => { :self => 'bar', :other => 'bor' } }
589
- }
590
- assert_equal(result_h, h.diff(other_h))
591
- end
592
-
593
- def test_nested_similar_different2
594
- h = {'foo' => {'toto' => 'tata', 'foo' => 'bar'}, 'toto' => 'tata'}
595
- other_h = {'foo' => {'toto' => 'tata', 'foo' => 'bor'}, 'toto' => 'tata'}
596
- result_h = {
597
- :additional => {},
598
- :missing => {},
599
- :similar => {'toto' => 'tata'},
600
- :different => {'foo' => {
601
- :additional => {},
602
- :missing => {},
603
- :similar => {'toto' => 'tata'},
604
- :different => {'foo' => {:self => 'bar', :other => 'bor'}}
605
- }
606
- }
607
- }
608
- assert_equal(result_h, h.diff(other_h))
609
- end
610
-
611
- def test_diff_class2
612
- h = {0 => 'bar', 1 => 'tata'}
613
- other_h = ['bar', 'tata']
614
- result_h = {
615
- :additional => {},
616
- :missing => {},
617
- :similar => {},
618
- :different => {:self => Hash, :other => Array}
619
- }
620
- assert_equal(result_h, h.diff(other_h))
621
- end
622
-
623
- def test_diff_inherited_class2
624
- h = H.new(0 => 'bar', 1 => 'tata')
625
- other_h = ['bar', 'tata']
626
- result_h = {
627
- :additional => {},
628
- :missing => {},
629
- :similar => {},
630
- :different => {:self => H, :other => Array}
631
- }
632
- assert_equal(result_h, h.diff(other_h))
633
- end
634
-
635
- def test_no_recursion2
636
- h = {'foo' => {'toto' => 'tata', 'foo' => 'bar'}, 'toto' => 'tata'}
637
- other_h = {'foo' => {'toto' => 'tata', 'foo' => 'bor'}, 'toto' => 'tata'}
638
- result_h = {
639
- :additional => {},
640
- :missing => {},
641
- :similar => {'toto' => 'tata'},
642
- :different => {'foo' => {
643
- :self => {'toto' => 'tata', 'foo' => 'bar'},
644
- :other => {'toto' => 'tata', 'foo' => 'bor'}
645
- }
646
- }
647
- }
648
- assert_equal(result_h, h.diff(other_h, false))
649
- end
650
-
651
- def test_other_comp_fun2
652
- h = {'foo' => {'toto' => 'false', 'foo' => '0'}}
653
- other_h = {'foo' => {'toto' => false, 'foo' => 0}}
654
- result_h = {
655
- :additional => {},
656
- :missing => {},
657
- :similar => {'foo' => {'toto' => 'false', 'foo' => '0'}},
658
- :different => {}
659
- }
660
- assert_equal(result_h, h.gen_diff(other_h, true) {|a, b| a.to_s == b.to_s})
661
- end
662
-
663
- end # class DiffTest
664
-
665
-
666
- end
667
-