win32-api 1.6.0-universal-mingw32 → 1.6.1.beta1-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (355) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +4 -0
  3. data/Gemfile.lock +5 -5
  4. data/Rakefile +45 -19
  5. data/appveyor.yml +12 -0
  6. data/appveyor/build.cmd +3 -0
  7. data/lib/win32/api.rb +8 -0
  8. data/lib/win32/ruby21_32/win32/api.so +0 -0
  9. data/lib/win32/ruby21_64/win32/api.so +0 -0
  10. data/lib/win32/ruby22_32/win32/api.so +0 -0
  11. data/lib/win32/ruby22_64/win32/api.so +0 -0
  12. data/lib/win32/ruby23_32/win32/api.so +0 -0
  13. data/lib/win32/ruby23_64/win32/api.so +0 -0
  14. data/lib/win32/ruby24_32/win32/api.so +0 -0
  15. data/lib/win32/ruby24_64/win32/api.so +0 -0
  16. data/lib/win32/ruby2_32/win32/api.so +0 -0
  17. data/lib/win32/ruby2_64/win32/api.so +0 -0
  18. data/win32-api.gemspec +1 -1
  19. metadata +8 -341
  20. data/vendor/bundle/ruby/2.2.0/bin/devkit +0 -23
  21. data/vendor/bundle/ruby/2.2.0/bin/devkit.bat +0 -6
  22. data/vendor/bundle/ruby/2.2.0/bin/rake +0 -23
  23. data/vendor/bundle/ruby/2.2.0/bin/rake.bat +0 -6
  24. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/CHANGELOG +0 -55
  25. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/LICENSE +0 -339
  26. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/README.md +0 -73
  27. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/Rakefile +0 -8
  28. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/colorize.gemspec +0 -35
  29. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/lib/colorize.rb +0 -12
  30. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/lib/colorize/class_methods.rb +0 -116
  31. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/lib/colorize/instance_methods.rb +0 -135
  32. data/vendor/bundle/ruby/2.2.0/gems/colorize-0.7.7/test/test_colorize.rb +0 -161
  33. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/Gemfile +0 -4
  34. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/LICENSE.txt +0 -22
  35. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/README.md +0 -34
  36. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/Rakefile +0 -1
  37. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/Rspec-example-matchers.txt +0 -184
  38. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/bin/devkit +0 -87
  39. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/devkit.gemspec +0 -27
  40. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit.rb +0 -18
  41. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit/core.rb +0 -53
  42. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit/identity.rb +0 -78
  43. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit/ssh_identity.rb +0 -53
  44. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/lib/devkit/version.rb +0 -3
  45. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/devkit/core_spec.rb +0 -46
  46. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/devkit/identity_spec.rb +0 -1
  47. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/devkit/ssh_identity_spec.rb +0 -1
  48. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/devkit_spec.rb +0 -5
  49. data/vendor/bundle/ruby/2.2.0/gems/devkit-0.1.0/spec/spec_helper.rb +0 -8
  50. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/AUTHORS +0 -3
  51. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/COPYING +0 -339
  52. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/Changelog.md +0 -415
  53. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/Gemfile +0 -9
  54. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/INSTALL +0 -59
  55. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/LICENSE +0 -7
  56. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/README.rdoc +0 -74
  57. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/Rakefile +0 -30
  58. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/TODO +0 -6
  59. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/ansi_colors.rb +0 -38
  60. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/asking_for_arrays.rb +0 -18
  61. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/basic_usage.rb +0 -75
  62. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/color_scheme.rb +0 -32
  63. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/get_character.rb +0 -12
  64. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/limit.rb +0 -12
  65. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/menus.rb +0 -65
  66. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/overwrite.rb +0 -19
  67. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/page_and_wrap.rb +0 -322
  68. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/password.rb +0 -7
  69. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/repeat_entry.rb +0 -21
  70. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/trapping_eof.rb +0 -22
  71. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/examples/using_readline.rb +0 -17
  72. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/highline.gemspec +0 -37
  73. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline.rb +0 -1048
  74. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/color_scheme.rb +0 -134
  75. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/compatibility.rb +0 -16
  76. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/import.rb +0 -41
  77. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/menu.rb +0 -381
  78. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/question.rb +0 -480
  79. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/simulate.rb +0 -48
  80. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/style.rb +0 -192
  81. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/lib/highline/version.rb +0 -4
  82. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/setup.rb +0 -1360
  83. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/site/highline.css +0 -65
  84. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/site/images/logo.png +0 -0
  85. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/site/index.html +0 -58
  86. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/string_methods.rb +0 -32
  87. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_color_scheme.rb +0 -96
  88. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_highline.rb +0 -1402
  89. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_import.rb +0 -52
  90. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_menu.rb +0 -439
  91. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_simulator.rb +0 -23
  92. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_string_highline.rb +0 -38
  93. data/vendor/bundle/ruby/2.2.0/gems/highline-1.7.8/test/tc_style.rb +0 -578
  94. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/BSDL +0 -22
  95. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/COPYING +0 -57
  96. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/Gemfile +0 -9
  97. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/LEGAL +0 -4
  98. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/README.rdoc +0 -19
  99. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/Rakefile +0 -16
  100. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/benchmarks/bm_yhpg.rb +0 -59
  101. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/benchmarks/helper.rb +0 -8
  102. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/lib/power_assert.rb +0 -338
  103. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/lib/power_assert/enable_tracepoint_events.rb +0 -82
  104. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/lib/power_assert/version.rb +0 -3
  105. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/power_assert.gemspec +0 -23
  106. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/test/helper.rb +0 -10
  107. data/vendor/bundle/ruby/2.2.0/gems/power_assert-0.3.0/test/test_power_assert.rb +0 -512
  108. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/CONTRIBUTING.rdoc +0 -38
  109. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/History.rdoc +0 -719
  110. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/MIT-LICENSE +0 -21
  111. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/Manifest.txt +0 -154
  112. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/README.rdoc +0 -157
  113. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/Rakefile +0 -82
  114. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/bin/rake +0 -33
  115. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/command_line_usage.rdoc +0 -158
  116. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/Rakefile1 +0 -38
  117. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/Rakefile2 +0 -35
  118. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/a.c +0 -6
  119. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/b.c +0 -6
  120. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/example/main.c +0 -11
  121. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/glossary.rdoc +0 -42
  122. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/jamis.rb +0 -591
  123. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/proto_rake.rdoc +0 -127
  124. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/rake.1 +0 -141
  125. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/rakefile.rdoc +0 -624
  126. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/rational.rdoc +0 -151
  127. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.4.14.rdoc +0 -23
  128. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.4.15.rdoc +0 -35
  129. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.5.0.rdoc +0 -53
  130. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.5.3.rdoc +0 -78
  131. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.5.4.rdoc +0 -46
  132. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.6.0.rdoc +0 -141
  133. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.7.0.rdoc +0 -119
  134. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.7.1.rdoc +0 -59
  135. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.7.2.rdoc +0 -121
  136. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.7.3.rdoc +0 -47
  137. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.0.rdoc +0 -114
  138. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.2.rdoc +0 -165
  139. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.3.rdoc +0 -112
  140. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.4.rdoc +0 -147
  141. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.5.rdoc +0 -53
  142. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.6.rdoc +0 -37
  143. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.8.7.rdoc +0 -55
  144. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.0.rdoc +0 -112
  145. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.1.rdoc +0 -52
  146. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  147. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.2.rdoc +0 -49
  148. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.3.rdoc +0 -102
  149. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.4.rdoc +0 -60
  150. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.5.rdoc +0 -55
  151. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-0.9.6.rdoc +0 -64
  152. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.0.0.rdoc +0 -178
  153. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.0.1.rdoc +0 -58
  154. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.0.2.rdoc +0 -53
  155. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.0.3.rdoc +0 -191
  156. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/doc/release_notes/rake-10.1.0.rdoc +0 -61
  157. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake.rb +0 -73
  158. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/application.rb +0 -787
  159. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/backtrace.rb +0 -23
  160. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/clean.rb +0 -76
  161. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/cloneable.rb +0 -16
  162. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/contrib/compositepublisher.rb +0 -21
  163. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/contrib/ftptools.rb +0 -137
  164. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/contrib/sshpublisher.rb +0 -60
  165. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/cpu_counter.rb +0 -120
  166. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/default_loader.rb +0 -14
  167. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/dsl_definition.rb +0 -194
  168. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/early_time.rb +0 -21
  169. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/file_creation_task.rb +0 -24
  170. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/file_list.rb +0 -436
  171. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/file_task.rb +0 -46
  172. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/file_utils.rb +0 -123
  173. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/invocation_chain.rb +0 -56
  174. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/invocation_exception_mixin.rb +0 -16
  175. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/late_time.rb +0 -17
  176. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/linked_list.rb +0 -111
  177. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/loaders/makefile.rb +0 -53
  178. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/multi_task.rb +0 -13
  179. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/name_space.rb +0 -38
  180. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/packagetask.rb +0 -199
  181. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/phony.rb +0 -15
  182. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/private_reader.rb +0 -20
  183. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/promise.rb +0 -99
  184. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/pseudo_status.rb +0 -29
  185. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/rake_module.rb +0 -38
  186. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/rake_test_loader.rb +0 -22
  187. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/rule_recursion_overflow_error.rb +0 -20
  188. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/scope.rb +0 -42
  189. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/task.rb +0 -391
  190. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/task_argument_error.rb +0 -7
  191. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/task_arguments.rb +0 -102
  192. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/task_manager.rb +0 -316
  193. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/tasklib.rb +0 -11
  194. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/testtask.rb +0 -204
  195. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/thread_history_display.rb +0 -48
  196. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/thread_pool.rb +0 -163
  197. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/trace_output.rb +0 -22
  198. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/version.rb +0 -7
  199. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/lib/rake/win32.rb +0 -50
  200. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/rakelib/test_times.rake +0 -25
  201. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/file_creation.rb +0 -34
  202. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/helper.rb +0 -134
  203. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/support/rakefile_definitions.rb +0 -476
  204. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/support/ruby_runner.rb +0 -34
  205. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_private_reader.rb +0 -42
  206. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake.rb +0 -40
  207. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_application.rb +0 -659
  208. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_application_options.rb +0 -468
  209. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_backtrace.rb +0 -119
  210. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_clean.rb +0 -61
  211. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_cpu_counter.rb +0 -68
  212. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_definitions.rb +0 -84
  213. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_directory_task.rb +0 -76
  214. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_dsl.rb +0 -40
  215. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_early_time.rb +0 -31
  216. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_creation_task.rb +0 -56
  217. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_list.rb +0 -687
  218. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_list_path_map.rb +0 -15
  219. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_task.rb +0 -197
  220. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_file_utils.rb +0 -318
  221. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_ftp_file.rb +0 -74
  222. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_functional.rb +0 -484
  223. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_invocation_chain.rb +0 -64
  224. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_late_time.rb +0 -18
  225. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_linked_list.rb +0 -84
  226. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_makefile_loader.rb +0 -46
  227. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_multi_task.rb +0 -64
  228. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_name_space.rb +0 -57
  229. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_package_task.rb +0 -79
  230. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_path_map.rb +0 -168
  231. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_path_map_explode.rb +0 -34
  232. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_path_map_partial.rb +0 -18
  233. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_pseudo_status.rb +0 -21
  234. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_rake_test_loader.rb +0 -20
  235. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_reduce_compat.rb +0 -26
  236. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_require.rb +0 -40
  237. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_rules.rb +0 -388
  238. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_scope.rb +0 -44
  239. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task.rb +0 -430
  240. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_argument_parsing.rb +0 -119
  241. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_arguments.rb +0 -134
  242. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_manager.rb +0 -178
  243. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_manager_argument_resolution.rb +0 -19
  244. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_task_with_arguments.rb +0 -172
  245. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_test_task.rb +0 -130
  246. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_thread_pool.rb +0 -145
  247. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_top_level_functions.rb +0 -71
  248. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_rake_win32.rb +0 -72
  249. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_thread_history_display.rb +0 -101
  250. data/vendor/bundle/ruby/2.2.0/gems/rake-11.1.2/test/test_trace_output.rb +0 -52
  251. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/COPYING +0 -64
  252. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/GPL +0 -339
  253. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/LGPL +0 -502
  254. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/PSFL +0 -271
  255. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/README.md +0 -101
  256. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/Rakefile +0 -71
  257. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test-unit.rb +0 -34
  258. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit.rb +0 -505
  259. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/assertion-failed-error.rb +0 -25
  260. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/assertions.rb +0 -2218
  261. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/attribute-matcher.rb +0 -26
  262. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/attribute.rb +0 -158
  263. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/auto-runner-loader.rb +0 -17
  264. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/autorunner.rb +0 -536
  265. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/code-snippet-fetcher.rb +0 -58
  266. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector.rb +0 -73
  267. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/descendant.rb +0 -19
  268. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/dir.rb +0 -108
  269. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/load.rb +0 -202
  270. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/objectspace.rb +0 -34
  271. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/collector/xml.rb +0 -249
  272. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/color-scheme.rb +0 -198
  273. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/color.rb +0 -134
  274. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/data.rb +0 -262
  275. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/diff.rb +0 -746
  276. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/error.rb +0 -158
  277. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/exception-handler.rb +0 -82
  278. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/failure.rb +0 -169
  279. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/fault-location-detector.rb +0 -100
  280. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/fixture.rb +0 -295
  281. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/notification.rb +0 -136
  282. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/omission.rb +0 -195
  283. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/pending.rb +0 -154
  284. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/priority.rb +0 -192
  285. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/runner/console.rb +0 -59
  286. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/runner/emacs.rb +0 -8
  287. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/runner/xml.rb +0 -15
  288. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/test-suite-creator.rb +0 -89
  289. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/testcase.rb +0 -811
  290. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/testresult.rb +0 -132
  291. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/testsuite.rb +0 -175
  292. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/console/outputlevel.rb +0 -15
  293. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/console/testrunner.rb +0 -693
  294. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/emacs/testrunner.rb +0 -49
  295. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/testrunner.rb +0 -53
  296. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/testrunnermediator.rb +0 -114
  297. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/testrunnerutilities.rb +0 -41
  298. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/ui/xml/testrunner.rb +0 -224
  299. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/backtracefilter.rb +0 -59
  300. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/method-owner-finder.rb +0 -28
  301. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/observable.rb +0 -90
  302. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/output.rb +0 -31
  303. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/util/procwrapper.rb +0 -48
  304. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/lib/test/unit/version.rb +0 -5
  305. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/adder.rb +0 -13
  306. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/subtracter.rb +0 -12
  307. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/test_adder.rb +0 -20
  308. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/test_subtracter.rb +0 -20
  309. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/sample/test_user.rb +0 -23
  310. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/collector/test-descendant.rb +0 -178
  311. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/collector/test-load.rb +0 -442
  312. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/collector/test_dir.rb +0 -406
  313. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/collector/test_objectspace.rb +0 -100
  314. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/header-label.csv +0 -3
  315. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/header-label.tsv +0 -3
  316. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/header.csv +0 -3
  317. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/header.tsv +0 -3
  318. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/no-header.csv +0 -2
  319. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/no-header.tsv +0 -2
  320. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/fixtures/plus.csv +0 -3
  321. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/run-test.rb +0 -22
  322. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-assertions.rb +0 -2160
  323. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-attribute-matcher.rb +0 -38
  324. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-attribute.rb +0 -123
  325. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-code-snippet.rb +0 -37
  326. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-color-scheme.rb +0 -82
  327. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-color.rb +0 -47
  328. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-data.rb +0 -303
  329. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-diff.rb +0 -518
  330. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-emacs-runner.rb +0 -60
  331. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-error.rb +0 -26
  332. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-failure.rb +0 -33
  333. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-fault-location-detector.rb +0 -163
  334. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-fixture.rb +0 -713
  335. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-notification.rb +0 -33
  336. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-omission.rb +0 -81
  337. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-pending.rb +0 -70
  338. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-priority.rb +0 -173
  339. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-test-case.rb +0 -1171
  340. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-test-result.rb +0 -113
  341. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-test-suite-creator.rb +0 -97
  342. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/test-test-suite.rb +0 -150
  343. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/testunit-test-util.rb +0 -31
  344. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/ui/test_testrunmediator.rb +0 -20
  345. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test-method-owner-finder.rb +0 -38
  346. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test-output.rb +0 -11
  347. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test_backtracefilter.rb +0 -52
  348. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test_observable.rb +0 -102
  349. data/vendor/bundle/ruby/2.2.0/gems/test-unit-3.1.9/test/util/test_procwrapper.rb +0 -36
  350. data/vendor/bundle/ruby/2.2.0/specifications/colorize-0.7.7.gemspec +0 -38
  351. data/vendor/bundle/ruby/2.2.0/specifications/devkit-0.1.0.gemspec +0 -46
  352. data/vendor/bundle/ruby/2.2.0/specifications/highline-1.7.8.gemspec +0 -37
  353. data/vendor/bundle/ruby/2.2.0/specifications/power_assert-0.3.0.gemspec +0 -41
  354. data/vendor/bundle/ruby/2.2.0/specifications/rake-11.1.2.gemspec +0 -43
  355. data/vendor/bundle/ruby/2.2.0/specifications/test-unit-3.1.9.gemspec +0 -47
@@ -1,65 +0,0 @@
1
- body {
2
- margin: 0;
3
- padding: 0;
4
- text-align: center;
5
- background: #abc;
6
- font: 13px Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
7
- }
8
-
9
- #container {
10
- margin: 0 auto;
11
- margin-top: 10px;
12
- position: relative;
13
- width: 785px;
14
- background: #fff repeat;
15
- padding-top: 20px;
16
- }
17
-
18
- #container #header {
19
- padding-top: 20px;
20
- height: 141px;
21
- width: 785px;
22
- background: url(images/logo.png) center no-repeat;
23
- }
24
-
25
- #container #content {
26
- text-align: left;
27
- margin-left: 230px;
28
- width: 500px;
29
- }
30
-
31
- #container #sidebar {
32
- text-align: left;
33
- position: absolute;
34
- top: 181px;
35
- left: 0;
36
- width: 170px;
37
- margin-right: 25px;
38
- }
39
-
40
- #container #footer {
41
- font: 9px Arial;
42
- padding: 4px;
43
- border-top: 1px solid;
44
- color: #aaa;
45
- }
46
-
47
- ul {
48
- list-style: none;
49
- }
50
-
51
- li {
52
- border-bottom: 1px solid #e8e8e8;
53
- padding-top: 10px;
54
- }
55
-
56
- a {
57
- text-decoration: none;
58
- color: #15528a;
59
- }
60
-
61
- pre {
62
- padding: 5px;
63
- padding-left: 20px;
64
- font: 11px Courier;
65
- }
@@ -1,58 +0,0 @@
1
- <html>
2
- <head>
3
- <title> HighLine </title>
4
- <style type="text/css"> @import url(highline.css); </style>
5
- </head>
6
- <body>
7
- <div id="container">
8
- <div id="header"></div>
9
- <div id="content">
10
- <h2>HighLine is about&#8230;</h2>
11
-
12
-
13
- <h3>Saving time.</h3>
14
-
15
-
16
- <p>Command line interfaces are meant to be easy. So why shouldn&#8217;t building
17
- them be easy, too? HighLine provides a solid toolset to help you get
18
- the job done cleanly so you can focus on the real task at hand,
19
- <em>your task.</em></p>
20
-
21
-
22
- <h3>Clean and intuitive design.</h3>
23
-
24
-
25
- <p>Want to get a taste for how HighLine is used? Take a look at this simple
26
- example, which asks a user for a zip code, automatically does validation,
27
- and returns the result:</p>
28
-
29
-
30
- <pre><code>zip = ask("Zip? ") { |q| q.validate = /\A\d{5}(?:-?\d{4})?\Z/ }</code></pre>
31
-
32
-
33
- <h3>Hassle-free Installation.</h3>
34
-
35
-
36
- <p>Installation is easy via RubyGems. Simply enter the command:</p>
37
-
38
-
39
- <pre><code>sudo gem install highline</code></pre>
40
-
41
-
42
- <p>and you&#8217;ll be on your way! Of course, manual installation is an option,
43
- too.</p>
44
- </div>
45
- <div id="sidebar">
46
- <ul>
47
- <li><a href="http://rubyforge.org/projects/highline">Project Page</a></li>
48
- <li><a href="http://highline.rubyforge.org/doc">Documentation</a></li>
49
- <li><a href="https://github.com/JEG2/highline">Source</a></li>
50
- <li><a href="mailto:james@grayproductions.net">Contact</a></li>
51
- </ul>
52
- </div>
53
- <div id="footer">
54
- Created by James Edward Gray II and Gregory Brown
55
- </div>
56
- </div>
57
- </body>
58
- </html>
@@ -1,32 +0,0 @@
1
- # string_methods.rb
2
- #
3
- # Created by Richard LeBer 2011-06-27
4
- #
5
- # This is Free Software. See LICENSE and COPYING for details.
6
- #
7
- # String class convenience methods
8
-
9
- module StringMethods
10
- def test_color
11
- assert_equal("\e[34mstring\e[0m", @string.color(:blue))
12
- assert_equal("\e[1m\e[47mstring\e[0m", @string.color(:bold,:on_white))
13
- assert_equal("\e[45mstring\e[0m", @string.on(:magenta))
14
- assert_equal("\e[36mstring\e[0m", @string.cyan)
15
- assert_equal("\e[41m\e[5mstring\e[0m\e[0m", @string.blink.on_red)
16
- assert_equal("\e[38;5;137mstring\e[0m", @string.color(:rgb_906030))
17
- assert_equal("\e[38;5;101mstring\e[0m", @string.rgb('606030'))
18
- assert_equal("\e[38;5;107mstring\e[0m", @string.rgb('60','90','30'))
19
- assert_equal("\e[38;5;107mstring\e[0m", @string.rgb(96,144,48))
20
- assert_equal("\e[38;5;173mstring\e[0m", @string.rgb_c06030)
21
- assert_equal("\e[48;5;137mstring\e[0m", @string.color(:on_rgb_906030))
22
- assert_equal("\e[48;5;101mstring\e[0m", @string.on_rgb('606030'))
23
- assert_equal("\e[48;5;107mstring\e[0m", @string.on_rgb('60','90','30'))
24
- assert_equal("\e[48;5;107mstring\e[0m", @string.on_rgb(96,144,48))
25
- assert_equal("\e[48;5;173mstring\e[0m", @string.on_rgb_c06030)
26
- end
27
-
28
- def test_uncolor
29
- colored_string = HighLine::String("\e[38;5;137mstring\e[0m")
30
- assert_equal "string", colored_string.uncolor
31
- end
32
- end
@@ -1,96 +0,0 @@
1
- # tc_color_scheme.rb
2
- #
3
- # Created by Jeremy Hinegardner on 2007-01-24.
4
- # Copyright 2007 Jeremy Hinegardner. All rights reserved.
5
- #
6
- # This is Free Software. See LICENSE and COPYING for details.
7
-
8
- require "test/unit"
9
-
10
- require "highline"
11
- require "stringio"
12
-
13
- class TestColorScheme < Test::Unit::TestCase
14
- def setup
15
- @input = StringIO.new
16
- @output = StringIO.new
17
- @terminal = HighLine.new(@input, @output)
18
-
19
- @old_color_scheme = HighLine.color_scheme
20
- end
21
-
22
- def teardown
23
- HighLine.color_scheme = @old_color_scheme
24
- end
25
-
26
- def test_using_color_scheme
27
- assert_equal(false,HighLine.using_color_scheme?)
28
-
29
- HighLine.color_scheme = HighLine::ColorScheme.new
30
- assert_equal(true,HighLine.using_color_scheme?)
31
- end
32
-
33
- def test_scheme
34
- HighLine.color_scheme = HighLine::SampleColorScheme.new
35
-
36
- @terminal.say("This should be <%= color('warning yellow', :warning) %>.")
37
- assert_equal("This should be \e[1m\e[33mwarning yellow\e[0m.\n",@output.string)
38
- @output.rewind
39
-
40
- @terminal.say("This should be <%= color('warning yellow', 'warning') %>.")
41
- assert_equal("This should be \e[1m\e[33mwarning yellow\e[0m.\n",@output.string)
42
- @output.rewind
43
-
44
- @terminal.say("This should be <%= color('warning yellow', 'WarNing') %>.")
45
- assert_equal("This should be \e[1m\e[33mwarning yellow\e[0m.\n",@output.string)
46
- @output.rewind
47
-
48
- # Check that keys are available, and as expected
49
- assert_equal ["critical", "error", "warning", "notice", "info", "debug", "row_even", "row_odd"].sort,
50
- HighLine.color_scheme.keys.sort
51
-
52
- # Color scheme doesn't care if we use symbols or strings, and is case-insensitive
53
- warning1 = HighLine.color_scheme[:warning]
54
- warning2 = HighLine.color_scheme["warning"]
55
- warning3 = HighLine.color_scheme[:wArning]
56
- warning4 = HighLine.color_scheme["warniNg"]
57
- assert_instance_of HighLine::Style, warning1
58
- assert_instance_of HighLine::Style, warning2
59
- assert_instance_of HighLine::Style, warning3
60
- assert_instance_of HighLine::Style, warning4
61
- assert_equal warning1, warning2
62
- assert_equal warning1, warning3
63
- assert_equal warning1, warning4
64
-
65
- # Nonexistent keys return nil
66
- assert_nil HighLine.color_scheme[:nonexistent]
67
-
68
- # Same as above, for definitions
69
- defn1 = HighLine.color_scheme.definition(:warning)
70
- defn2 = HighLine.color_scheme.definition("warning")
71
- defn3 = HighLine.color_scheme.definition(:wArning)
72
- defn4 = HighLine.color_scheme.definition("warniNg")
73
- assert_instance_of Array, defn1
74
- assert_instance_of Array, defn2
75
- assert_instance_of Array, defn3
76
- assert_instance_of Array, defn4
77
- assert_equal [:bold, :yellow], defn1
78
- assert_equal [:bold, :yellow], defn2
79
- assert_equal [:bold, :yellow], defn3
80
- assert_equal [:bold, :yellow], defn4
81
- assert_nil HighLine.color_scheme.definition(:nonexistent)
82
-
83
- color_scheme_hash = HighLine.color_scheme.to_hash
84
- assert_instance_of Hash, color_scheme_hash
85
- assert_equal ["critical", "error", "warning", "notice", "info", "debug", "row_even", "row_odd"].sort,
86
- color_scheme_hash.keys.sort
87
- assert_instance_of Array, HighLine.color_scheme.definition(:warning)
88
- assert_equal [:bold, :yellow], HighLine.color_scheme.definition(:warning)
89
-
90
- # turn it back off, should raise an exception
91
- HighLine.color_scheme = @old_color_scheme
92
- assert_raises(NameError) {
93
- @terminal.say("This should be <%= color('nothing at all', :error) %>.")
94
- }
95
- end
96
- end
@@ -1,1402 +0,0 @@
1
- # encoding: utf-8
2
- # tc_highline.rb
3
- #
4
- # Created by James Edward Gray II on 2005-04-26.
5
- # Copyright 2005 Gray Productions. All rights reserved.
6
- #
7
- # This is Free Software. See LICENSE and COPYING for details.
8
-
9
- require "test/unit"
10
-
11
- require "highline"
12
- require "stringio"
13
- require "readline"
14
- require "tempfile"
15
-
16
- if HighLine::CHARACTER_MODE == "Win32API"
17
- class HighLine
18
- # Override Windows' character reading so it's not tied to STDIN.
19
- def get_character( input = STDIN )
20
- input.getc
21
- end
22
- end
23
- end
24
-
25
- class TestHighLine < Test::Unit::TestCase
26
- def setup
27
- @input = StringIO.new
28
- @output = StringIO.new
29
- @terminal = HighLine.new(@input, @output)
30
- end
31
-
32
- def test_agree
33
- @input << "y\nyes\nYES\nHell no!\nNo\n"
34
- @input.rewind
35
-
36
- assert_equal(true, @terminal.agree("Yes or no? "))
37
- assert_equal(true, @terminal.agree("Yes or no? "))
38
- assert_equal(true, @terminal.agree("Yes or no? "))
39
- assert_equal(false, @terminal.agree("Yes or no? "))
40
-
41
- @input.truncate(@input.rewind)
42
- @input << "yellow"
43
- @input.rewind
44
-
45
- assert_equal(true, @terminal.agree("Yes or no? ", :getc))
46
- end
47
-
48
- def test_agree_with_block
49
- @input << "\n\n"
50
- @input.rewind
51
-
52
- assert_equal(true, @terminal.agree("Yes or no? ") { |q| q.default = "y" })
53
- assert_equal(false, @terminal.agree("Yes or no? ") { |q| q.default = "n" })
54
- end
55
-
56
- def test_ask
57
- name = "James Edward Gray II"
58
- @input << name << "\n"
59
- @input.rewind
60
-
61
- assert_equal(name, @terminal.ask("What is your name? "))
62
-
63
- assert_raise(EOFError) { @terminal.ask("Any input left? ") }
64
- end
65
-
66
- def test_ask_string
67
- name = "James Edward Gray II"
68
- @input << name << "\n"
69
- @input.rewind
70
-
71
- assert_equal(name, @terminal.ask("What is your name? ", String))
72
-
73
- assert_raise(EOFError) { @terminal.ask("Any input left? ", String) }
74
- end
75
-
76
- def test_indent
77
- text = "Testing...\n"
78
- @terminal.indent_level=1
79
- @terminal.say(text)
80
- assert_equal(' '*3+text, @output.string)
81
-
82
- @output.truncate(@output.rewind)
83
- @terminal.indent_level=3
84
- @terminal.say(text)
85
- assert_equal(' '*9+text, @output.string)
86
-
87
- @output.truncate(@output.rewind)
88
- @terminal.indent_level=0
89
- @terminal.indent_size=5
90
- @terminal.indent(2, text)
91
- assert_equal(' '*10+text, @output.string)
92
-
93
- @output.truncate(@output.rewind)
94
- @terminal.indent_size=4
95
- @terminal.indent {
96
- @terminal.say(text)
97
- }
98
- assert_equal(' '*4+text, @output.string)
99
-
100
- @output.truncate(@output.rewind)
101
- @terminal.indent_size=2
102
- @terminal.indent(3) { |t|
103
- t.say(text)
104
- }
105
- assert_equal(' '*6+text, @output.string)
106
-
107
- @output.truncate(@output.rewind)
108
- @terminal.indent { |t|
109
- t.indent {
110
- t.indent {
111
- t.indent { |tt|
112
- tt.say(text)
113
- }
114
- }
115
- }
116
- }
117
- assert_equal(' '*8+text, @output.string)
118
-
119
- text = "Multi\nLine\nIndentation\n"
120
- indent = ' '*4
121
- @terminal.indent_level=2
122
- @output.truncate(@output.rewind)
123
- @terminal.say(text)
124
- assert_equal("#{indent}Multi\n#{indent}Line\n#{indent}Indentation\n", @output.string)
125
-
126
- @output.truncate(@output.rewind)
127
- @terminal.multi_indent = false
128
- @terminal.say(text)
129
- assert_equal("#{indent}Multi\nLine\nIndentation\n", @output.string)
130
-
131
- @output.truncate(@output.rewind)
132
- @terminal.indent(0, text, true)
133
- assert_equal("#{indent}Multi\n#{indent}Line\n#{indent}Indentation\n", @output.string)
134
- end
135
-
136
- def test_newline
137
- @terminal.newline
138
- @terminal.newline
139
- assert_equal("\n\n", @output.string)
140
- end
141
-
142
- def test_bug_fixes
143
- # auto-complete bug
144
- @input << "ruby\nRuby\n"
145
- @input.rewind
146
-
147
- languages = [:Perl, :Python, :Ruby]
148
- answer = @terminal.ask( "What is your favorite programming language? ",
149
- languages )
150
- assert_equal(languages.last, answer)
151
-
152
- @input.truncate(@input.rewind)
153
- @input << "ruby\n"
154
- @input.rewind
155
-
156
- answer = @terminal.ask( "What is your favorite programming language? ",
157
- languages ) do |q|
158
- q.case = :capitalize
159
- end
160
- assert_equal(languages.last, answer)
161
-
162
- # poor auto-complete error message
163
- @input.truncate(@input.rewind)
164
- @input << "lisp\nruby\n"
165
- @input.rewind
166
- @output.truncate(@output.rewind)
167
-
168
- answer = @terminal.ask( "What is your favorite programming language? ",
169
- languages ) do |q|
170
- q.case = :capitalize
171
- end
172
- assert_equal(languages.last, answer)
173
- assert_equal( "What is your favorite programming language? " +
174
- "You must choose one of [Perl, Python, Ruby].\n" +
175
- "? ", @output.string )
176
- end
177
-
178
- def test_case_changes
179
- @input << "jeg2\n"
180
- @input.rewind
181
-
182
- answer = @terminal.ask("Enter your initials ") do |q|
183
- q.case = :up
184
- end
185
- assert_equal("JEG2", answer)
186
-
187
- @input.truncate(@input.rewind)
188
- @input << "cRaZY\n"
189
- @input.rewind
190
-
191
- answer = @terminal.ask("Enter a search string: ") do |q|
192
- q.case = :down
193
- end
194
- assert_equal("crazy", answer)
195
- end
196
-
197
- def test_character_echo
198
- @input << "password\r"
199
- @input.rewind
200
-
201
- answer = @terminal.ask("Please enter your password: ") do |q|
202
- q.echo = "*"
203
- end
204
- assert_equal("password", answer)
205
- assert_equal("Please enter your password: ********\n", @output.string)
206
-
207
- @input.truncate(@input.rewind)
208
- @input << "2"
209
- @input.rewind
210
- @output.truncate(@output.rewind)
211
-
212
- answer = @terminal.ask( "Select an option (1, 2 or 3): ",
213
- Integer ) do |q|
214
- q.echo = "*"
215
- q.character = true
216
- end
217
- assert_equal(2, answer)
218
- assert_equal("Select an option (1, 2 or 3): *\n", @output.string)
219
- end
220
-
221
- def test_backspace_does_not_enter_prompt
222
- @input << "\b\b"
223
- @input.rewind
224
- answer = @terminal.ask("Please enter your password: ") do |q|
225
- q.echo = "*"
226
- end
227
- assert_equal("", answer)
228
- assert_equal("Please enter your password: \n", @output.string)
229
- end
230
-
231
- def test_after_some_chars_backspace_does_not_enter_prompt_when_ascii
232
- @input << "apple\b\b\b\b\b\b\b\b\b\b"
233
- @input.rewind
234
- answer = @terminal.ask("Please enter your password: ") do |q|
235
- q.echo = "*"
236
- end
237
- assert_equal("", answer)
238
- assert_equal("apple".size, @output.string.count("\b"))
239
- end
240
-
241
- def test_after_some_chars_backspace_does_not_enter_prompt_when_utf8
242
- @input << "maçã\b\b\b\b\b\b\b\b"
243
- @input.rewind
244
- answer = @terminal.ask("Please enter your password: ") do |q|
245
- q.echo = "*"
246
- end
247
- assert_equal("", answer)
248
- assert_equal("maçã".size, @output.string.count("\b"))
249
- end
250
-
251
- def test_readline_mode
252
- # Rubinius seems to be ignoring Readline input
253
- # and output assignments. This ruins testing.
254
- # but it doesn't mean readline is not working
255
- # properly on rubinius.
256
-
257
- return if RUBY_ENGINE == "rbx"
258
-
259
- # Creating Tempfiles here because Readline.input
260
- # and Readline.output only accepts a File object
261
- # as argument (not any duck type as StringIO)
262
-
263
- temp_stdin = Tempfile.new "temp_stdin"
264
- temp_stdout = Tempfile.new "temp_stdout"
265
-
266
- Readline.input = @input = File.open(temp_stdin.path, 'w+')
267
- Readline.output = @output = File.open(temp_stdout.path, 'w+')
268
-
269
- @terminal = HighLine.new(@input, @output)
270
-
271
- @input << "any input\n"
272
- @input.rewind
273
-
274
- answer = @terminal.ask("Prompt: ") do |q|
275
- q.readline = true
276
- end
277
-
278
- @output.rewind
279
- output = @output.read
280
-
281
- assert_equal "any input", answer
282
- assert_match "Prompt: any input\n", output
283
-
284
- @input.close
285
- @output.close
286
- Readline.input = STDIN
287
- Readline.output = STDOUT
288
- end
289
-
290
- def test_readline_mode_with_limit_set
291
- temp_stdin = Tempfile.new "temp_stdin"
292
- temp_stdout = Tempfile.new "temp_stdout"
293
-
294
- Readline.input = @input = File.open(temp_stdin.path, 'w+')
295
- Readline.output = @output = File.open(temp_stdout.path, 'w+')
296
-
297
- @terminal = HighLine.new(@input, @output)
298
-
299
- @input << "any input\n"
300
- @input.rewind
301
-
302
- answer = @terminal.ask("Prompt: ") do |q|
303
- q.limit = 50
304
- q.readline = true
305
- end
306
-
307
- @output.rewind
308
- output = @output.read
309
-
310
- assert_equal "any input", answer
311
- assert_equal "Prompt: any input\n", output
312
-
313
- @input.close
314
- @output.close
315
- Readline.input = STDIN
316
- Readline.output = STDOUT
317
- end
318
-
319
- def test_readline_on_non_echo_question_has_prompt
320
- @input << "you can't see me"
321
- @input.rewind
322
- answer = @terminal.ask("Please enter some hidden text: ") do |q|
323
- q.readline = true
324
- q.echo = "*"
325
- end
326
- assert_equal("you can't see me", answer)
327
- assert_equal("Please enter some hidden text: ****************\n", @output.string)
328
- end
329
-
330
- def test_character_reading
331
- # WARNING: This method does NOT cover Unix and Windows savvy testing!
332
- @input << "12345"
333
- @input.rewind
334
-
335
- answer = @terminal.ask("Enter a single digit: ", Integer) do |q|
336
- q.character = :getc
337
- end
338
- assert_equal(1, answer)
339
- end
340
-
341
- def test_frozen_statement
342
- @terminal.say('This is a frozen statement'.freeze)
343
- assert_equal("This is a frozen statement\n", @output.string)
344
- end
345
-
346
- def test_color
347
- @terminal.say("This should be <%= BLUE %>blue<%= CLEAR %>!")
348
- assert_equal("This should be \e[34mblue\e[0m!\n", @output.string)
349
-
350
- @output.truncate(@output.rewind)
351
-
352
- @terminal.say( "This should be " +
353
- "<%= BOLD + ON_WHITE %>bold on white<%= CLEAR %>!" )
354
- assert_equal( "This should be \e[1m\e[47mbold on white\e[0m!\n",
355
- @output.string )
356
-
357
- @output.truncate(@output.rewind)
358
-
359
- @terminal.say("This should be <%= color('cyan', CYAN) %>!")
360
- assert_equal("This should be \e[36mcyan\e[0m!\n", @output.string)
361
-
362
- @output.truncate(@output.rewind)
363
-
364
- @terminal.say( "This should be " +
365
- "<%= color('blinking on red', :blink, :on_red) %>!" )
366
- assert_equal( "This should be \e[5m\e[41mblinking on red\e[0m!\n",
367
- @output.string )
368
-
369
- @output.truncate(@output.rewind)
370
-
371
- @terminal.say("This should be <%= NONE %>none<%= CLEAR %>!")
372
- assert_equal("This should be \e[38mnone\e[0m!\n", @output.string)
373
-
374
- @output.truncate(@output.rewind)
375
-
376
- @terminal.say("This should be <%= RGB_906030 %>rgb_906030<%= CLEAR %>!")
377
- assert_equal("This should be \e[38;5;137mrgb_906030\e[0m!\n", @output.string)
378
-
379
- @output.truncate(@output.rewind)
380
-
381
- @terminal.say("This should be <%= ON_RGB_C06030 %>on_rgb_c06030<%= CLEAR %>!")
382
- assert_equal("This should be \e[48;5;173mon_rgb_c06030\e[0m!\n", @output.string)
383
-
384
- @output.truncate(@output.rewind)
385
-
386
- # Does class method work, too?
387
- @terminal.say("This should be <%= HighLine.color('reverse underlined magenta', :reverse, :underline, :magenta) %>!")
388
- assert_equal( "This should be \e[7m\e[4m\e[35mreverse underlined magenta\e[0m!\n",
389
- @output.string )
390
-
391
- @output.truncate(@output.rewind)
392
-
393
- # turn off color
394
- old_setting = HighLine.use_color?
395
- assert_nothing_raised(Exception) { HighLine.use_color = false }
396
- @terminal.say("This should be <%= color('cyan', CYAN) %>!")
397
- assert_equal("This should be cyan!\n", @output.string)
398
- HighLine.use_color = old_setting
399
- end
400
-
401
- def test_uncolor
402
- # instance method
403
- assert_equal( "This should be reverse underlined magenta!\n",
404
- @terminal.uncolor("This should be \e[7m\e[4m\e[35mreverse underlined magenta\e[0m!\n")
405
- )
406
-
407
- @output.truncate(@output.rewind)
408
-
409
- # class method
410
- assert_equal( "This should be reverse underlined magenta!\n",
411
- HighLine.uncolor("This should be \e[7m\e[4m\e[35mreverse underlined magenta\e[0m!\n")
412
- )
413
-
414
- @output.truncate(@output.rewind)
415
-
416
- # RGB color
417
- assert_equal( "This should be rgb_906030!\n",
418
- @terminal.uncolor("This should be \e[38;5;137mrgb_906030\e[0m!\n")
419
- )
420
- end
421
-
422
- def test_grey_is_the_same_of_gray
423
- @terminal.say("<%= GRAY %>")
424
- gray_code = @output.string.dup
425
- @output.truncate(@output.rewind)
426
-
427
- @terminal.say("<%= GREY %>")
428
- grey_code = @output.string.dup
429
- @output.truncate(@output.rewind)
430
-
431
- assert_equal gray_code, grey_code
432
- end
433
-
434
- def test_light_is_the_same_as_bright
435
- @terminal.say("<%= BRIGHT_BLUE %>")
436
- bright_blue_code = @output.string.dup
437
- @output.truncate(@output.rewind)
438
-
439
- @terminal.say("<%= LIGHT_BLUE %>")
440
- light_blue_code = @output.string.dup
441
- @output.truncate(@output.rewind)
442
-
443
- assert_equal bright_blue_code, light_blue_code
444
- end
445
-
446
- def test_confirm
447
- @input << "junk.txt\nno\nsave.txt\ny\n"
448
- @input.rewind
449
-
450
- answer = @terminal.ask("Enter a filename: ") do |q|
451
- q.confirm = "Are you sure you want to overwrite <%= @answer %>? "
452
- q.responses[:ask_on_error] = :question
453
- end
454
- assert_equal("save.txt", answer)
455
- assert_equal( "Enter a filename: " +
456
- "Are you sure you want to overwrite junk.txt? " +
457
- "Enter a filename: " +
458
- "Are you sure you want to overwrite save.txt? ",
459
- @output.string )
460
-
461
- @input.truncate(@input.rewind)
462
- @input << "junk.txt\nyes\nsave.txt\nn\n"
463
- @input.rewind
464
- @output.truncate(@output.rewind)
465
-
466
- answer = @terminal.ask("Enter a filename: ") do |q|
467
- q.confirm = "Are you sure you want to overwrite <%= @answer %>? "
468
- end
469
- assert_equal("junk.txt", answer)
470
- assert_equal( "Enter a filename: " +
471
- "Are you sure you want to overwrite junk.txt? ",
472
- @output.string )
473
- end
474
-
475
- def test_defaults
476
- @input << "\nNo Comment\n"
477
- @input.rewind
478
-
479
- answer = @terminal.ask("Are you sexually active? ") do |q|
480
- q.validate = /\Ay(?:es)?|no?|no comment\Z/i
481
- end
482
- assert_equal("No Comment", answer)
483
-
484
- @input.truncate(@input.rewind)
485
- @input << "\nYes\n"
486
- @input.rewind
487
- @output.truncate(@output.rewind)
488
-
489
- answer = @terminal.ask("Are you sexually active? ") do |q|
490
- q.default = "No Comment"
491
- q.validate = /\Ay(?:es)?|no?|no comment\Z/i
492
- end
493
- assert_equal("No Comment", answer)
494
- assert_equal( "Are you sexually active? |No Comment| ",
495
- @output.string )
496
- end
497
-
498
- def test_default_with_String
499
- @input << "\n"
500
- @input.rewind
501
-
502
- answer = @terminal.ask("Question: ") do |q|
503
- q.default = "string"
504
- end
505
-
506
- assert_equal "string", answer
507
- assert_equal "Question: |string| ", @output.string
508
- end
509
-
510
- def test_default_with_Symbol
511
- # With a Symbol, it should show up the String version
512
- # at prompt, but return the Symbol as answer
513
-
514
- @input << "\n"
515
- @input.rewind
516
-
517
- answer = @terminal.ask("Question: ") do |q|
518
- q.default = :string
519
- end
520
-
521
- assert_equal :string, answer
522
- assert_equal "Question: |string| ", @output.string
523
- end
524
-
525
- def test_default_with_non_String_objects
526
- # With a non-string object, it should not show
527
- # any 'default' at prompt line. And should
528
- # return the "default" object, without conversion.
529
-
530
- @input << "\n"
531
- @input.rewind
532
-
533
- default_non_string_object = Object.new
534
-
535
- answer = @terminal.ask("Question: ") do |q|
536
- q.default = default_non_string_object
537
- end
538
-
539
- assert_equal default_non_string_object, answer
540
- assert_equal "Question: ", @output.string
541
- end
542
-
543
- def test_string_preservation
544
- @input << "Maybe\nYes\n"
545
- @input.rewind
546
-
547
- my_string = "Is that your final answer? "
548
-
549
- @terminal.ask(my_string) { |q| q.default = "Possibly" }
550
- @terminal.ask(my_string) { |q| q.default = "Maybe" }
551
-
552
- assert_equal("Is that your final answer? ", my_string)
553
- end
554
-
555
- def test_empty
556
- @input << "\n"
557
- @input.rewind
558
-
559
- answer = @terminal.ask("") do |q|
560
- q.default = "yes"
561
- q.validate = /\Ay(?:es)?|no?\Z/i
562
- end
563
- assert_equal("yes", answer)
564
- end
565
-
566
- def test_erb
567
- @terminal.say( "The integers from 1 to 10 are:\n" +
568
- "% (1...10).each do |n|\n" +
569
- "\t<%= n %>,\n" +
570
- "% end\n" +
571
- "\tand 10" )
572
- assert_equal( "The integers from 1 to 10 are:\n" +
573
- "\t1,\n\t2,\n\t3,\n\t4,\n\t5,\n" +
574
- "\t6,\n\t7,\n\t8,\n\t9,\n\tand 10\n",
575
- @output.string )
576
- end
577
-
578
- def test_files
579
- @input << "#{File.basename(__FILE__)[0, 5]}\n"
580
- @input.rewind
581
-
582
- assert_equal "tc_hi\n",@input.read
583
- @input.rewind
584
-
585
- file = @terminal.ask("Select a file: ", File) do |q|
586
- q.directory = File.expand_path(File.dirname(__FILE__))
587
- q.glob = "*.rb"
588
- end
589
- assert_instance_of(File, file)
590
- assert_equal("# encoding: utf-8\n", file.gets)
591
- file.close
592
-
593
- @input.rewind
594
-
595
- pathname = @terminal.ask("Select a file: ", Pathname) do |q|
596
- q.directory = File.expand_path(File.dirname(__FILE__))
597
- q.glob = "*.rb"
598
- end
599
- assert_instance_of(Pathname, pathname)
600
- assert_equal(File.size(__FILE__), pathname.size)
601
- end
602
-
603
- def test_gather
604
- @input << "James\nDana\nStorm\nGypsy\n\n"
605
- @input.rewind
606
-
607
- answers = @terminal.ask("Enter four names:") do |q|
608
- q.gather = 4
609
- end
610
- assert_equal(%w{James Dana Storm Gypsy}, answers)
611
- assert_equal("\n", @input.gets)
612
- assert_equal("Enter four names:\n", @output.string)
613
-
614
- @input.rewind
615
-
616
- answers = @terminal.ask("Enter four names:") do |q|
617
- q.gather = ""
618
- end
619
- assert_equal(%w{James Dana Storm Gypsy}, answers)
620
-
621
- @input.rewind
622
-
623
- answers = @terminal.ask("Enter four names:") do |q|
624
- q.gather = /^\s*$/
625
- end
626
- assert_equal(%w{James Dana Storm Gypsy}, answers)
627
-
628
- @input.truncate(@input.rewind)
629
- @input << "29\n49\n30\n"
630
- @input.rewind
631
- @output.truncate(@output.rewind)
632
-
633
- answers = @terminal.ask("<%= @key %>: ", Integer) do |q|
634
- q.gather = { "Age" => 0, "Wife's Age" => 0, "Father's Age" => 0}
635
- end
636
- assert_equal( { "Age" => 29, "Wife's Age" => 30, "Father's Age" => 49},
637
- answers )
638
- assert_equal("Age: Father's Age: Wife's Age: ", @output.string)
639
- end
640
-
641
- def test_typing_verification
642
- @input << "all work and no play makes jack a dull boy\n" * 3
643
- @input.rewind
644
-
645
- answer = @terminal.ask("How's work? ") do |q|
646
- q.gather = 3
647
- q.verify_match = true
648
- end
649
- assert_equal("all work and no play makes jack a dull boy", answer)
650
-
651
- @input.truncate(@input.rewind)
652
- @input << "all play and no work makes jack a mere toy\n"
653
- @input << "all work and no play makes jack a dull boy\n" * 5
654
- @input.rewind
655
- @output.truncate(@output.rewind)
656
-
657
- answer = @terminal.ask("How are things going? ") do |q|
658
- q.gather = 3
659
- q.verify_match = true
660
- q.responses[:mismatch] = 'Typing mismatch!'
661
- q.responses[:ask_on_error] = ''
662
- end
663
- assert_equal("all work and no play makes jack a dull boy", answer)
664
-
665
- # now try using a hash for gather
666
-
667
- @input.truncate(@input.rewind)
668
- @input << "Password\nPassword\n"
669
- @input.rewind
670
- @output.truncate(@output.rewind)
671
-
672
- answer = @terminal.ask("<%= @key %>: ") do |q|
673
- q.verify_match = true
674
- q.gather = {"Enter a password" => '', "Please type it again" => ''}
675
- end
676
- assert_equal("Password", answer)
677
-
678
- @input.truncate(@input.rewind)
679
- @input << "Password\nMistake\nPassword\nPassword\n"
680
- @input.rewind
681
- @output.truncate(@output.rewind)
682
-
683
- answer = @terminal.ask("<%= @key %>: ") do |q|
684
- q.verify_match = true
685
- q.responses[:mismatch] = 'Typing mismatch!'
686
- q.responses[:ask_on_error] = ''
687
- q.gather = {"Enter a password" => '', "Please type it again" => ''}
688
- end
689
-
690
- assert_equal("Password", answer)
691
- assert_equal( "Enter a password: " +
692
- "Please type it again: " +
693
- "Typing mismatch!\n" +
694
- "Enter a password: " +
695
- "Please type it again: ", @output.string )
696
- end
697
-
698
- def test_lists
699
- digits = %w{Zero One Two Three Four Five Six Seven Eight Nine}
700
- erb_digits = digits.dup
701
- erb_digits[erb_digits.index("Five")] = "<%= color('Five', :blue) %%>"
702
-
703
- @terminal.say("<%= list(#{digits.inspect}) %>")
704
- assert_equal(digits.map { |d| "#{d}\n" }.join, @output.string)
705
-
706
- @output.truncate(@output.rewind)
707
-
708
- @terminal.say("<%= list(#{digits.inspect}, :inline) %>")
709
- assert_equal( digits[0..-2].join(", ") + " or #{digits.last}\n",
710
- @output.string )
711
-
712
- @output.truncate(@output.rewind)
713
-
714
- @terminal.say("<%= list(#{digits.inspect}, :inline, ' and ') %>")
715
- assert_equal( digits[0..-2].join(", ") + " and #{digits.last}\n",
716
- @output.string )
717
-
718
- @output.truncate(@output.rewind)
719
-
720
- @terminal.say("<%= list(#{digits.inspect}, :columns_down, 3) %>")
721
- assert_equal( "Zero Four Eight\n" +
722
- "One Five Nine \n" +
723
- "Two Six \n" +
724
- "Three Seven\n",
725
- @output.string )
726
-
727
- @output.truncate(@output.rewind)
728
-
729
- @terminal.say("<%= list(#{erb_digits.inspect}, :columns_down, 3) %>")
730
- assert_equal( "Zero Four Eight\n" +
731
- "One \e[34mFive\e[0m Nine \n" +
732
- "Two Six \n" +
733
- "Three Seven\n",
734
- @output.string )
735
-
736
- colums_of_twenty = ["12345678901234567890"] * 5
737
-
738
- @output.truncate(@output.rewind)
739
-
740
- @terminal.say("<%= list(#{colums_of_twenty.inspect}, :columns_down) %>")
741
- assert_equal( "12345678901234567890 12345678901234567890 " +
742
- "12345678901234567890\n" +
743
- "12345678901234567890 12345678901234567890\n",
744
- @output.string )
745
-
746
- @output.truncate(@output.rewind)
747
-
748
- @terminal.say("<%= list(#{digits.inspect}, :columns_across, 3) %>")
749
- assert_equal( "Zero One Two \n" +
750
- "Three Four Five \n" +
751
- "Six Seven Eight\n" +
752
- "Nine \n",
753
- @output.string )
754
-
755
- colums_of_twenty.pop
756
-
757
- @output.truncate(@output.rewind)
758
-
759
- @terminal.say("<%= list( #{colums_of_twenty.inspect}, :columns_across ) %>")
760
- assert_equal( "12345678901234567890 12345678901234567890 " +
761
- "12345678901234567890\n" +
762
- "12345678901234567890\n",
763
- @output.string )
764
-
765
- @output.truncate(@output.rewind)
766
-
767
- wide = %w[0123456789 a b c d e f g h i j k l m n o p q r s t u v w x y z]
768
-
769
- @terminal.say("<%= list( #{wide.inspect}, :uneven_columns_across ) %>")
770
- assert_equal( "0123456789 a b c d e f g h i j k l m n o " +
771
- "p q r s t u v w\n" +
772
- "x y z\n",
773
- @output.string )
774
-
775
- @output.truncate(@output.rewind)
776
-
777
- @terminal.say("<%= list( #{wide.inspect}, :uneven_columns_across, 10 ) %>")
778
- assert_equal( "0123456789 a b c d e f g h i\n" +
779
- "j k l m n o p q r s\n" +
780
- "t u v w x y z\n",
781
- @output.string )
782
-
783
- @output.truncate(@output.rewind)
784
-
785
- @terminal.say("<%= list( #{wide.inspect}, :uneven_columns_down ) %>")
786
- assert_equal( "0123456789 b d f h j l n p r t v x z\n" +
787
- "a c e g i k m o q s u w y\n",
788
- @output.string )
789
-
790
- @output.truncate(@output.rewind)
791
-
792
- @terminal.say("<%= list( #{wide.inspect}, :uneven_columns_down, 10 ) %>")
793
- assert_equal( "0123456789 c f i l o r u x\n" +
794
- "a d g j m p s v y\n" +
795
- "b e h k n q t w z\n",
796
- @output.string )
797
- end
798
-
799
- def test_lists_with_zero_items
800
- modes = [nil, :rows, :inline, :columns_across, :columns_down]
801
- modes.each do |mode|
802
- result = @terminal.list([], mode)
803
- assert_equal("", result)
804
- end
805
- end
806
-
807
- def test_lists_with_nil_items
808
- modes = [nil]
809
- modes.each do |mode|
810
- result = @terminal.list([nil], mode)
811
- assert_equal("\n", result)
812
- end
813
- end
814
-
815
- def test_lists_with_one_item
816
- items = ['Zero']
817
- modes = { nil => "Zero\n",
818
- :rows => "Zero\n",
819
- :inline => "Zero",
820
- :columns_across => "Zero\n",
821
- :columns_down => "Zero\n" }
822
-
823
- modes.each do |mode, expected|
824
- result = @terminal.list(items, mode)
825
- assert_equal(expected, result)
826
- end
827
- end
828
-
829
- def test_lists_with_two_items
830
- items = ['Zero', 'One']
831
- modes = { nil => "Zero\nOne\n",
832
- :rows => "Zero\nOne\n",
833
- :inline => "Zero or One",
834
- :columns_across => "Zero One \n",
835
- :columns_down => "Zero One \n" }
836
-
837
- modes.each do |mode, expected|
838
- result = @terminal.list(items, mode)
839
- assert_equal(expected, result)
840
- end
841
- end
842
-
843
- def test_lists_with_three_items
844
- items = ['Zero', 'One', 'Two']
845
- modes = { nil => "Zero\nOne\nTwo\n",
846
- :rows => "Zero\nOne\nTwo\n",
847
- :inline => "Zero, One or Two",
848
- :columns_across => "Zero One Two \n",
849
- :columns_down => "Zero One Two \n" }
850
-
851
- modes.each do |mode, expected|
852
- result = @terminal.list(items, mode)
853
- assert_equal(expected, result)
854
- end
855
- end
856
-
857
- def test_mode
858
- assert(%w[Win32API termios ncurses stty jline].include?(HighLine::CHARACTER_MODE),
859
- "#{HighLine::CHARACTER_MODE} not in list")
860
- end
861
-
862
- class NameClass
863
- def self.parse( string )
864
- if string =~ /^\s*(\w+),\s*(\w+)\s+(\w+)\s*$/
865
- self.new($2, $3, $1)
866
- else
867
- raise ArgumentError, "Invalid name format."
868
- end
869
- end
870
-
871
- def initialize(first, middle, last)
872
- @first, @middle, @last = first, middle, last
873
- end
874
-
875
- attr_reader :first, :middle, :last
876
- end
877
-
878
- def test_my_class_conversion
879
- @input << "Gray, James Edward\n"
880
- @input.rewind
881
-
882
- answer = @terminal.ask("Your name? ", NameClass) do |q|
883
- q.validate = lambda do |name|
884
- names = name.split(/,\s*/)
885
- return false unless names.size == 2
886
- return false if names.first =~ /\s/
887
- names.last.split.size == 2
888
- end
889
- end
890
- assert_instance_of(NameClass, answer)
891
- assert_equal("Gray", answer.last)
892
- assert_equal("James", answer.first)
893
- assert_equal("Edward", answer.middle)
894
- end
895
-
896
- def test_no_echo
897
- @input << "password\r"
898
- @input.rewind
899
-
900
- answer = @terminal.ask("Please enter your password: ") do |q|
901
- q.echo = false
902
- end
903
- assert_equal("password", answer)
904
- assert_equal("Please enter your password: \n", @output.string)
905
-
906
- @input.rewind
907
- @output.truncate(@output.rewind)
908
-
909
- answer = @terminal.ask("Pick a letter or number: ") do |q|
910
- q.character = true
911
- q.echo = false
912
- end
913
- assert_equal("p", answer)
914
- assert_equal("a", @input.getc.chr)
915
- assert_equal("Pick a letter or number: \n", @output.string)
916
- end
917
-
918
- def test_correct_string_encoding_when_echo_false
919
- @input << "ação\r" # An UTF-8 portuguese word for 'action'
920
- @input.rewind
921
-
922
- answer = @terminal.ask("Please enter your password: ") do |q|
923
- q.echo = false
924
- end
925
-
926
- assert_equal "ação", answer
927
- assert_equal Encoding::default_external, answer.encoding
928
- end
929
-
930
- def test_backspace_with_ascii_when_echo_false
931
- @input << "password\b\r"
932
- @input.rewind
933
-
934
- answer = @terminal.ask("Please enter your password: ") do |q|
935
- q.echo = false
936
- end
937
-
938
- assert_not_equal("password", answer)
939
- assert_equal("passwor", answer)
940
- end
941
-
942
- def test_backspace_with_utf8_when_echo_false
943
- @input << "maçã\b\r"
944
- @input.rewind
945
-
946
- answer = @terminal.ask("Please enter your password: ") do |q|
947
- q.echo = false
948
- end
949
-
950
- assert_not_equal("maçã", answer)
951
- assert_equal("maç", answer)
952
- end
953
-
954
- def test_echoing_with_utf8_when_echo_is_star
955
- @input << "maçã\r"
956
- @input.rewind
957
-
958
- answer = @terminal.ask("Type: ") do |q|
959
- q.echo = "*"
960
- end
961
-
962
- assert_equal("Type: ****\n", @output.string)
963
- assert_equal("maçã", answer)
964
- end
965
-
966
- def test_paging
967
- @terminal.page_at = 22
968
-
969
- @input << "\n\n"
970
- @input.rewind
971
-
972
- @terminal.say((1..50).map { |n| "This is line #{n}.\n"}.join)
973
- assert_equal( (1..22).map { |n| "This is line #{n}.\n"}.join +
974
- "\n-- press enter/return to continue or q to stop -- \n\n" +
975
- (23..44).map { |n| "This is line #{n}.\n"}.join +
976
- "\n-- press enter/return to continue or q to stop -- \n\n" +
977
- (45..50).map { |n| "This is line #{n}.\n"}.join,
978
- @output.string )
979
- end
980
-
981
- def test_statement_lines_count_equal_to_page_at_shouldnt_paginate
982
- @terminal.page_at = 6
983
-
984
- @input << "\n"
985
- @input.rewind
986
-
987
- list = "a\nb\nc\nd\ne\nf\n"
988
-
989
- @terminal.say(list)
990
- assert_equal(list, @output.string)
991
- end
992
-
993
- def test_statement_with_one_line_bigger_than_page_at_should_paginate
994
- @terminal.page_at = 6
995
-
996
- @input << "\n"
997
- @input.rewind
998
-
999
- list = "a\nb\nc\nd\ne\nf\ng\n"
1000
-
1001
- paginated =
1002
- "a\nb\nc\nd\ne\nf\n" \
1003
- "\n-- press enter/return to continue or q to stop -- \n\n" \
1004
- "g\n"
1005
-
1006
- @terminal.say(list)
1007
- assert_equal(paginated, @output.string)
1008
- end
1009
-
1010
- def test_quiting_paging_shouldnt_raise
1011
- # See https://github.com/JEG2/highline/issues/168
1012
-
1013
- @terminal.page_at = 6
1014
-
1015
- @input << "q"
1016
- @input.rewind
1017
-
1018
- list = "a\nb\nc\nd\ne\nf\n"
1019
-
1020
- assert_nothing_raised { @terminal.say(list) }
1021
- end
1022
-
1023
- def test_range_requirements
1024
- @input << "112\n-541\n28\n"
1025
- @input.rewind
1026
-
1027
- answer = @terminal.ask("Tell me your age.", Integer) do |q|
1028
- q.in = 0..105
1029
- end
1030
- assert_equal(28, answer)
1031
- assert_equal( "Tell me your age.\n" +
1032
- "Your answer isn't within the expected range " +
1033
- "(included in 0..105).\n" +
1034
- "? " +
1035
- "Your answer isn't within the expected range " +
1036
- "(included in 0..105).\n" +
1037
- "? ", @output.string )
1038
-
1039
- @input.truncate(@input.rewind)
1040
- @input << "1\n-541\n28\n"
1041
- @input.rewind
1042
- @output.truncate(@output.rewind)
1043
-
1044
- answer = @terminal.ask("Tell me your age.", Integer) do |q|
1045
- q.above = 3
1046
- end
1047
- assert_equal(28, answer)
1048
- assert_equal( "Tell me your age.\n" +
1049
- "Your answer isn't within the expected range " +
1050
- "(above 3).\n" +
1051
- "? " +
1052
- "Your answer isn't within the expected range " +
1053
- "(above 3).\n" +
1054
- "? ", @output.string )
1055
-
1056
- @input.truncate(@input.rewind)
1057
- @input << "1\n28\n-541\n"
1058
- @input.rewind
1059
- @output.truncate(@output.rewind)
1060
-
1061
- answer = @terminal.ask("Lowest numer you can think of?", Integer) do |q|
1062
- q.below = 0
1063
- end
1064
- assert_equal(-541, answer)
1065
- assert_equal( "Lowest numer you can think of?\n" +
1066
- "Your answer isn't within the expected range " +
1067
- "(below 0).\n" +
1068
- "? " +
1069
- "Your answer isn't within the expected range " +
1070
- "(below 0).\n" +
1071
- "? ", @output.string )
1072
-
1073
- @input.truncate(@input.rewind)
1074
- @input << "1\n-541\n6\n"
1075
- @input.rewind
1076
- @output.truncate(@output.rewind)
1077
-
1078
- answer = @terminal.ask("Enter a low even number: ", Integer) do |q|
1079
- q.above = 0
1080
- q.below = 10
1081
- q.in = [2, 4, 6, 8]
1082
- end
1083
- assert_equal(6, answer)
1084
- assert_equal( "Enter a low even number: " +
1085
- "Your answer isn't within the expected range " +
1086
- "(above 0, below 10, and included in [2, 4, 6, 8]).\n" +
1087
- "? " +
1088
- "Your answer isn't within the expected range " +
1089
- "(above 0, below 10, and included in [2, 4, 6, 8]).\n" +
1090
- "? ", @output.string )
1091
- end
1092
-
1093
- def test_reask
1094
- number = 61676
1095
- @input << "Junk!\n" << number << "\n"
1096
- @input.rewind
1097
-
1098
- answer = @terminal.ask("Favorite number? ", Integer)
1099
- assert_kind_of(Integer, number)
1100
- assert_instance_of(Fixnum, number)
1101
- assert_equal(number, answer)
1102
- assert_equal( "Favorite number? " +
1103
- "You must enter a valid Integer.\n" +
1104
- "? ", @output.string )
1105
-
1106
- @input.rewind
1107
- @output.truncate(@output.rewind)
1108
-
1109
- answer = @terminal.ask("Favorite number? ", Integer) do |q|
1110
- q.responses[:ask_on_error] = :question
1111
- q.responses[:invalid_type] = "Not a valid number!"
1112
- end
1113
- assert_kind_of(Integer, number)
1114
- assert_instance_of(Fixnum, number)
1115
- assert_equal(number, answer)
1116
- assert_equal( "Favorite number? " +
1117
- "Not a valid number!\n" +
1118
- "Favorite number? ", @output.string )
1119
-
1120
- @input.truncate(@input.rewind)
1121
- @input << "gen\ngene\n"
1122
- @input.rewind
1123
- @output.truncate(@output.rewind)
1124
-
1125
- answer = @terminal.ask("Select a mode: ", [:generate, :gentle])
1126
- assert_instance_of(Symbol, answer)
1127
- assert_equal(:generate, answer)
1128
- assert_equal( "Select a mode: " +
1129
- "Ambiguous choice. " +
1130
- "Please choose one of [generate, gentle].\n" +
1131
- "? ", @output.string )
1132
- end
1133
-
1134
- def test_response_embedding
1135
- @input << "112\n-541\n28\n"
1136
- @input.rewind
1137
-
1138
- answer = @terminal.ask("Tell me your age.", Integer) do |q|
1139
- q.in = 0..105
1140
- q.responses[:not_in_range] = "Need a <%= @question.answer_type %>" +
1141
- " <%= @question.expected_range %>."
1142
- end
1143
- assert_equal(28, answer)
1144
- assert_equal( "Tell me your age.\n" +
1145
- "Need a Integer included in 0..105.\n" +
1146
- "? " +
1147
- "Need a Integer included in 0..105.\n" +
1148
- "? ", @output.string )
1149
- end
1150
-
1151
- def test_say
1152
- @terminal.say("This will have a newline.")
1153
- assert_equal("This will have a newline.\n", @output.string)
1154
-
1155
- @output.truncate(@output.rewind)
1156
-
1157
- @terminal.say("This will also have one newline.\n")
1158
- assert_equal("This will also have one newline.\n", @output.string)
1159
-
1160
- @output.truncate(@output.rewind)
1161
-
1162
- @terminal.say("This will not have a newline. ")
1163
- assert_equal("This will not have a newline. ", @output.string)
1164
-
1165
- @output.truncate(@output.rewind)
1166
-
1167
- @terminal.say("This will not\n end with a newline. ")
1168
- assert_equal("This will not\n end with a newline. ", @output.string)
1169
-
1170
- @output.truncate(@output.rewind)
1171
-
1172
- @terminal.say("This will \nend with a newline.")
1173
- assert_equal("This will \nend with a newline.\n", @output.string)
1174
-
1175
- @output.truncate(@output.rewind)
1176
-
1177
- colorized = @terminal.color("This will not have a newline. ", :green)
1178
- @terminal.say(colorized)
1179
- assert_equal("\e[32mThis will not have a newline. \e[0m", @output.string)
1180
-
1181
- @output.truncate(@output.rewind)
1182
-
1183
- colorized = @terminal.color("This will have a newline.", :green)
1184
- @terminal.say(colorized)
1185
- assert_equal("\e[32mThis will have a newline.\e[0m\n", @output.string)
1186
-
1187
- @output.truncate(@output.rewind)
1188
-
1189
- assert_nothing_raised { @terminal.say(nil) }
1190
- assert_equal("", @output.string)
1191
- end
1192
-
1193
- def test_say_handles_non_string_argument
1194
- integer = 10
1195
- hash = { :a => 20 }
1196
-
1197
- assert_nothing_raised { @terminal.say(integer) }
1198
- assert_equal String(integer), @output.string.chomp
1199
-
1200
- @output.truncate(@output.rewind)
1201
-
1202
- assert_nothing_raised { @terminal.say(hash) }
1203
- assert_equal String(hash), @output.string.chomp
1204
- end
1205
-
1206
- def test_terminal_size
1207
- assert_instance_of(Fixnum, @terminal.terminal_size[0])
1208
- assert_instance_of(Fixnum, @terminal.terminal_size[1])
1209
- end
1210
-
1211
- def test_type_conversion
1212
- number = 61676
1213
- @input << number << "\n"
1214
- @input.rewind
1215
-
1216
- answer = @terminal.ask("Favorite number? ", Integer)
1217
- assert_kind_of(Integer, answer)
1218
- assert_instance_of(Fixnum, answer)
1219
- assert_equal(number, answer)
1220
-
1221
- @input.truncate(@input.rewind)
1222
- number = 1_000_000_000_000_000_000_000_000_000_000
1223
- @input << number << "\n"
1224
- @input.rewind
1225
-
1226
- answer = @terminal.ask("Favorite number? ", Integer)
1227
- assert_kind_of(Integer, answer)
1228
- assert_instance_of(Bignum, answer)
1229
- assert_equal(number, answer)
1230
-
1231
- @input.truncate(@input.rewind)
1232
- number = 10.5002
1233
- @input << number << "\n"
1234
- @input.rewind
1235
-
1236
- answer = @terminal.ask( "Favorite number? ",
1237
- lambda { |n| n.to_f.abs.round } )
1238
- assert_kind_of(Integer, answer)
1239
- assert_instance_of(Fixnum, answer)
1240
- assert_equal(11, answer)
1241
-
1242
- @input.truncate(@input.rewind)
1243
- animal = :dog
1244
- @input << animal << "\n"
1245
- @input.rewind
1246
-
1247
- answer = @terminal.ask("Favorite animal? ", Symbol)
1248
- assert_instance_of(Symbol, answer)
1249
- assert_equal(animal, answer)
1250
-
1251
- @input.truncate(@input.rewind)
1252
- @input << "16th June 1976\n"
1253
- @input.rewind
1254
-
1255
- answer = @terminal.ask("Enter your birthday.", Date)
1256
- assert_instance_of(Date, answer)
1257
- assert_equal(16, answer.day)
1258
- assert_equal(6, answer.month)
1259
- assert_equal(1976, answer.year)
1260
-
1261
- @input.truncate(@input.rewind)
1262
- pattern = "^yes|no$"
1263
- @input << pattern << "\n"
1264
- @input.rewind
1265
-
1266
- answer = @terminal.ask("Give me a pattern to match with: ", Regexp)
1267
- assert_instance_of(Regexp, answer)
1268
- assert_equal(/#{pattern}/, answer)
1269
-
1270
- @input.truncate(@input.rewind)
1271
- @input << "gen\n"
1272
- @input.rewind
1273
-
1274
- answer = @terminal.ask("Select a mode: ", [:generate, :run])
1275
- assert_instance_of(Symbol, answer)
1276
- assert_equal(:generate, answer)
1277
- end
1278
-
1279
- def test_validation
1280
- @input << "system 'rm -rf /'\n105\n0b101_001\n"
1281
- @input.rewind
1282
-
1283
- answer = @terminal.ask("Enter a binary number: ") do |q|
1284
- q.validate = /\A(?:0b)?[01_]+\Z/
1285
- end
1286
- assert_equal("0b101_001", answer)
1287
- assert_equal( "Enter a binary number: " +
1288
- "Your answer isn't valid " +
1289
- "(must match /\\A(?:0b)?[01_]+\\Z/).\n" +
1290
- "? " +
1291
- "Your answer isn't valid " +
1292
- "(must match /\\A(?:0b)?[01_]+\\Z/).\n" +
1293
- "? ", @output.string )
1294
-
1295
- @input.truncate(@input.rewind)
1296
- @input << "Gray II, James Edward\n" +
1297
- "Gray, Dana Ann Leslie\n" +
1298
- "Gray, James Edward\n"
1299
- @input.rewind
1300
-
1301
- answer = @terminal.ask("Your name? ") do |q|
1302
- q.validate = lambda do |name|
1303
- names = name.split(/,\s*/)
1304
- return false unless names.size == 2
1305
- return false if names.first =~ /\s/
1306
- names.last.split.size == 2
1307
- end
1308
- end
1309
- assert_equal("Gray, James Edward", answer)
1310
- end
1311
-
1312
- def test_whitespace
1313
- @input << " A lot\tof \t space\t \there! \n"
1314
- @input.rewind
1315
-
1316
- answer = @terminal.ask("Enter a whitespace filled string: ") do |q|
1317
- q.whitespace = :chomp
1318
- end
1319
- assert_equal(" A lot\tof \t space\t \there! ", answer)
1320
-
1321
- @input.rewind
1322
-
1323
- answer = @terminal.ask("Enter a whitespace filled string: ")
1324
- assert_equal("A lot\tof \t space\t \there!", answer)
1325
-
1326
- @input.rewind
1327
-
1328
- answer = @terminal.ask("Enter a whitespace filled string: ") do |q|
1329
- q.whitespace = :strip_and_collapse
1330
- end
1331
- assert_equal("A lot of space here!", answer)
1332
-
1333
- @input.rewind
1334
-
1335
- answer = @terminal.ask("Enter a whitespace filled string: ") do |q|
1336
- q.whitespace = :remove
1337
- end
1338
- assert_equal("Alotofspacehere!", answer)
1339
-
1340
- @input.rewind
1341
-
1342
- answer = @terminal.ask("Enter a whitespace filled string: ") do |q|
1343
- q.whitespace = :none
1344
- end
1345
- assert_equal(" A lot\tof \t space\t \there! \n", answer)
1346
- end
1347
-
1348
- def test_wrap
1349
- @terminal.wrap_at = 80
1350
-
1351
- @terminal.say("This is a very short line.")
1352
- assert_equal("This is a very short line.\n", @output.string)
1353
-
1354
- @output.truncate(@output.rewind)
1355
-
1356
- @terminal.say( "This is a long flowing paragraph meant to span " +
1357
- "several lines. This text should definitely be " +
1358
- "wrapped at the set limit, in the result. Your code " +
1359
- "does well with things like this.\n\n" +
1360
- " * This is a simple embedded list.\n" +
1361
- " * You're code should not mess with this...\n" +
1362
- " * Because it's already formatted correctly and " +
1363
- "does not\n" +
1364
- " exceed the limit!" )
1365
- assert_equal( "This is a long flowing paragraph meant to span " +
1366
- "several lines. This text should\n" +
1367
- "definitely be wrapped at the set limit, in the " +
1368
- "result. Your code does well with\n" +
1369
- "things like this.\n\n" +
1370
- " * This is a simple embedded list.\n" +
1371
- " * You're code should not mess with this...\n" +
1372
- " * Because it's already formatted correctly and does " +
1373
- "not\n" +
1374
- " exceed the limit!\n", @output.string )
1375
-
1376
- @output.truncate(@output.rewind)
1377
-
1378
- @terminal.say("-=" * 50)
1379
- assert_equal(("-=" * 40 + "\n") + ("-=" * 10 + "\n"), @output.string)
1380
- end
1381
-
1382
- def test_track_eof
1383
- assert_raise(EOFError) { @terminal.ask("Any input left? ") }
1384
-
1385
- # turn EOF tracking
1386
- old_setting = HighLine.track_eof?
1387
- assert_nothing_raised(Exception) { HighLine.track_eof = false }
1388
- begin
1389
- @terminal.ask("And now? ") # this will still blow up, nothing available
1390
- rescue
1391
- assert_not_equal(EOFError, $!.class) # but HighLine's safe guards are off
1392
- end
1393
- HighLine.track_eof = old_setting
1394
- end
1395
-
1396
- def test_version
1397
- assert_not_nil(HighLine::VERSION)
1398
- assert_instance_of(String, HighLine::VERSION)
1399
- assert(HighLine::VERSION.frozen?)
1400
- assert_match(/\A\d+\.\d+\.\d+\Z/, HighLine::VERSION)
1401
- end
1402
- end