redcar 0.3.7.1 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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