marty 0.5.12

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 (345) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +84 -0
  4. data/Rakefile +29 -0
  5. data/app/assets/javascripts/marty/application.js +15 -0
  6. data/app/assets/stylesheets/marty/application.css +13 -0
  7. data/app/components/marty/api_auth_view.rb +32 -0
  8. data/app/components/marty/auth_app.rb +55 -0
  9. data/app/components/marty/auth_app.rb~ +51 -0
  10. data/app/components/marty/auth_app/javascripts/auth_app.js +91 -0
  11. data/app/components/marty/auth_app/javascripts/auth_app.js~ +91 -0
  12. data/app/components/marty/cm_form_panel.rb~ +5 -0
  13. data/app/components/marty/cm_grid_panel.rb~ +35 -0
  14. data/app/components/marty/data_import_view.rb~ +142 -0
  15. data/app/components/marty/extras/layout.rb +46 -0
  16. data/app/components/marty/extras/layout.rb~ +46 -0
  17. data/app/components/marty/extras/misc.rb +18 -0
  18. data/app/components/marty/form.rb +6 -0
  19. data/app/components/marty/grid.rb +45 -0
  20. data/app/components/marty/grid_append_only.rb +12 -0
  21. data/app/components/marty/import_type_view.rb +53 -0
  22. data/app/components/marty/live_search_grid_panel.rb +46 -0
  23. data/app/components/marty/live_search_grid_panel.rb~ +49 -0
  24. data/app/components/marty/main_auth_app.rb +269 -0
  25. data/app/components/marty/main_auth_app.rb~ +238 -0
  26. data/app/components/marty/mcfly_grid_panel.rb +62 -0
  27. data/app/components/marty/mcfly_grid_panel.rb~ +80 -0
  28. data/app/components/marty/new_posting_form.rb +46 -0
  29. data/app/components/marty/new_posting_form.rb~ +46 -0
  30. data/app/components/marty/new_posting_window.rb +21 -0
  31. data/app/components/marty/new_posting_window.rb~ +21 -0
  32. data/app/components/marty/panel.rb +12 -0
  33. data/app/components/marty/pivot_grid.rb +52 -0
  34. data/app/components/marty/pivot_grid/endpoints.rb +45 -0
  35. data/app/components/marty/pivot_grid/javascripts/extensions.js +150 -0
  36. data/app/components/marty/pivot_grid/javascripts/pivot_grid.js +86 -0
  37. data/app/components/marty/pivot_grid/services.rb +44 -0
  38. data/app/components/marty/posting_grid.rb +139 -0
  39. data/app/components/marty/posting_grid.rb~ +140 -0
  40. data/app/components/marty/posting_window.rb +27 -0
  41. data/app/components/marty/promise_view.rb +177 -0
  42. data/app/components/marty/promise_view.rb~ +157 -0
  43. data/app/components/marty/promise_view/stylesheets/promise_view.css +26 -0
  44. data/app/components/marty/promise_view/stylesheets/promise_view.css~ +15 -0
  45. data/app/components/marty/report_form.rb +225 -0
  46. data/app/components/marty/report_form.rb~ +217 -0
  47. data/app/components/marty/report_select.rb +145 -0
  48. data/app/components/marty/report_select.rb~ +133 -0
  49. data/app/components/marty/reporting.rb +39 -0
  50. data/app/components/marty/reporting.rb~ +39 -0
  51. data/app/components/marty/script_detail.rb~ +430 -0
  52. data/app/components/marty/script_form.rb +233 -0
  53. data/app/components/marty/script_form.rb~ +233 -0
  54. data/app/components/marty/script_form/javascripts/Ext.ux.form.field.CodeMirror.js +698 -0
  55. data/app/components/marty/script_form/javascripts/Ext.ux.form.field.CodeMirror.js~ +909 -0
  56. data/app/components/marty/script_form/javascripts/codemirror.js +3130 -0
  57. data/app/components/marty/script_form/javascripts/mode/clike/clike.js +284 -0
  58. data/app/components/marty/script_form/javascripts/mode/clike/index.html +102 -0
  59. data/app/components/marty/script_form/javascripts/mode/clike/scala.html +766 -0
  60. data/app/components/marty/script_form/javascripts/mode/clojure/clojure.js +206 -0
  61. data/app/components/marty/script_form/javascripts/mode/clojure/index.html +67 -0
  62. data/app/components/marty/script_form/javascripts/mode/coffeescript/LICENSE +22 -0
  63. data/app/components/marty/script_form/javascripts/mode/coffeescript/coffeescript.js +346 -0
  64. data/app/components/marty/script_form/javascripts/mode/coffeescript/index.html +728 -0
  65. data/app/components/marty/script_form/javascripts/mode/commonlisp/commonlisp.js +101 -0
  66. data/app/components/marty/script_form/javascripts/mode/commonlisp/index.html +165 -0
  67. data/app/components/marty/script_form/javascripts/mode/css/css.js +448 -0
  68. data/app/components/marty/script_form/javascripts/mode/css/index.html +58 -0
  69. data/app/components/marty/script_form/javascripts/mode/css/test.js +501 -0
  70. data/app/components/marty/script_form/javascripts/mode/delorean/delorean.js +189 -0
  71. data/app/components/marty/script_form/javascripts/mode/diff/diff.js +32 -0
  72. data/app/components/marty/script_form/javascripts/mode/diff/index.html +105 -0
  73. data/app/components/marty/script_form/javascripts/mode/ecl/ecl.js +203 -0
  74. data/app/components/marty/script_form/javascripts/mode/ecl/index.html +42 -0
  75. data/app/components/marty/script_form/javascripts/mode/erlang/erlang.js +463 -0
  76. data/app/components/marty/script_form/javascripts/mode/erlang/index.html +63 -0
  77. data/app/components/marty/script_form/javascripts/mode/gfm/gfm.js +150 -0
  78. data/app/components/marty/script_form/javascripts/mode/gfm/index.html +48 -0
  79. data/app/components/marty/script_form/javascripts/mode/go/go.js +170 -0
  80. data/app/components/marty/script_form/javascripts/mode/go/index.html +73 -0
  81. data/app/components/marty/script_form/javascripts/mode/groovy/groovy.js +210 -0
  82. data/app/components/marty/script_form/javascripts/mode/groovy/index.html +72 -0
  83. data/app/components/marty/script_form/javascripts/mode/haskell/haskell.js +242 -0
  84. data/app/components/marty/script_form/javascripts/mode/haskell/index.html +61 -0
  85. data/app/components/marty/script_form/javascripts/mode/haxe/haxe.js +429 -0
  86. data/app/components/marty/script_form/javascripts/mode/haxe/index.html +91 -0
  87. data/app/components/marty/script_form/javascripts/mode/htmlembedded/htmlembedded.js +72 -0
  88. data/app/components/marty/script_form/javascripts/mode/htmlembedded/index.html +50 -0
  89. data/app/components/marty/script_form/javascripts/mode/htmlmixed/htmlmixed.js +84 -0
  90. data/app/components/marty/script_form/javascripts/mode/htmlmixed/index.html +52 -0
  91. data/app/components/marty/script_form/javascripts/mode/javascript/index.html +78 -0
  92. data/app/components/marty/script_form/javascripts/mode/javascript/javascript.js +361 -0
  93. data/app/components/marty/script_form/javascripts/mode/jinja2/index.html +38 -0
  94. data/app/components/marty/script_form/javascripts/mode/jinja2/jinja2.js +42 -0
  95. data/app/components/marty/script_form/javascripts/mode/less/index.html +740 -0
  96. data/app/components/marty/script_form/javascripts/mode/less/less.js +266 -0
  97. data/app/components/marty/script_form/javascripts/mode/lua/index.html +73 -0
  98. data/app/components/marty/script_form/javascripts/mode/lua/lua.js +140 -0
  99. data/app/components/marty/script_form/javascripts/mode/markdown/index.html +343 -0
  100. data/app/components/marty/script_form/javascripts/mode/markdown/markdown.js +382 -0
  101. data/app/components/marty/script_form/javascripts/mode/markdown/test.js +1084 -0
  102. data/app/components/marty/script_form/javascripts/mode/mysql/index.html +42 -0
  103. data/app/components/marty/script_form/javascripts/mode/mysql/mysql.js +186 -0
  104. data/app/components/marty/script_form/javascripts/mode/ntriples/index.html +33 -0
  105. data/app/components/marty/script_form/javascripts/mode/ntriples/ntriples.js +172 -0
  106. data/app/components/marty/script_form/javascripts/mode/ocaml/index.html +130 -0
  107. data/app/components/marty/script_form/javascripts/mode/ocaml/ocaml.js +114 -0
  108. data/app/components/marty/script_form/javascripts/mode/pascal/LICENSE +7 -0
  109. data/app/components/marty/script_form/javascripts/mode/pascal/index.html +49 -0
  110. data/app/components/marty/script_form/javascripts/mode/pascal/pascal.js +94 -0
  111. data/app/components/marty/script_form/javascripts/mode/perl/LICENSE +19 -0
  112. data/app/components/marty/script_form/javascripts/mode/perl/index.html +63 -0
  113. data/app/components/marty/script_form/javascripts/mode/perl/perl.js +816 -0
  114. data/app/components/marty/script_form/javascripts/mode/php/index.html +49 -0
  115. data/app/components/marty/script_form/javascripts/mode/php/php.js +148 -0
  116. data/app/components/marty/script_form/javascripts/mode/pig/index.html +43 -0
  117. data/app/components/marty/script_form/javascripts/mode/pig/pig.js +172 -0
  118. data/app/components/marty/script_form/javascripts/mode/plsql/index.html +63 -0
  119. data/app/components/marty/script_form/javascripts/mode/plsql/plsql.js +217 -0
  120. data/app/components/marty/script_form/javascripts/mode/properties/index.html +41 -0
  121. data/app/components/marty/script_form/javascripts/mode/properties/properties.js +63 -0
  122. data/app/components/marty/script_form/javascripts/mode/python/LICENSE.txt +21 -0
  123. data/app/components/marty/script_form/javascripts/mode/python/index.html +123 -0
  124. data/app/components/marty/script_form/javascripts/mode/python/python.js +338 -0
  125. data/app/components/marty/script_form/javascripts/mode/r/LICENSE +24 -0
  126. data/app/components/marty/script_form/javascripts/mode/r/index.html +74 -0
  127. data/app/components/marty/script_form/javascripts/mode/r/r.js +141 -0
  128. data/app/components/marty/script_form/javascripts/mode/rpm/changes/changes.js +19 -0
  129. data/app/components/marty/script_form/javascripts/mode/rpm/changes/index.html +54 -0
  130. data/app/components/marty/script_form/javascripts/mode/rpm/spec/index.html +100 -0
  131. data/app/components/marty/script_form/javascripts/mode/rpm/spec/spec.css +5 -0
  132. data/app/components/marty/script_form/javascripts/mode/rpm/spec/spec.js +66 -0
  133. data/app/components/marty/script_form/javascripts/mode/rst/index.html +526 -0
  134. data/app/components/marty/script_form/javascripts/mode/rst/rst.js +326 -0
  135. data/app/components/marty/script_form/javascripts/mode/ruby/LICENSE +24 -0
  136. data/app/components/marty/script_form/javascripts/mode/ruby/index.html +172 -0
  137. data/app/components/marty/script_form/javascripts/mode/ruby/ruby.js +195 -0
  138. data/app/components/marty/script_form/javascripts/mode/rust/index.html +49 -0
  139. data/app/components/marty/script_form/javascripts/mode/rust/rust.js +432 -0
  140. data/app/components/marty/script_form/javascripts/mode/scheme/index.html +65 -0
  141. data/app/components/marty/script_form/javascripts/mode/scheme/scheme.js +230 -0
  142. data/app/components/marty/script_form/javascripts/mode/shell/index.html +50 -0
  143. data/app/components/marty/script_form/javascripts/mode/shell/shell.js +118 -0
  144. data/app/components/marty/script_form/javascripts/mode/sieve/LICENSE +23 -0
  145. data/app/components/marty/script_form/javascripts/mode/sieve/index.html +81 -0
  146. data/app/components/marty/script_form/javascripts/mode/sieve/sieve.js +156 -0
  147. data/app/components/marty/script_form/javascripts/mode/smalltalk/index.html +56 -0
  148. data/app/components/marty/script_form/javascripts/mode/smalltalk/smalltalk.js +139 -0
  149. data/app/components/marty/script_form/javascripts/mode/smarty/index.html +83 -0
  150. data/app/components/marty/script_form/javascripts/mode/smarty/smarty.js +148 -0
  151. data/app/components/marty/script_form/javascripts/mode/sparql/index.html +41 -0
  152. data/app/components/marty/script_form/javascripts/mode/sparql/sparql.js +143 -0
  153. data/app/components/marty/script_form/javascripts/mode/stex/index.html +98 -0
  154. data/app/components/marty/script_form/javascripts/mode/stex/stex.js +182 -0
  155. data/app/components/marty/script_form/javascripts/mode/stex/test.js +343 -0
  156. data/app/components/marty/script_form/javascripts/mode/tiddlywiki/index.html +141 -0
  157. data/app/components/marty/script_form/javascripts/mode/tiddlywiki/tiddlywiki.css +14 -0
  158. data/app/components/marty/script_form/javascripts/mode/tiddlywiki/tiddlywiki.js +384 -0
  159. data/app/components/marty/script_form/javascripts/mode/tiki/index.html +83 -0
  160. data/app/components/marty/script_form/javascripts/mode/tiki/tiki.css +26 -0
  161. data/app/components/marty/script_form/javascripts/mode/tiki/tiki.js +309 -0
  162. data/app/components/marty/script_form/javascripts/mode/vb/LICENSE.txt +21 -0
  163. data/app/components/marty/script_form/javascripts/mode/vb/index.html +89 -0
  164. data/app/components/marty/script_form/javascripts/mode/vb/vb.js +260 -0
  165. data/app/components/marty/script_form/javascripts/mode/vbscript/index.html +43 -0
  166. data/app/components/marty/script_form/javascripts/mode/vbscript/vbscript.js +26 -0
  167. data/app/components/marty/script_form/javascripts/mode/velocity/index.html +104 -0
  168. data/app/components/marty/script_form/javascripts/mode/velocity/velocity.js +146 -0
  169. data/app/components/marty/script_form/javascripts/mode/verilog/index.html +211 -0
  170. data/app/components/marty/script_form/javascripts/mode/verilog/verilog.js +194 -0
  171. data/app/components/marty/script_form/javascripts/mode/xml/index.html +45 -0
  172. data/app/components/marty/script_form/javascripts/mode/xml/xml.js +318 -0
  173. data/app/components/marty/script_form/javascripts/mode/xquery/LICENSE +20 -0
  174. data/app/components/marty/script_form/javascripts/mode/xquery/index.html +223 -0
  175. data/app/components/marty/script_form/javascripts/mode/xquery/test/index.html +27 -0
  176. data/app/components/marty/script_form/javascripts/mode/xquery/test/testBase.js +42 -0
  177. data/app/components/marty/script_form/javascripts/mode/xquery/test/testEmptySequenceKeyword.js +16 -0
  178. data/app/components/marty/script_form/javascripts/mode/xquery/test/testMultiAttr.js +16 -0
  179. data/app/components/marty/script_form/javascripts/mode/xquery/test/testNamespaces.js +91 -0
  180. data/app/components/marty/script_form/javascripts/mode/xquery/test/testProcessingInstructions.js +16 -0
  181. data/app/components/marty/script_form/javascripts/mode/xquery/test/testQuotes.js +19 -0
  182. data/app/components/marty/script_form/javascripts/mode/xquery/xquery.js +451 -0
  183. data/app/components/marty/script_form/javascripts/mode/yaml/index.html +68 -0
  184. data/app/components/marty/script_form/javascripts/mode/yaml/yaml.js +95 -0
  185. data/app/components/marty/script_form/javascripts/util/closetag.js +164 -0
  186. data/app/components/marty/script_form/javascripts/util/dialog.css +27 -0
  187. data/app/components/marty/script_form/javascripts/util/dialog.js +70 -0
  188. data/app/components/marty/script_form/javascripts/util/foldcode.js +196 -0
  189. data/app/components/marty/script_form/javascripts/util/formatting.js +193 -0
  190. data/app/components/marty/script_form/javascripts/util/javascript-hint.js +134 -0
  191. data/app/components/marty/script_form/javascripts/util/loadmode.js +51 -0
  192. data/app/components/marty/script_form/javascripts/util/match-highlighter.js +44 -0
  193. data/app/components/marty/script_form/javascripts/util/multiplex.js +77 -0
  194. data/app/components/marty/script_form/javascripts/util/overlay.js +54 -0
  195. data/app/components/marty/script_form/javascripts/util/pig-hint.js +123 -0
  196. data/app/components/marty/script_form/javascripts/util/runmode-standalone.js +90 -0
  197. data/app/components/marty/script_form/javascripts/util/runmode.js +53 -0
  198. data/app/components/marty/script_form/javascripts/util/search.js +118 -0
  199. data/app/components/marty/script_form/javascripts/util/searchcursor.js +119 -0
  200. data/app/components/marty/script_form/javascripts/util/simple-hint.css +16 -0
  201. data/app/components/marty/script_form/javascripts/util/simple-hint.js +97 -0
  202. data/app/components/marty/script_form/javascripts/util/xml-hint.js +137 -0
  203. data/app/components/marty/script_form/stylesheets/codemirror.css +172 -0
  204. data/app/components/marty/script_form/stylesheets/delorean.css +10 -0
  205. data/app/components/marty/script_form/stylesheets/theme/ambiance.css +81 -0
  206. data/app/components/marty/script_form/stylesheets/theme/blackboard.css +25 -0
  207. data/app/components/marty/script_form/stylesheets/theme/cobalt.css +18 -0
  208. data/app/components/marty/script_form/stylesheets/theme/eclipse.css +25 -0
  209. data/app/components/marty/script_form/stylesheets/theme/elegant.css +10 -0
  210. data/app/components/marty/script_form/stylesheets/theme/erlang-dark.css +21 -0
  211. data/app/components/marty/script_form/stylesheets/theme/lesser-dark.css +44 -0
  212. data/app/components/marty/script_form/stylesheets/theme/monokai.css +28 -0
  213. data/app/components/marty/script_form/stylesheets/theme/neat.css +9 -0
  214. data/app/components/marty/script_form/stylesheets/theme/night.css +21 -0
  215. data/app/components/marty/script_form/stylesheets/theme/rubyblue.css +21 -0
  216. data/app/components/marty/script_form/stylesheets/theme/vibrant-ink.css +27 -0
  217. data/app/components/marty/script_form/stylesheets/theme/xq-dark.css +46 -0
  218. data/app/components/marty/script_grid.rb +104 -0
  219. data/app/components/marty/script_grid.rb~ +99 -0
  220. data/app/components/marty/script_tester.rb +114 -0
  221. data/app/components/marty/script_tester.rb~ +213 -0
  222. data/app/components/marty/scripting.rb +132 -0
  223. data/app/components/marty/scripting.rb~ +124 -0
  224. data/app/components/marty/select_report.rb~ +143 -0
  225. data/app/components/marty/simple_app.rb +97 -0
  226. data/app/components/marty/simple_app.rb~ +101 -0
  227. data/app/components/marty/simple_app/javascripts/simple_app.js +50 -0
  228. data/app/components/marty/simple_app/javascripts/statusbar_ext.js +8 -0
  229. data/app/components/marty/tag_grid.rb +83 -0
  230. data/app/components/marty/tag_grid.rb~ +89 -0
  231. data/app/components/marty/tree_panel.rb~ +256 -0
  232. data/app/components/marty/tree_panel/javascripts/tree_panel.js~ +317 -0
  233. data/app/components/marty/user_pivot.rb +128 -0
  234. data/app/components/marty/user_view.rb +181 -0
  235. data/app/components/marty/user_view.rb~ +188 -0
  236. data/app/controllers/marty/application_controller.rb +124 -0
  237. data/app/controllers/marty/application_controller.rb~ +133 -0
  238. data/app/controllers/marty/components_controller.rb +41 -0
  239. data/app/controllers/marty/components_controller.rb~ +37 -0
  240. data/app/controllers/marty/job_controller.rb +28 -0
  241. data/app/controllers/marty/job_controller.rb~ +28 -0
  242. data/app/controllers/marty/rpc_controller.rb +64 -0
  243. data/app/controllers/marty/rpc_controller.rb~ +61 -0
  244. data/app/helpers/marty/application_helper.rb +4 -0
  245. data/app/helpers/marty/script_set.rb +57 -0
  246. data/app/helpers/marty/script_set.rb~ +59 -0
  247. data/app/models/marty/api_auth.rb +44 -0
  248. data/app/models/marty/api_auth.rb~ +48 -0
  249. data/app/models/marty/base.rb +4 -0
  250. data/app/models/marty/data_change.rb +179 -0
  251. data/app/models/marty/data_change.rb~ +141 -0
  252. data/app/models/marty/enum.rb +22 -0
  253. data/app/models/marty/enum.rb~ +16 -0
  254. data/app/models/marty/import_type.rb +44 -0
  255. data/app/models/marty/import_type.rb~ +48 -0
  256. data/app/models/marty/poop.rb~ +169 -0
  257. data/app/models/marty/posting.rb +101 -0
  258. data/app/models/marty/posting.rb~ +86 -0
  259. data/app/models/marty/posting_type.rb +12 -0
  260. data/app/models/marty/posting_type.rb~ +21 -0
  261. data/app/models/marty/promise.rb +252 -0
  262. data/app/models/marty/promise.rb~ +196 -0
  263. data/app/models/marty/role.rb +6 -0
  264. data/app/models/marty/role.rb~ +10 -0
  265. data/app/models/marty/script.rb +144 -0
  266. data/app/models/marty/script.rb~ +62 -0
  267. data/app/models/marty/tag.rb +96 -0
  268. data/app/models/marty/tag.rb~ +91 -0
  269. data/app/models/marty/token.rb +30 -0
  270. data/app/models/marty/user.rb +146 -0
  271. data/app/models/marty/user.rb~ +148 -0
  272. data/app/models/marty/user_role.rb +7 -0
  273. data/app/models/marty/user_role.rb~ +13 -0
  274. data/app/views/layouts/marty/application.html.erb +12 -0
  275. data/app/views/layouts/marty/application.html.erb~ +11 -0
  276. data/config/locales/en.yml +134 -0
  277. data/config/routes.rb +6 -0
  278. data/config/routes.rb~ +10 -0
  279. data/db/migrate/001_create_marty_scripts.rb +14 -0
  280. data/db/migrate/003_create_marty_users.rb +12 -0
  281. data/db/migrate/004_create_marty_roles.rb +7 -0
  282. data/db/migrate/005_create_marty_user_roles.rb +14 -0
  283. data/db/migrate/006_create_marty_tokens.rb +14 -0
  284. data/db/migrate/008_create_marty_posting_types.rb +7 -0
  285. data/db/migrate/019_create_marty_postings.rb +18 -0
  286. data/db/migrate/019_create_marty_postings.rb~ +19 -0
  287. data/db/migrate/068_create_marty_import_types.rb +12 -0
  288. data/db/migrate/069_create_marty_import_synonyms.rb +15 -0
  289. data/db/migrate/070_create_versions.rb +18 -0
  290. data/db/migrate/071_add_object_changes_column_to_versions.rb +9 -0
  291. data/db/migrate/072_add_validation_function_to_import_types.rb +6 -0
  292. data/db/migrate/073_add_preprocess_function_to_import_types.rb +5 -0
  293. data/db/migrate/090_create_delayed_jobs.rb +22 -0
  294. data/db/migrate/091_create_marty_promises.rb +36 -0
  295. data/db/migrate/095_create_marty_tags.rb +14 -0
  296. data/db/migrate/095_create_marty_tags.rb~ +19 -0
  297. data/db/migrate/096_add_user_roles_to_import_types.rb +11 -0
  298. data/db/migrate/097_drop_versions.rb +9 -0
  299. data/db/migrate/098_create_marty_api_auths.rb +20 -0
  300. data/db/seeds.rb +48 -0
  301. data/lib/marty.rb +18 -0
  302. data/lib/marty.rb~ +13 -0
  303. data/lib/marty/content_handler.rb +97 -0
  304. data/lib/marty/content_handler.rb~ +93 -0
  305. data/lib/marty/data_conversion.rb +298 -0
  306. data/lib/marty/data_exporter.rb +150 -0
  307. data/lib/marty/data_exporter.rb~ +137 -0
  308. data/lib/marty/data_importer.rb +122 -0
  309. data/lib/marty/data_importer.rb~ +114 -0
  310. data/lib/marty/data_row_processor.rb~ +206 -0
  311. data/lib/marty/drop_folder_hook.rb~ +17 -0
  312. data/lib/marty/engine.rb +10 -0
  313. data/lib/marty/folder_hook.rb~ +9 -0
  314. data/lib/marty/lazy_column_loader.rb +57 -0
  315. data/lib/marty/lazy_column_loader.rb~ +47 -0
  316. data/lib/marty/mcfly_query.rb +189 -0
  317. data/lib/marty/mcfly_query.rb~ +188 -0
  318. data/lib/marty/migrations.rb +108 -0
  319. data/lib/marty/migrations.rb~ +65 -0
  320. data/lib/marty/monkey.rb +163 -0
  321. data/lib/marty/monkey.rb~ +160 -0
  322. data/lib/marty/permissions.rb +64 -0
  323. data/lib/marty/permissions.rb~ +69 -0
  324. data/lib/marty/promise.rb~ +41 -0
  325. data/lib/marty/promise_job.rb +123 -0
  326. data/lib/marty/promise_job.rb~ +121 -0
  327. data/lib/marty/promise_proxy.rb +94 -0
  328. data/lib/marty/promise_proxy.rb~ +69 -0
  329. data/lib/marty/railtie.rb +5 -0
  330. data/lib/marty/relation.rb +39 -0
  331. data/lib/marty/util.rb +110 -0
  332. data/lib/marty/util.rb~ +80 -0
  333. data/lib/marty/version.rb +3 -0
  334. data/lib/marty/version.rb~ +3 -0
  335. data/lib/marty/xl.rb +527 -0
  336. data/lib/marty/xl.rb~ +526 -0
  337. data/lib/pyxll/README.txt +19 -0
  338. data/lib/pyxll/README.txt~ +16 -0
  339. data/lib/pyxll/gemini.py +155 -0
  340. data/lib/pyxll/gemini.py~ +110 -0
  341. data/lib/pyxll/pyxll.cfg +12 -0
  342. data/lib/pyxll/pyxll.cfg~ +12 -0
  343. data/lib/pyxll/sample.xlsx +0 -0
  344. data/lib/tasks/marty_tasks.rake +37 -0
  345. metadata +517 -0
@@ -0,0 +1,124 @@
1
+ class Marty::Scripting < Netzke::Base
2
+
3
+ def configure(c)
4
+ super
5
+
6
+ c.items =
7
+ [
8
+ :script_form,
9
+ {
10
+ xtype: "tabpanel",
11
+ active_tab: 0,
12
+ region: :center,
13
+ split: true,
14
+ items: [
15
+ {
16
+ title: I18n.t("script.selection"),
17
+ layout: {
18
+ type: :vbox,
19
+ align: :stretch,
20
+ },
21
+ items: [
22
+ :tag_grid,
23
+ :script_grid,
24
+ ],
25
+ },
26
+ :script_tester,
27
+ ],
28
+ },
29
+ ]
30
+ end
31
+
32
+ js_configure do |c|
33
+
34
+ c.header = false
35
+ c.layout = :border
36
+
37
+ c.init_component = <<-JS
38
+ function() {
39
+ var me = this;
40
+ me.callParent();
41
+
42
+ var tag_grid = me.netzkeGetComponent('tag_grid').getView();
43
+ var script_grid = me.netzkeGetComponent('script_grid').getView();
44
+ var script_form = me.netzkeGetComponent('script_form');
45
+ var script_tester = me.netzkeGetComponent('script_tester');
46
+
47
+ tag_grid.on('itemclick', function(self, record) {
48
+ var tag_id = record.get('id');
49
+ me.selectTag({tag_id: tag_id});
50
+ script_grid.getStore().load();
51
+ // unset script_name when new tag is selected
52
+ var script_name = null;
53
+ script_form.netzkeLoad({script_name: script_name});
54
+ script_tester.selectScript(script_name);
55
+ }, me);
56
+
57
+ script_grid.on('itemclick', function(self, record) {
58
+ var script_name = record.get('name');
59
+ me.selectScript({script_name: script_name});
60
+ script_form.netzkeLoad({script_name: script_name});
61
+ script_tester.selectScript(script_name);
62
+ }, me);
63
+ }
64
+ JS
65
+
66
+ c.script_refresh = <<-JS
67
+ function(script_name) {
68
+ if (!script_name) {
69
+ this.selectScript({});
70
+ this.netzkeReload();
71
+ }
72
+ else {
73
+ this.selectScript({script_name: script_name});
74
+ this.netzkeGetComponent('tag_grid').getStore().load();
75
+ this.netzkeGetComponent('script_grid').getStore().load();
76
+ this.netzkeGetComponent('script_form').netzkeLoad(
77
+ {script_name: script_name});
78
+ this.netzkeGetComponent('script_tester').selectScript(script_name);
79
+ }
80
+ }
81
+ JS
82
+ end
83
+
84
+ endpoint :select_tag do |params, this|
85
+ root_sess[:selected_tag_id] = params[:tag_id]
86
+ root_sess[:selected_script_name] = nil
87
+ end
88
+
89
+ endpoint :select_script do |params, this|
90
+ root_sess[:selected_script_name] = params[:script_name]
91
+ end
92
+
93
+ component :tag_grid do |c|
94
+ c.klass = Marty::TagGrid
95
+ c.width = 400
96
+ c.height = 300
97
+ c.load_inline_data = false
98
+ c.title = I18n.t("script.selection_history")
99
+ end
100
+
101
+ component :script_grid do |c|
102
+ c.width = 400
103
+ c.klass = Marty::ScriptGrid
104
+ c.title = I18n.t("script.selection_list")
105
+ c.flex = 1
106
+ end
107
+
108
+ component :script_form do |c|
109
+ c.klass = Marty::ScriptForm
110
+ c.title = I18n.t("script.detail")
111
+ c.flex = 1
112
+ c.split = true
113
+ c.region = :west
114
+ end
115
+
116
+ component :script_tester do |c|
117
+ c.klass = Marty::ScriptTester
118
+ c.title = I18n.t("script.tester")
119
+ c.flex = 1
120
+ end
121
+
122
+ end
123
+
124
+ Scripting = Marty::Scripting
@@ -0,0 +1,143 @@
1
+ class Marty::SelectReport < Marty::CmFormPanel
2
+ include Marty::Extras::Layout
3
+
4
+ component :tag_grid do |c|
5
+ c.klass = Marty::TagGrid
6
+ c.height = 200
7
+ c.load_inline_data = false
8
+ c.title = I18n.t("script.selection_history")
9
+ c.columns = [:name, :created_dt, :comment]
10
+ end
11
+
12
+ component :script_grid do |c|
13
+ c.height = 300
14
+ c.klass = Marty::ScriptGrid
15
+ c.title = I18n.t("script.selection_list")
16
+ c.bbar = []
17
+ c.columns = [:name, :status]
18
+ c.scope = ["name like '%Report'"]
19
+ end
20
+
21
+ ######################################################################
22
+
23
+ def configure(c)
24
+ super
25
+
26
+ c.items =
27
+ [
28
+ :tag_grid,
29
+ :script_grid,
30
+ fieldset(I18n.t("reporting.select_report"),
31
+ {
32
+ xtype: :netzkeremotecombo,
33
+ name: "nodename",
34
+ attr_type: :string,
35
+ virtual: true,
36
+ hide_label: true,
37
+ width: 200,
38
+ },
39
+ {},
40
+ ),
41
+ ]
42
+ c.bbar = []
43
+ end
44
+
45
+ js_configure do |c|
46
+ c.header = false
47
+
48
+ c.init_component = <<-JS
49
+ function() {
50
+ var me = this;
51
+ me.callParent();
52
+
53
+ var tag_grid = me.netzkeGetComponent('tag_grid').getView();
54
+ var script_grid = me.netzkeGetComponent('script_grid').getView();
55
+ var form = me.getForm();
56
+ var nodename = form.findField('nodename');
57
+
58
+ tag_grid.on('itemclick', function(tag_grid, record) {
59
+ var id = record.get('id');
60
+ me.selectTag({tag_id: id});
61
+ var script_store = me.netzkeGetComponent('script_grid').getStore();
62
+ script_store.load();
63
+ script_store.on('load', function(self, params) {
64
+ script_grid.getSelectionModel().select(0);
65
+ var sel = script_grid.getSelectionModel().getSelection()[0];
66
+ var id = sel && sel.data.id;
67
+ me.selectScript({script_id: id});
68
+ nodename.reset();
69
+ nodename.store.load({params: {}});
70
+ }, me);
71
+ }, me);
72
+
73
+ script_grid.on('itemclick', function(script_grid, record) {
74
+ var id = record.get('id');
75
+ me.selectScript({script_id: id});
76
+ nodename.reset();
77
+ nodename.store.load({params: {}});
78
+ }, me);
79
+
80
+ nodename.on('select', function(combo, record) {
81
+ var data = record[0] && record[0].data;
82
+ me.selectNode({node: data.value});
83
+ });
84
+ }
85
+ JS
86
+
87
+ c.parent_select_report = <<-JS
88
+ function() {
89
+ this.netzkeGetParentComponent().selectReport();
90
+ }
91
+ JS
92
+ end
93
+
94
+ # FIXME: should be in a library
95
+ REPORT_ATTR_SET = Set["title", "form", "result", "format"]
96
+
97
+ def node_list
98
+ sset = Marty::ScriptSet.new session[:selected_tag_id]
99
+ engine = sset.get_engine(session[:selected_script_id])
100
+
101
+ return [] unless engine
102
+
103
+ nodes = engine.enumerate_nodes.select { |n|
104
+ attrs = Set.new(engine.enumerate_attrs_by_node(n))
105
+ attrs.superset? REPORT_ATTR_SET
106
+ }
107
+
108
+ nodes.map { |node|
109
+ begin
110
+ title, format = engine.evaluate_attrs(node, ["title", "format"])
111
+ format ? [node, "#{title} (#{format})"] : nil
112
+ rescue
113
+ [node, node]
114
+ end
115
+ }.compact.sort{ |a,b| a[1] <=> b[1]}
116
+ end
117
+
118
+ endpoint :get_combobox_options do |params, this|
119
+ this.data = node_list if params["attr"] == "nodename"
120
+ end
121
+
122
+ ######################################################################
123
+
124
+ endpoint :select_node do |params, this|
125
+ session[:selected_node] = params[:node]
126
+ this.parent_select_report
127
+ end
128
+
129
+ endpoint :select_script do |params, this|
130
+ session[:selected_script_id] = params[:script_id]
131
+ end
132
+
133
+ endpoint :select_tag do |params, this|
134
+ session[:selected_tag_id] = params[:tag_id]
135
+
136
+ # when we select a new tag, invaiate the script selection
137
+ # FIXME: is this right????
138
+ session[:selected_script_id] = nil
139
+ end
140
+
141
+ end
142
+
143
+ SelectReport = Marty::SelectReport
@@ -0,0 +1,97 @@
1
+ # Basis for a Ext.container.Viewport-based one-page application.
2
+ #
3
+ # == Features:
4
+ # * dynamic loading of components
5
+ # * browser history support (press the "Back"-button to go to the previously loaded component)
6
+ # * AJAX activity indicator
7
+ #
8
+ # == Extending SimpleApp
9
+ # You may want to extend SimpleApp to provide a custom layout. Make sure you create three regions with predefined itemId's that will be used by SimpleApp. You can use the following methods defined by SimpleApp: main_panel_config, status_bar_config, and menu_bar_config, e.g.:
10
+ #
11
+ # class MySimpleApp < Netzke::Basepack::SimpleApp
12
+ #
13
+ # def configuration
14
+ # super.merge(
15
+ # :items => [my_custom_navigation_config, main_panel_config, menu_bar_config, status_bar_config]
16
+ # )
17
+ # end
18
+ #
19
+ # def my_custom_navigation_config
20
+ # {
21
+ # :item_id => 'navigation',
22
+ # :region => :east,
23
+ # :width => 200
24
+ # }
25
+ # end
26
+ #
27
+ # ...
28
+ # end
29
+ #
30
+ # The JS side of the component will have those regions referenced as this.mainPanel, this.statusBar, and this.menuBar.
31
+ class Marty::SimpleApp < Netzke::Base
32
+ js_configure do |c|
33
+ c.extend = "Ext.container.Viewport"
34
+ c.layout = :border
35
+ c.require Netzke::Core.ext_path.join("examples", "ux/statusbar/StatusBar.js"), :statusbar_ext
36
+ c.mixin
37
+ end
38
+
39
+ def configure(c)
40
+ super
41
+ c.items = [main_panel_config, menu_bar_config, status_bar_config]
42
+ end
43
+
44
+ # In Ext 4.1 calling `render` on a viewport causes an error
45
+ def js_component_render
46
+ ""
47
+ end
48
+
49
+ # Override for custom menu
50
+ def menu
51
+ []
52
+ end
53
+
54
+ # Config for the main panel, which will contain dynamically loaded components.
55
+ def main_panel_config(overrides = {})
56
+ {
57
+ :itemId => 'main_panel',
58
+ :region => 'center',
59
+ :layout => 'fit'
60
+ }.merge(overrides)
61
+ end
62
+
63
+ # Config for the status bar
64
+ def status_bar_config(overrides = {})
65
+ {
66
+ :itemId => 'status_bar',
67
+ :xtype => 'statusbar',
68
+ :region => 'south',
69
+ :height => 22,
70
+ :statusAlign => 'right',
71
+ :busyText => 'Busy...',
72
+ :default_text => "Ready",
73
+ :default_icon_cls => ""
74
+ }.merge(overrides)
75
+ end
76
+
77
+ # Config for the menu bar
78
+ def menu_bar_config(overrides = {})
79
+ {
80
+ :itemId => 'menu_bar',
81
+ :xtype => 'toolbar',
82
+ :region => 'north',
83
+ :height => 28,
84
+ :items => menu
85
+ }.merge(overrides)
86
+ end
87
+
88
+ # Html required for Ext.History to work
89
+ def js_component_html
90
+ super << %Q{
91
+ <form id="history-form" class="x-hidden">
92
+ <input type="hidden" id="x-history-field" />
93
+ <iframe id="x-history-frame"></iframe>
94
+ </form>
95
+ }
96
+ end
97
+ end
@@ -0,0 +1,101 @@
1
+ module Netzke
2
+ module Basepack
3
+ # Basis for a Ext.container.Viewport-based one-page application.
4
+ #
5
+ # == Features:
6
+ # * dynamic loading of components
7
+ # * browser history support (press the "Back"-button to go to the previously loaded component)
8
+ # * AJAX activity indicator
9
+ #
10
+ # == Extending SimpleApp
11
+ # You may want to extend SimpleApp to provide a custom layout. Make sure you create three regions with predefined itemId's that will be used by SimpleApp. You can use the following methods defined by SimpleApp: main_panel_config, status_bar_config, and menu_bar_config, e.g.:
12
+ #
13
+ # class MySimpleApp < Netzke::Basepack::SimpleApp
14
+ #
15
+ # def configuration
16
+ # super.merge(
17
+ # :items => [my_custom_navigation_config, main_panel_config, menu_bar_config, status_bar_config]
18
+ # )
19
+ # end
20
+ #
21
+ # def my_custom_navigation_config
22
+ # {
23
+ # :item_id => 'navigation',
24
+ # :region => :east,
25
+ # :width => 200
26
+ # }
27
+ # end
28
+ #
29
+ # ...
30
+ # end
31
+ #
32
+ # The JS side of the component will have those regions referenced as this.mainPanel, this.statusBar, and this.menuBar.
33
+ class SimpleApp < Base
34
+ js_configure do |c|
35
+ c.extend = "Ext.container.Viewport"
36
+ c.layout = :border
37
+ c.require Netzke::Core.ext_path.join("examples", "ux/statusbar/StatusBar.js"), :statusbar_ext
38
+ c.mixin
39
+ end
40
+
41
+ def configure(c)
42
+ super
43
+ c.items = [main_panel_config, menu_bar_config, status_bar_config]
44
+ end
45
+
46
+ # In Ext 4.1 calling `render` on a viewport causes an error
47
+ def js_component_render
48
+ ""
49
+ end
50
+
51
+ # Override for custom menu
52
+ def menu
53
+ []
54
+ end
55
+
56
+ # Config for the main panel, which will contain dynamically loaded components.
57
+ def main_panel_config(overrides = {})
58
+ {
59
+ :itemId => 'main_panel',
60
+ :region => 'center',
61
+ :layout => 'fit'
62
+ }.merge(overrides)
63
+ end
64
+
65
+ # Config for the status bar
66
+ def status_bar_config(overrides = {})
67
+ {
68
+ :itemId => 'status_bar',
69
+ :xtype => 'statusbar',
70
+ :region => 'south',
71
+ :height => 22,
72
+ :statusAlign => 'right',
73
+ :busyText => 'Busy...',
74
+ :default_text => "Ready",
75
+ :default_icon_cls => ""
76
+ }.merge(overrides)
77
+ end
78
+
79
+ # Config for the menu bar
80
+ def menu_bar_config(overrides = {})
81
+ {
82
+ :itemId => 'menu_bar',
83
+ :xtype => 'toolbar',
84
+ :region => 'north',
85
+ :height => 28,
86
+ :items => menu
87
+ }.merge(overrides)
88
+ end
89
+
90
+ # Html required for Ext.History to work
91
+ def js_component_html
92
+ super << %Q{
93
+ <form id="history-form" class="x-hidden">
94
+ <input type="hidden" id="x-history-field" />
95
+ <iframe id="x-history-frame"></iframe>
96
+ </form>
97
+ }
98
+ end
99
+ end
100
+ end
101
+ end