redcar 0.3.7.1 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (246) hide show
  1. data/CHANGES +16 -0
  2. data/README.md +5 -0
  3. data/ROADMAP.md +7 -9
  4. data/Rakefile +55 -22
  5. data/lib/redcar.rb +12 -6
  6. data/lib/redcar/installer.rb +119 -44
  7. data/plugins/application/features/step_definitions/speedbar_steps.rb +62 -0
  8. data/plugins/application/features/step_definitions/tree_steps.rb +3 -3
  9. data/plugins/application/features/support/env.rb +2 -1
  10. data/plugins/application/lib/application/notebook.rb +53 -7
  11. data/plugins/application/lib/application/speedbar.rb +12 -0
  12. data/plugins/application/lib/application/tab.rb +16 -5
  13. data/plugins/application/lib/application/treebook.rb +21 -1
  14. data/plugins/application_swt/lib/application_swt.rb +12 -2
  15. data/plugins/application_swt/lib/application_swt/html_tab.rb +4 -0
  16. data/plugins/application_swt/lib/application_swt/notebook.rb +5 -3
  17. data/plugins/application_swt/lib/application_swt/speedbar.rb +15 -27
  18. data/plugins/application_swt/lib/application_swt/swt_wrapper.rb +1 -0
  19. data/plugins/application_swt/lib/application_swt/tab.rb +1 -0
  20. data/plugins/application_swt/lib/application_swt/treebook.rb +36 -8
  21. data/plugins/application_swt/lib/application_swt/window.rb +24 -18
  22. data/plugins/auto_completer/lib/auto_completer.rb +5 -20
  23. data/plugins/core/lib/core.rb +7 -4
  24. data/plugins/core/lib/core/observable_struct.rb +2 -2
  25. data/plugins/declarations/lib/declarations.rb +3 -17
  26. data/plugins/document_search/features/search.feature +163 -0
  27. data/plugins/document_search/features/support/env.rb +4 -0
  28. data/plugins/document_search/lib/document_search.rb +121 -0
  29. data/plugins/document_search/plugin.rb +8 -0
  30. data/plugins/edit_view/features/line_delimiter.feature +7 -0
  31. data/plugins/edit_view/features/step_definitions/editing_steps.rb +49 -1
  32. data/plugins/edit_view/features/step_definitions/tab_steps.rb +10 -11
  33. data/plugins/edit_view/features/switch_tabs.feature +61 -10
  34. data/plugins/edit_view/lib/edit_view.rb +4 -0
  35. data/plugins/edit_view/lib/edit_view/document.rb +56 -0
  36. data/plugins/edit_view/lib/edit_view/document/command.rb +1 -1
  37. data/plugins/edit_view/lib/edit_view/edit_tab.rb +0 -8
  38. data/plugins/edit_view_swt/lib/edit_view_swt.rb +4 -0
  39. data/plugins/html_view/lib/html_controller.rb +19 -1
  40. data/plugins/html_view/lib/html_view.rb +28 -1
  41. data/plugins/html_view/lib/html_view/html_tab.rb +10 -1
  42. data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +3 -1
  43. data/plugins/project/features/open_directory_tree.feature +3 -3
  44. data/plugins/project/lib/project.rb +4 -6
  45. data/plugins/project/lib/project/commands.rb +17 -0
  46. data/plugins/project/lib/project/dir_controller.rb +2 -1
  47. data/plugins/project/lib/project/dir_mirror.rb +8 -0
  48. data/plugins/project/lib/project/manager.rb +2 -0
  49. data/plugins/project/plugin.rb +2 -1
  50. data/plugins/project/vendor/net-sftp/Manifest +55 -0
  51. data/plugins/project/vendor/net-sftp/Rakefile +30 -0
  52. data/plugins/project/vendor/net-sftp/lib/net/sftp.rb +70 -0
  53. data/plugins/project/vendor/net-sftp/lib/net/sftp/constants.rb +187 -0
  54. data/plugins/project/vendor/net-sftp/lib/net/sftp/errors.rb +39 -0
  55. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/dir.rb +93 -0
  56. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/download.rb +364 -0
  57. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/file.rb +176 -0
  58. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/file_factory.rb +60 -0
  59. data/plugins/project/vendor/net-sftp/lib/net/sftp/operations/upload.rb +387 -0
  60. data/plugins/project/vendor/net-sftp/lib/net/sftp/packet.rb +21 -0
  61. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol.rb +32 -0
  62. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/01/attributes.rb +315 -0
  63. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/01/base.rb +268 -0
  64. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/01/name.rb +43 -0
  65. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/02/base.rb +31 -0
  66. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/03/base.rb +35 -0
  67. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/04/attributes.rb +152 -0
  68. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/04/base.rb +94 -0
  69. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/04/name.rb +67 -0
  70. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/05/base.rb +66 -0
  71. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/06/attributes.rb +107 -0
  72. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/06/base.rb +63 -0
  73. data/plugins/project/vendor/net-sftp/lib/net/sftp/protocol/base.rb +50 -0
  74. data/plugins/project/vendor/net-sftp/lib/net/sftp/request.rb +91 -0
  75. data/plugins/project/vendor/net-sftp/lib/net/sftp/response.rb +76 -0
  76. data/plugins/project/vendor/net-sftp/lib/net/sftp/session.rb +951 -0
  77. data/plugins/project/vendor/net-sftp/lib/net/sftp/version.rb +18 -0
  78. data/plugins/project/vendor/net-sftp/setup.rb +1331 -0
  79. data/plugins/project/vendor/net-sftp/test/common.rb +171 -0
  80. data/plugins/project/vendor/net-sftp/test/protocol/01/test_attributes.rb +97 -0
  81. data/plugins/project/vendor/net-sftp/test/protocol/01/test_base.rb +210 -0
  82. data/plugins/project/vendor/net-sftp/test/protocol/01/test_name.rb +27 -0
  83. data/plugins/project/vendor/net-sftp/test/protocol/02/test_base.rb +26 -0
  84. data/plugins/project/vendor/net-sftp/test/protocol/03/test_base.rb +27 -0
  85. data/plugins/project/vendor/net-sftp/test/protocol/04/test_attributes.rb +148 -0
  86. data/plugins/project/vendor/net-sftp/test/protocol/04/test_base.rb +74 -0
  87. data/plugins/project/vendor/net-sftp/test/protocol/04/test_name.rb +53 -0
  88. data/plugins/project/vendor/net-sftp/test/protocol/05/test_base.rb +62 -0
  89. data/plugins/project/vendor/net-sftp/test/protocol/06/test_attributes.rb +124 -0
  90. data/plugins/project/vendor/net-sftp/test/protocol/06/test_base.rb +51 -0
  91. data/plugins/project/vendor/net-sftp/test/protocol/test_base.rb +42 -0
  92. data/plugins/project/vendor/net-sftp/test/test_all.rb +7 -0
  93. data/plugins/project/vendor/net-sftp/test/test_dir.rb +47 -0
  94. data/plugins/project/vendor/net-sftp/test/test_download.rb +252 -0
  95. data/plugins/project/vendor/net-sftp/test/test_file.rb +159 -0
  96. data/plugins/project/vendor/net-sftp/test/test_file_factory.rb +48 -0
  97. data/plugins/project/vendor/net-sftp/test/test_packet.rb +9 -0
  98. data/plugins/project/vendor/net-sftp/test/test_protocol.rb +17 -0
  99. data/plugins/project/vendor/net-sftp/test/test_request.rb +71 -0
  100. data/plugins/project/vendor/net-sftp/test/test_response.rb +53 -0
  101. data/plugins/project/vendor/net-sftp/test/test_session.rb +741 -0
  102. data/plugins/project/vendor/net-sftp/test/test_upload.rb +219 -0
  103. data/plugins/project/vendor/net-ssh/Manifest +110 -0
  104. data/plugins/project/vendor/net-ssh/Rakefile +85 -0
  105. data/plugins/project/vendor/net-ssh/Rudyfile +96 -0
  106. data/plugins/project/vendor/net-ssh/lib/net/ssh.rb +215 -0
  107. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/agent.rb +179 -0
  108. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/constants.rb +18 -0
  109. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/key_manager.rb +193 -0
  110. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/abstract.rb +60 -0
  111. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/hostbased.rb +71 -0
  112. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/keyboard_interactive.rb +66 -0
  113. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/password.rb +39 -0
  114. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/methods/publickey.rb +92 -0
  115. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/pageant.rb +183 -0
  116. data/plugins/project/vendor/net-ssh/lib/net/ssh/authentication/session.rb +134 -0
  117. data/plugins/project/vendor/net-ssh/lib/net/ssh/buffer.rb +340 -0
  118. data/plugins/project/vendor/net-ssh/lib/net/ssh/buffered_io.rb +198 -0
  119. data/plugins/project/vendor/net-ssh/lib/net/ssh/config.rb +202 -0
  120. data/plugins/project/vendor/net-ssh/lib/net/ssh/connection/channel.rb +630 -0
  121. data/plugins/project/vendor/net-ssh/lib/net/ssh/connection/constants.rb +33 -0
  122. data/plugins/project/vendor/net-ssh/lib/net/ssh/connection/session.rb +597 -0
  123. data/plugins/project/vendor/net-ssh/lib/net/ssh/connection/term.rb +178 -0
  124. data/plugins/project/vendor/net-ssh/lib/net/ssh/errors.rb +85 -0
  125. data/plugins/project/vendor/net-ssh/lib/net/ssh/key_factory.rb +102 -0
  126. data/plugins/project/vendor/net-ssh/lib/net/ssh/known_hosts.rb +129 -0
  127. data/plugins/project/vendor/net-ssh/lib/net/ssh/loggable.rb +61 -0
  128. data/plugins/project/vendor/net-ssh/lib/net/ssh/packet.rb +102 -0
  129. data/plugins/project/vendor/net-ssh/lib/net/ssh/prompt.rb +93 -0
  130. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/command.rb +75 -0
  131. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/errors.rb +14 -0
  132. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/http.rb +94 -0
  133. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/socks4.rb +70 -0
  134. data/plugins/project/vendor/net-ssh/lib/net/ssh/proxy/socks5.rb +142 -0
  135. data/plugins/project/vendor/net-ssh/lib/net/ssh/ruby_compat.rb +43 -0
  136. data/plugins/project/vendor/net-ssh/lib/net/ssh/service/forward.rb +288 -0
  137. data/plugins/project/vendor/net-ssh/lib/net/ssh/test.rb +89 -0
  138. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/channel.rb +129 -0
  139. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/extensions.rb +152 -0
  140. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/kex.rb +44 -0
  141. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/local_packet.rb +51 -0
  142. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/packet.rb +81 -0
  143. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/remote_packet.rb +38 -0
  144. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/script.rb +157 -0
  145. data/plugins/project/vendor/net-ssh/lib/net/ssh/test/socket.rb +64 -0
  146. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/algorithms.rb +384 -0
  147. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/cipher_factory.rb +97 -0
  148. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/constants.rb +30 -0
  149. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac.rb +31 -0
  150. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/abstract.rb +79 -0
  151. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/md5.rb +12 -0
  152. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/md5_96.rb +11 -0
  153. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/none.rb +15 -0
  154. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/sha1.rb +13 -0
  155. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/hmac/sha1_96.rb +11 -0
  156. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/identity_cipher.rb +55 -0
  157. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/kex.rb +13 -0
  158. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +208 -0
  159. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +77 -0
  160. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/openssl.rb +128 -0
  161. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/packet_stream.rb +235 -0
  162. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/server_version.rb +71 -0
  163. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/session.rb +276 -0
  164. data/plugins/project/vendor/net-ssh/lib/net/ssh/transport/state.rb +206 -0
  165. data/plugins/project/vendor/net-ssh/lib/net/ssh/verifiers/lenient.rb +30 -0
  166. data/plugins/project/vendor/net-ssh/lib/net/ssh/verifiers/null.rb +12 -0
  167. data/plugins/project/vendor/net-ssh/lib/net/ssh/verifiers/strict.rb +53 -0
  168. data/plugins/project/vendor/net-ssh/lib/net/ssh/version.rb +62 -0
  169. data/plugins/project/vendor/net-ssh/net-ssh.gemspec +138 -0
  170. data/plugins/project/vendor/net-ssh/setup.rb +1585 -0
  171. data/plugins/project/vendor/net-ssh/support/arcfour_check.rb +20 -0
  172. data/plugins/project/vendor/net-ssh/support/ssh_tunnel_bug.rb +65 -0
  173. data/plugins/project/vendor/net-ssh/test/README.txt +42 -0
  174. data/plugins/project/vendor/net-ssh/test/authentication/methods/common.rb +28 -0
  175. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_abstract.rb +51 -0
  176. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_hostbased.rb +114 -0
  177. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_keyboard_interactive.rb +98 -0
  178. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_password.rb +50 -0
  179. data/plugins/project/vendor/net-ssh/test/authentication/methods/test_publickey.rb +127 -0
  180. data/plugins/project/vendor/net-ssh/test/authentication/test_agent.rb +205 -0
  181. data/plugins/project/vendor/net-ssh/test/authentication/test_key_manager.rb +105 -0
  182. data/plugins/project/vendor/net-ssh/test/authentication/test_session.rb +93 -0
  183. data/plugins/project/vendor/net-ssh/test/common.rb +107 -0
  184. data/plugins/project/vendor/net-ssh/test/configs/eqsign +3 -0
  185. data/plugins/project/vendor/net-ssh/test/configs/exact_match +8 -0
  186. data/plugins/project/vendor/net-ssh/test/configs/host_plus +10 -0
  187. data/plugins/project/vendor/net-ssh/test/configs/multihost +4 -0
  188. data/plugins/project/vendor/net-ssh/test/configs/nohost +19 -0
  189. data/plugins/project/vendor/net-ssh/test/configs/numeric_host +4 -0
  190. data/plugins/project/vendor/net-ssh/test/configs/wild_cards +14 -0
  191. data/plugins/project/vendor/net-ssh/test/connection/test_channel.rb +467 -0
  192. data/plugins/project/vendor/net-ssh/test/connection/test_session.rb +488 -0
  193. data/plugins/project/vendor/net-ssh/test/manual/test_forward.rb +185 -0
  194. data/plugins/project/vendor/net-ssh/test/test_all.rb +9 -0
  195. data/plugins/project/vendor/net-ssh/test/test_buffer.rb +336 -0
  196. data/plugins/project/vendor/net-ssh/test/test_buffered_io.rb +63 -0
  197. data/plugins/project/vendor/net-ssh/test/test_config.rb +117 -0
  198. data/plugins/project/vendor/net-ssh/test/test_key_factory.rb +67 -0
  199. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_md5.rb +39 -0
  200. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_md5_96.rb +25 -0
  201. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_none.rb +34 -0
  202. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_sha1.rb +34 -0
  203. data/plugins/project/vendor/net-ssh/test/transport/hmac/test_sha1_96.rb +25 -0
  204. data/plugins/project/vendor/net-ssh/test/transport/kex/test_diffie_hellman_group1_sha1.rb +146 -0
  205. data/plugins/project/vendor/net-ssh/test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb +92 -0
  206. data/plugins/project/vendor/net-ssh/test/transport/test_algorithms.rb +302 -0
  207. data/plugins/project/vendor/net-ssh/test/transport/test_cipher_factory.rb +213 -0
  208. data/plugins/project/vendor/net-ssh/test/transport/test_hmac.rb +34 -0
  209. data/plugins/project/vendor/net-ssh/test/transport/test_identity_cipher.rb +40 -0
  210. data/plugins/project/vendor/net-ssh/test/transport/test_packet_stream.rb +441 -0
  211. data/plugins/project/vendor/net-ssh/test/transport/test_server_version.rb +78 -0
  212. data/plugins/project/vendor/net-ssh/test/transport/test_session.rb +315 -0
  213. data/plugins/project/vendor/net-ssh/test/transport/test_state.rb +173 -0
  214. data/plugins/redcar/plugin.rb +3 -1
  215. data/plugins/redcar/redcar.rb +108 -121
  216. data/plugins/redcar_debug/lib/redcar_debug.rb +2 -0
  217. data/plugins/runnables/lib/runnables.rb +80 -23
  218. data/plugins/runnables/lib/runnables/command_output_controller.rb +102 -0
  219. data/plugins/runnables/lib/runnables/running_process_checker.rb +34 -0
  220. data/plugins/runnables/{plugin_no_load.rb → plugin.rb} +2 -1
  221. data/plugins/runnables/vendor/session-2.4.0/HISTORY +73 -0
  222. data/plugins/runnables/vendor/session-2.4.0/README +89 -0
  223. data/plugins/runnables/vendor/session-2.4.0/TODO +3 -0
  224. data/plugins/runnables/vendor/session-2.4.0/VERSION +1 -0
  225. data/plugins/runnables/vendor/session-2.4.0/gemspec.rb +22 -0
  226. data/plugins/runnables/vendor/session-2.4.0/install.rb +143 -0
  227. data/plugins/runnables/vendor/session-2.4.0/lib/session.rb +757 -0
  228. data/plugins/runnables/vendor/session-2.4.0/sample/bash.rb +60 -0
  229. data/plugins/runnables/vendor/session-2.4.0/sample/driver.rb +47 -0
  230. data/plugins/runnables/vendor/session-2.4.0/sample/session_idl.rb +25 -0
  231. data/plugins/runnables/vendor/session-2.4.0/sample/session_sh.rb +29 -0
  232. data/plugins/runnables/vendor/session-2.4.0/sample/sh0.rb +23 -0
  233. data/plugins/runnables/vendor/session-2.4.0/sample/stdin.rb +17 -0
  234. data/plugins/runnables/vendor/session-2.4.0/sample/threadtest.rb +42 -0
  235. data/plugins/runnables/vendor/session-2.4.0/session-2.4.0.gem +0 -0
  236. data/plugins/runnables/vendor/session-2.4.0/test/session.rb +227 -0
  237. data/plugins/runnables/views/command_output.html.erb +32 -0
  238. data/plugins/task_manager/lib/task_manager.rb +2 -0
  239. data/plugins/textmate/lib/textmate/plist.rb +1 -1
  240. data/plugins/textmate/lib/textmate/snippet.rb +1 -0
  241. data/plugins/tree/lib/tree/mirror.rb +8 -1
  242. data/plugins/tree_view_swt/lib/tree_view_swt.rb +29 -2
  243. metadata +191 -6
  244. data/plugins/declarations/TODO +0 -3
  245. data/plugins/redcar/spec/redcar/redcar_spec.rb +0 -70
  246. data/plugins/redcar/spec/spec_helper.rb +0 -4
data/CHANGES CHANGED
@@ -1,4 +1,20 @@
1
1
 
2
+ Version 0.3.8 (TBA)
3
+ ===================
4
+
5
+ * Can switch between open trees in a window (Dan Lucraft)
6
+ * Runnables: extensible runnable tasks/build items/tests/generators for projects. (Dan Lucraft)
7
+ * Runnables: run scripts in edit tabs as processes. (Dan Lucraft)
8
+ * Fix for: end key not working in documents with Windows-style line endings (Dan Lucraft)
9
+ * Caches downloaded jar files so that installation is faster when updating versions. (Felipe Coury)
10
+ * Fix for: dragging and dropping HtmlTabs between notebooks and windows. (Dan Lucraft)
11
+ * Select Word command (Johannes Wollert)
12
+ * Move tab up/Move tab down commands (Johannes Wollert)
13
+ * New APIs: Document#current_word, Document#word_at_offset (Johannes Wollert)
14
+ * Made the first tab open for a new install MUCH faster by generating the textmate bundle cache in the install script (Dan Lucraft)
15
+ * Search speedbar is opened with selected text as the default search (Johannes Wollert)
16
+ * Helper method for executing JavaScript in the browser during controller actions (Dan Lucraft)
17
+
2
18
  Version 0.3.7.1 (25 Jun 2010)
3
19
  =============================
4
20
 
data/README.md CHANGED
@@ -30,6 +30,11 @@ for a list of options.
30
30
  ## INSTALLING FROM SOURCE
31
31
 
32
32
  If you want to contribute to Redcar, you can install it from the source code.
33
+
34
+ If you're running Windows, as a prerequisite, you'll need to install the rubyzip gem:
35
+
36
+ $ gem install rubyzip
37
+
33
38
  Download from github, checkout the submodules and build JavaMateView. You will need Ant
34
39
  installed, and RSpec and Cucumber installed as JRuby gems.
35
40
 
data/ROADMAP.md CHANGED
@@ -2,24 +2,22 @@
2
2
  Redcar JRuby Port Roadmap
3
3
  =========================
4
4
 
5
- Features still to port
6
- -----------------------
7
-
8
- * Tests passing on 3 platforms
9
- * Full project support
10
- * Text/Source/Ruby bundle commands ported
11
- * Packaged for one-click install on 3 platforms
12
- * Ruby on Rails/HTML/CSS/YAML bundle commands ported
13
-
14
5
  Version 0.4.0
15
6
  -------------
16
7
 
17
8
  Feature parity with Redcar 0.2.
18
9
 
10
+ Remaining:
11
+ * Text/Source/Ruby bundle commands ported
12
+ * Ruby on Rails/HTML/CSS/YAML bundle commands ported
13
+
14
+
19
15
  And then for 1.0...
20
16
  -------------------
21
17
 
22
18
  * Incremental search
19
+ * Tests passing on 3 platforms
20
+ * Packaged for one-click install on 3 platforms
23
21
  * Find/Replace
24
22
  * Go to symbol
25
23
  * Command browser
data/Rakefile CHANGED
@@ -1,5 +1,4 @@
1
- REDCAR_VERSION = "0.3.7.1"
2
-
1
+ REDCAR_VERSION = "0.3.8"
3
2
  require 'rubygems'
4
3
  require 'fileutils'
5
4
  require 'spec/rake/spectask'
@@ -159,12 +158,13 @@ Rake::GemPackageTask.new(spec) do |pkg|
159
158
  end
160
159
 
161
160
  desc "Build a MacOS X App bundle"
162
- task :app_bundle do
161
+ task :app_bundle => :build do
163
162
  require 'erb'
164
163
 
165
164
  redcar_icon = "redcar_icon_beta.png"
166
165
 
167
166
  bundle_contents = File.join("pkg", "Redcar.app", "Contents")
167
+ FileUtils.rm_rf bundle_contents if File.exist? bundle_contents
168
168
  macos_dir = File.join(bundle_contents, "MacOS")
169
169
  resources_dir = File.join(bundle_contents, "Resources")
170
170
  FileUtils.mkdir_p macos_dir
@@ -202,7 +202,7 @@ task :app_bundle do
202
202
  f << '#!/bin/sh
203
203
  DIR=$(cd "$(dirname "$0")"; pwd)
204
204
  REDCAR=$(cd "$(dirname "${DIR}/../Resources/bin/redcar")"; pwd)
205
- ruby $REDCAR/redcar --ignore-stdin $@'
205
+ $REDCAR/redcar --ignore-stdin $@'
206
206
  end
207
207
  File.chmod 0777, File.join(macos_dir, "redcar")
208
208
 
@@ -211,7 +211,8 @@ task :app_bundle do
211
211
  FileUtils.cp_r f, File.join(resources_dir, f), :remove_destination => true
212
212
  end
213
213
 
214
- system "#{File.join(macos_dir, "redcar")} install"
214
+ p "Running #{File.join(resources_dir, "bin", "redcar")} install"
215
+ system "#{File.join(resources_dir, "bin", "redcar")} install"
215
216
 
216
217
  FileUtils.cp_r File.join(resources_dir, "plugins", "application", "icons", redcar_icon),
217
218
  resources_dir, :remove_destination => true
@@ -288,32 +289,64 @@ task :release => :gem do
288
289
  AWS::S3::S3Object.store("redcar-#{REDCAR_VERSION}.gem", open(file), 'redcar', :access => :public_read)
289
290
  end
290
291
 
291
- def hash_with_hash_default
292
- Hash.new {|h,k| h[k] = hash_with_hash_default }
293
- end
294
-
295
292
  namespace :redcar do
293
+ def hash_with_hash_default
294
+ Hash.new {|h,k| h[k] = hash_with_hash_default }
295
+ end
296
+
297
+ require 'json'
298
+
296
299
  desc "Redcar Integration: output runnable info"
297
300
  task :runnables do
298
- mkdir_p(".redcar")
301
+ mkdir_p(".redcar/runnables")
299
302
  puts "Creating runnables"
303
+ File.open(".redcar/runnables/sync_stdout.rb", "w") do |fout|
304
+ fout.puts <<-RUBY
305
+ $stdout.sync = true
306
+ $stderr.sync = true
307
+ RUBY
308
+ end
300
309
 
301
310
  tasks = Rake::Task.tasks
302
- bin = File.join(Config::CONFIG["bindir"], "rake")
303
- runnables = hash_with_hash_default
311
+ runnables = []
312
+ ruby_bin = Config::CONFIG["bindir"] + "/ruby -r#{File.dirname(__FILE__)}/.redcar/runnables/sync_stdout.rb "
304
313
  tasks.each do |task|
305
- bits = task.name.split(":")
306
- namespace = runnables
307
- while bits.length > 1
308
- namespace = namespace[bits.shift]
309
- end
310
- command = bin + " " + task.name
311
- namespace[bits.shift] = {:command => command, :desc => task.comment}
314
+ name = task.name.gsub(":", "/")
315
+ command = ruby_bin + $0 + " " + task.name
316
+ runnables << {
317
+ "name" => name,
318
+ "command" => command,
319
+ "description" => task.comment,
320
+ "type" => "task/ruby/rake"
321
+ }
322
+ end
323
+ File.open(".redcar/runnables/rake.json", "w") do |f|
324
+ data = {"commands" => runnables}
325
+ f.puts(JSON.pretty_generate(data))
312
326
  end
313
- p runnables
314
- File.open(".redcar/runnables", "w") do |f|
315
- f.puts runnables.to_yaml
327
+ File.open(".redcar/runnables/ruby.json", "w") do |f|
328
+ data = {"file_runners" =>
329
+ [
330
+ {
331
+ "regex" => ".*.rb$",
332
+ "name" => "Run as ruby",
333
+ "command" => ruby_bin + "__PATH__",
334
+ "type" => "script/ruby"
335
+ }
336
+ ]
337
+ }
338
+ f.puts(JSON.pretty_generate(data))
339
+ end
340
+ end
341
+
342
+ task :sample do
343
+ 5.times do |i|
344
+ puts "out#{i}"
345
+ sleep 1
346
+ $stderr.puts "err#{i}"
347
+ sleep 1
316
348
  end
349
+ FileUtils.touch("finished_process")
317
350
  end
318
351
  end
319
352
 
@@ -41,10 +41,10 @@ require 'uri'
41
41
  #
42
42
  # and so on.
43
43
  module Redcar
44
- VERSION = '0.3.7.1'
44
+ VERSION = '0.3.8'
45
45
  VERSION_MAJOR = 0
46
46
  VERSION_MINOR = 3
47
- VERSION_RELEASE = 7
47
+ VERSION_RELEASE = 8
48
48
 
49
49
  ENVIRONMENTS = [:user, :debug, :test]
50
50
 
@@ -138,16 +138,22 @@ module Redcar
138
138
  :test => ".redcar_test",
139
139
  :debug => ".redcar_debug"
140
140
  }[Redcar.environment]
141
+ File.expand_path(File.join(home_dir, dirname))
142
+ end
143
+
144
+ # Platform specific ~/
145
+ #
146
+ # @return [String] expanded path
147
+ def self.home_dir
141
148
  if platform == :windows
142
149
  if ENV['USERPROFILE'].nil?
143
- userdir = "C:/My Documents/#{dirname}/"
150
+ userdir = "C:/My Documents/"
144
151
  else
145
- userdir = File.join(ENV['USERPROFILE'], dirname)
152
+ userdir = ENV['USERPROFILE']
146
153
  end
147
154
  else
148
- userdir = File.join(ENV['HOME'], dirname) unless ENV['HOME'].nil?
155
+ userdir = ENV['HOME'] unless ENV['HOME'].nil?
149
156
  end
150
- File.expand_path(userdir)
151
157
  end
152
158
 
153
159
  class << self
@@ -18,6 +18,26 @@ module Redcar
18
18
  end
19
19
  end
20
20
 
21
+ def install
22
+ unless File.writable?(JRUBY_JAR_DIR)
23
+ puts "Don't have permission to write to #{JRUBY_JAR_DIR}. Please rerun with sudo."
24
+ exit 1
25
+ end
26
+ Redcar.environment = :user
27
+ puts "Downloading >10MB of jar files. This may take a while."
28
+ grab_jruby
29
+ grab_common_jars
30
+ grab_platform_dependencies
31
+ grab_redcar_jars
32
+ puts "Building textmate bundle cache"
33
+ s = Time.now
34
+ load_textmate_bundles
35
+ puts "... took #{Time.now - s}s"
36
+ fix_user_dir_permissions
37
+ puts
38
+ puts "Done! You're ready to run Redcar."
39
+ end
40
+
21
41
  def associate_with_any_right_click
22
42
  raise 'this is currently only for windows' unless Redcar.platform == :windows
23
43
  require 'rbconfig'
@@ -38,20 +58,6 @@ module Redcar
38
58
  puts 'Associated.'
39
59
  end
40
60
 
41
- def install
42
- unless File.writable?(JRUBY_JAR_DIR)
43
- puts "Don't have permission to write to #{JRUBY_JAR_DIR}. Please rerun with sudo."
44
- exit 1
45
- end
46
- puts "Downloading >10MB of jar files. This may take a while."
47
- grab_jruby
48
- grab_common_jars
49
- grab_platform_dependencies
50
- grab_redcar_jars
51
- puts
52
- puts "Done! You're ready to run Redcar."
53
- end
54
-
55
61
  def plugins_dir
56
62
  File.expand_path(File.join(File.dirname(__FILE__), %w(.. .. plugins)))
57
63
  end
@@ -71,6 +77,10 @@ module Redcar
71
77
  /jface/org.eclipse.core.jobs.jar
72
78
  )
73
79
 
80
+ def redcar_jars_dir
81
+ File.expand_path(File.join(Redcar.user_dir, "jars"))
82
+ end
83
+
74
84
  JRUBY_JAR_DIR = File.expand_path(File.join(File.dirname(__FILE__), ".."))
75
85
 
76
86
  JRUBY = [
@@ -81,59 +91,67 @@ module Redcar
81
91
 
82
92
  JRUBY << "http://jruby.org.s3.amazonaws.com/downloads/1.5.0/jruby-complete-1.5.0.jar"
83
93
 
94
+ JOPENSSL_DIR = "lib/openssl/lib/"
84
95
  JOPENSSL = {
85
- "/jruby/bcmail-jdk14-139-#{Redcar::VERSION}.jar" => "lib/openssl/lib/bcmail-jdk14-139.jar",
86
- "/jruby/bcprov-jdk14-139-#{Redcar::VERSION}.jar" => "lib/openssl/lib/bcprov-jdk14-139.jar",
87
- "/jruby/jopenssl-#{Redcar::VERSION}.jar" => "lib/openssl/lib/jopenssl.jar",
96
+ "/jruby/bcmail-jdk14-139-#{Redcar::VERSION}.jar" => "bcmail-jdk14-139.jar",
97
+ "/jruby/bcprov-jdk14-139-#{Redcar::VERSION}.jar" => "bcprov-jdk14-139.jar",
98
+ "/jruby/jopenssl-#{Redcar::VERSION}.jar" => "jopenssl.jar",
88
99
  }
89
100
 
90
101
  REDCAR_JARS = {
91
102
  "/java-mateview-#{Redcar::VERSION}.jar" => "plugins/edit_view_swt/vendor/java-mateview.jar",
92
- "/application-swt-#{Redcar::VERSION}.jar" => "plugins/application_swt/lib/dist/application_swt.jar"
103
+ "/application_swt-#{Redcar::VERSION}.jar" => "plugins/application_swt/lib/dist/application_swt.jar"
93
104
  }
94
105
 
95
106
  XULRUNNER_URI = "http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2/runtimes/xulrunner-1.9.2.en-US.win32.zip"
96
107
 
108
+ SWT_JARS = {
109
+ :osx => {
110
+ "/swt/osx.jar" => "osx/swt.jar",
111
+ "/swt/osx64.jar" => "osx64/swt.jar"
112
+ },
113
+ :linux => {
114
+ "/swt/linux.jar" => "linux/swt.jar",
115
+ "/swt/linux64.jar" => "linux64/swt.jar"
116
+ },
117
+ :windows => {
118
+ "/swt/win32.jar" => "win32/swt.jar",
119
+ }
120
+ }
121
+
97
122
  def grab_jruby
98
- puts "* Downloading JRuby"
99
- JRUBY.each do |jar_url|
100
- download(jar_url, File.join(JRUBY_JAR_DIR, File.basename(jar_url)))
101
- end
102
- JOPENSSL.each do |jar_url, relative_path|
103
- download(jar_url, File.join(File.dirname(__FILE__), "..", "..", relative_path))
104
- end
123
+ puts "* Checking JRuby dependencies"
124
+
125
+ setup "jruby", :resources => JRUBY, :path => JRUBY_JAR_DIR
126
+ setup "jopenssl", :resources => JOPENSSL, :path => JOPENSSL_DIR
105
127
  end
106
128
 
107
129
  def grab_common_jars
108
- puts "* Downloading common jars"
109
- JFACE.each do |jar_url|
110
- download(jar_url, File.join(plugins_dir, %w(application_swt vendor jface), File.basename(jar_url)))
111
- end
130
+ puts "* Checking common jars"
131
+
132
+ setup "jface", :resources => JFACE, :path => File.join(plugins_dir, %w(application_swt vendor jface))
112
133
  end
113
134
 
114
135
  def grab_platform_dependencies
115
- puts "* Downloading platform-specific SWT jars"
136
+ puts "* Checking platform-specific SWT jars"
116
137
  case Config::CONFIG["host_os"]
117
138
  when /darwin/i
118
- download("/swt/osx.jar", File.join(plugins_dir, %w(application_swt vendor swt osx swt.jar)))
119
- download("/swt/osx64.jar", File.join(plugins_dir, %w(application_swt vendor swt osx64 swt.jar)))
139
+ setup "swt", :resources => SWT_JARS[:osx], :path => File.join(plugins_dir, %w(application_swt vendor swt))
140
+
120
141
  when /linux/i
121
- download("/swt/linux.jar", File.join(plugins_dir, %w(application_swt vendor swt linux swt.jar)))
122
- download("/swt/linux64.jar", File.join(plugins_dir, %w(application_swt vendor swt linux64 swt.jar)))
123
- when /windows|mswin|mingw/i
124
- download("/swt/win32.jar", File.join(plugins_dir, %w(application_swt vendor swt win32 swt.jar)))
125
- # download("/swt/win64.jar", File.join(plugins_dir, %w(application_swt vendor swt win64 swt.jar)))
126
- vendor_dir = File.expand_path(File.join(File.dirname(__FILE__), %w(.. .. vendor)))
142
+ setup "swt", :resources => SWT_JARS[:linux], :path => File.join(plugins_dir, %w(application_swt vendor swt))
127
143
 
128
- download(XULRUNNER_URI, File.join(vendor_dir, 'xulrunner.zip'))
144
+ when /windows|mswin|mingw/i
145
+ setup "swt", :resources => SWT_JARS[:windows], :path => File.join(plugins_dir, %w(application_swt vendor swt))
146
+ setup "swt", :resources => [XULRUNNER_URI], :path => File.expand_path(File.join(File.dirname(__FILE__), %w(.. .. vendor)))
147
+ link( File.join(redcar_jars_dir, "swt", "xulrunner"),
148
+ File.expand_path(File.join(File.dirname(__FILE__), %w(.. .. vendor xulrunner))))
129
149
  end
130
150
  end
131
151
 
132
152
  def grab_redcar_jars
133
- puts "* Downloading Redcar jars"
134
- REDCAR_JARS.each do |jar_url, relative_path|
135
- download(jar_url, File.join(File.dirname(__FILE__), "..", "..", relative_path))
136
- end
153
+ puts "* Checking Redcar jars"
154
+ setup "redcar", :resources => REDCAR_JARS, :path => File.join(File.dirname(__FILE__), "..", "..")
137
155
  end
138
156
 
139
157
  def download(uri, path)
@@ -150,7 +168,48 @@ module Redcar
150
168
  Installer.unzip_file(path)
151
169
  end
152
170
 
153
- puts " downloaded #{uri}\n to #{path}\n"
171
+ # puts " downloaded #{uri}\n to #{path}\n"
172
+ end
173
+
174
+ def setup(name, options)
175
+ resources = options.delete(:resources)
176
+ path = options.delete(:path)
177
+
178
+ if resources.is_a?(Array)
179
+ resources.each do |resource|
180
+ setup_resource name, path, resource, File.basename(resource)
181
+ end
182
+ else
183
+ resources.each_pair do |url, save_as|
184
+ setup_resource name, path, url, save_as
185
+ end
186
+ end
187
+ end
188
+
189
+ def setup_resource(name, path, url, save_as)
190
+ target = File.join(path, save_as)
191
+ return if File.exist?(target)
192
+
193
+ cached = File.join(redcar_jars_dir, name, save_as)
194
+ unless File.exists?(cached)
195
+ print " downloading #{File.basename(cached)}... "
196
+ download(url, cached)
197
+ puts "done!"
198
+ end
199
+
200
+ FileUtils.mkdir_p File.dirname(target)
201
+ link(cached, target)
202
+ end
203
+
204
+ def link(cached, target)
205
+ # Windoze doesn't support FileUtils.ln_sf, so we copy the files
206
+ if Config::CONFIG["host_os"] =~ /windows|mswin|mingw/i
207
+ puts " copying #{File.basename(cached)}..."
208
+ FileUtils.cp_r cached, target
209
+ else
210
+ puts " linking #{File.basename(cached)}..."
211
+ FileUtils.ln_sf cached, target
212
+ end
154
213
  end
155
214
 
156
215
  # unzip a .zip file into the directory it is located
@@ -168,6 +227,22 @@ module Redcar
168
227
  end
169
228
  end
170
229
  end
230
+
231
+ def load_textmate_bundles
232
+ $:.unshift("#{File.dirname(__FILE__)}/../../plugins/core/lib")
233
+ $:.unshift("#{File.dirname(__FILE__)}/../../plugins/textmate/lib")
234
+ require 'core'
235
+ Redcar.environment = :user
236
+ Core.loaded
237
+ require 'textmate'
238
+ Redcar::Textmate.all_bundles
239
+ end
240
+
241
+ def fix_user_dir_permissions
242
+ desired_uid = File.stat(Redcar.home_dir).uid
243
+ desired_gid = File.stat(Redcar.home_dir).gid
244
+ FileUtils.chown_R(desired_uid, desired_gid.to_s, Redcar.user_dir)
245
+ end
171
246
  end
172
247
  end
173
248