crystal-ext 0.0.1

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 (327) hide show
  1. data/.gitignore +4 -0
  2. data/Rakefile +66 -0
  3. data/lib/abstract_interface/controller_helper.rb +30 -0
  4. data/lib/abstract_interface/form_builders/abstract_form_builder.rb +79 -0
  5. data/lib/abstract_interface/form_builders/themed_form_builder.rb +46 -0
  6. data/lib/abstract_interface/form_builders/themed_form_tag_builder.rb +13 -0
  7. data/lib/abstract_interface/haml_builder.rb +56 -0
  8. data/lib/abstract_interface/model_stub.rb +20 -0
  9. data/lib/abstract_interface/support.rb +56 -0
  10. data/lib/abstract_interface/theme.rb +37 -0
  11. data/lib/abstract_interface/view_builder.rb +158 -0
  12. data/lib/abstract_interface/view_helper.rb +31 -0
  13. data/lib/abstract_interface.rb +78 -0
  14. data/lib/common_interface/MIT-LICENSE +20 -0
  15. data/lib/common_interface/README.md +51 -0
  16. data/lib/common_interface/app/controllers/theme_controller.rb +65 -0
  17. data/lib/common_interface/app/controllers/theme_site_controller.rb +2 -0
  18. data/lib/common_interface/app/views/layouts/theme.html.erb +1 -0
  19. data/lib/common_interface/app/views/layouts/theme.js.erb +11 -0
  20. data/lib/common_interface/app/views/theme/_dialog.html.haml +7 -0
  21. data/lib/common_interface/app/views/theme/_popup.html.haml +4 -0
  22. data/lib/common_interface/app/views/theme/aspects.html.haml +32 -0
  23. data/lib/common_interface/app/views/theme/basic.html.haml +123 -0
  24. data/lib/common_interface/app/views/theme/dialog.js.erb +1 -0
  25. data/lib/common_interface/app/views/theme/folder.html.haml +45 -0
  26. data/lib/common_interface/app/views/theme/help.html.haml +7 -0
  27. data/lib/common_interface/app/views/theme/index.html.haml +24 -0
  28. data/lib/common_interface/app/views/theme/items.html.haml +91 -0
  29. data/lib/common_interface/app/views/theme/list.html.haml +23 -0
  30. data/lib/common_interface/app/views/theme/page/_folder.html.haml +10 -0
  31. data/lib/common_interface/app/views/theme/page/_note.html.haml +4 -0
  32. data/lib/common_interface/app/views/theme/page/_toolbar.html.haml +5 -0
  33. data/lib/common_interface/app/views/theme/page.html.haml +19 -0
  34. data/lib/common_interface/app/views/theme/popup.js.erb +1 -0
  35. data/lib/common_interface/app/views/theme/selector.html.haml +38 -0
  36. data/lib/common_interface/app/views/theme/style.html.erb +113 -0
  37. data/lib/common_interface/app/views/theme/tmp.html.erb +31 -0
  38. data/lib/common_interface/app/views/theme/user.html.haml +16 -0
  39. data/lib/common_interface/app/views/theme_shared/_comments.html.haml +11 -0
  40. data/lib/common_interface/app/views/theme_shared/_core_tools.html.haml +6 -0
  41. data/lib/common_interface/app/views/theme_shared/_line_previews.html.haml +39 -0
  42. data/lib/common_interface/app/views/theme_shared/_paginator.html.haml +7 -0
  43. data/lib/common_interface/app/views/theme_shared/_tools.html.haml +27 -0
  44. data/lib/common_interface/app/views/theme_shared/_top_navigation_bottom.html.haml +32 -0
  45. data/lib/common_interface/app/views/theme_site/blog.html.haml +13 -0
  46. data/lib/common_interface/app/views/theme_site/home.html.haml +9 -0
  47. data/lib/common_interface/app/views/theme_site/post.html.haml +11 -0
  48. data/lib/common_interface/app/views/theme_site/style.html.haml +9 -0
  49. data/lib/common_interface/app/views/themes/default/_application_t.html.haml +29 -0
  50. data/lib/common_interface/app/views/themes/default/_help_t.html.haml +1 -0
  51. data/lib/common_interface/app/views/themes/default/aspects/_comment_t.html.haml +14 -0
  52. data/lib/common_interface/app/views/themes/default/aspects/_controls_t.html.haml +3 -0
  53. data/lib/common_interface/app/views/themes/default/aspects/_details_t.html.haml +6 -0
  54. data/lib/common_interface/app/views/themes/default/aspects/_discussion_t.html.haml +9 -0
  55. data/lib/common_interface/app/views/themes/default/aspects/_paginator_t.html.haml +8 -0
  56. data/lib/common_interface/app/views/themes/default/aspects/_tag_selector_t.html.haml +11 -0
  57. data/lib/common_interface/app/views/themes/default/basic/_bottom_panel_t.html.haml +9 -0
  58. data/lib/common_interface/app/views/themes/default/basic/_dialog_t.html.haml +1 -0
  59. data/lib/common_interface/app/views/themes/default/basic/_divider_t.html.haml +2 -0
  60. data/lib/common_interface/app/views/themes/default/basic/_html_t.html.haml +1 -0
  61. data/lib/common_interface/app/views/themes/default/basic/_inplace_t.html.haml +1 -0
  62. data/lib/common_interface/app/views/themes/default/basic/_message_t.html.haml +3 -0
  63. data/lib/common_interface/app/views/themes/default/basic/_more_t.html.haml +5 -0
  64. data/lib/common_interface/app/views/themes/default/basic/_narrow_t.html.haml +1 -0
  65. data/lib/common_interface/app/views/themes/default/basic/_navigation_t.html.haml +9 -0
  66. data/lib/common_interface/app/views/themes/default/basic/_popup_t.html.haml +1 -0
  67. data/lib/common_interface/app/views/themes/default/basic/_text_t.html.haml +1 -0
  68. data/lib/common_interface/app/views/themes/default/basic/_title_t.html.haml +3 -0
  69. data/lib/common_interface/app/views/themes/default/basic/_tool_t.html.haml +4 -0
  70. data/lib/common_interface/app/views/themes/default/basic/_top_panel_t.html.haml +18 -0
  71. data/lib/common_interface/app/views/themes/default/components/_basic_list_item_t.html.haml +4 -0
  72. data/lib/common_interface/app/views/themes/default/components/_basic_list_t.html.haml +1 -0
  73. data/lib/common_interface/app/views/themes/default/components/_table_row_t.html.haml +5 -0
  74. data/lib/common_interface/app/views/themes/default/components/_table_t.html.haml +12 -0
  75. data/lib/common_interface/app/views/themes/default/components/_tabs_item_t.html.haml +4 -0
  76. data/lib/common_interface/app/views/themes/default/components/_tabs_t.html.haml +4 -0
  77. data/lib/common_interface/app/views/themes/default/components/_toolbar_t.html.haml +14 -0
  78. data/lib/common_interface/app/views/themes/default/forms/_begin_t.html.erb +3 -0
  79. data/lib/common_interface/app/views/themes/default/forms/_end_t.html.erb +3 -0
  80. data/lib/common_interface/app/views/themes/default/forms/_errors_t.html.haml +5 -0
  81. data/lib/common_interface/app/views/themes/default/forms/_field_t.html.haml +19 -0
  82. data/lib/common_interface/app/views/themes/default/forms/_line_t.html.haml +6 -0
  83. data/lib/common_interface/app/views/themes/default/items/_file_t.html.haml +19 -0
  84. data/lib/common_interface/app/views/themes/default/items/_folder_t.html.haml +23 -0
  85. data/lib/common_interface/app/views/themes/default/items/_line_t.html.haml +34 -0
  86. data/lib/common_interface/app/views/themes/default/items/_list_item_t.html.haml +16 -0
  87. data/lib/common_interface/app/views/themes/default/items/_list_t.html.haml +35 -0
  88. data/lib/common_interface/app/views/themes/default/items/_note_t.html.haml +16 -0
  89. data/lib/common_interface/app/views/themes/default/items/_page_t.html.haml +29 -0
  90. data/lib/common_interface/app/views/themes/default/items/_selector_t.html.haml +18 -0
  91. data/lib/common_interface/app/views/themes/default/items/_thumb_t.html.haml +12 -0
  92. data/lib/common_interface/app/views/themes/default/items/_user_t.html.haml +12 -0
  93. data/lib/common_interface/app/views/themes/default/layout_templates/_dashboard_t.html.haml +1 -0
  94. data/lib/common_interface/app/views/themes/default/layout_templates/_default_t.html.haml +11 -0
  95. data/lib/common_interface/app/views/themes/default/metadata.rb +117 -0
  96. data/lib/common_interface/app/views/themes/simple_organization/_application_js_t.html.erb +12 -0
  97. data/lib/common_interface/app/views/themes/simple_organization/_application_t.html.erb +45 -0
  98. data/lib/common_interface/app/views/themes/simple_organization/_help_t.html.erb +1 -0
  99. data/lib/common_interface/app/views/themes/simple_organization/aspects/_comment_t.html.haml +21 -0
  100. data/lib/common_interface/app/views/themes/simple_organization/aspects/_discussion_t.html.haml +14 -0
  101. data/lib/common_interface/app/views/themes/simple_organization/aspects/_paginator_t.html.haml +5 -0
  102. data/lib/common_interface/app/views/themes/simple_organization/aspects/_tag_selector_t.html.haml +10 -0
  103. data/lib/common_interface/app/views/themes/simple_organization/basic/_bottom_panel_t.html.erb +12 -0
  104. data/lib/common_interface/app/views/themes/simple_organization/basic/_divider_t.html.erb +3 -0
  105. data/lib/common_interface/app/views/themes/simple_organization/basic/_message_t.html.erb +7 -0
  106. data/lib/common_interface/app/views/themes/simple_organization/basic/_more_t.html.haml +5 -0
  107. data/lib/common_interface/app/views/themes/simple_organization/basic/_navigation_t.html.erb +15 -0
  108. data/lib/common_interface/app/views/themes/simple_organization/basic/_text_t.html.haml +1 -0
  109. data/lib/common_interface/app/views/themes/simple_organization/basic/_tool_t.html.erb +9 -0
  110. data/lib/common_interface/app/views/themes/simple_organization/basic/_top_panel_t.html.erb +14 -0
  111. data/lib/common_interface/app/views/themes/simple_organization/items/_line_t.html.haml +17 -0
  112. data/lib/common_interface/app/views/themes/simple_organization/items/_note_t.html.haml +16 -0
  113. data/lib/common_interface/app/views/themes/simple_organization/items/_selector_t.html.haml +11 -0
  114. data/lib/common_interface/app/views/themes/simple_organization/layout_templates/_default_t.html.erb +20 -0
  115. data/lib/common_interface/app/views/themes/simple_organization/layout_templates/_home_t.html.erb +14 -0
  116. data/lib/common_interface/app/views/themes/simple_organization/metadata.rb +193 -0
  117. data/lib/common_interface/asset_packages.yml +89 -0
  118. data/lib/common_interface/init.rb +21 -0
  119. data/lib/common_interface/lib/common_interface_helper.rb +49 -0
  120. data/lib/common_interface/public/common_interface/images/img1.jpg +0 -0
  121. data/lib/common_interface/public/common_interface/images/img1_200.jpg +0 -0
  122. data/lib/common_interface/public/common_interface/images/img1_icon.jpg +0 -0
  123. data/lib/common_interface/public/common_interface/images/img1_thumb.jpg +0 -0
  124. data/lib/common_interface/public/common_interface/images/img2.jpg +0 -0
  125. data/lib/common_interface/public/common_interface/images/img2_200.jpg +0 -0
  126. data/lib/common_interface/public/common_interface/images/img2_icon.jpg +0 -0
  127. data/lib/common_interface/public/common_interface/images/img2_thumb.jpg +0 -0
  128. data/lib/common_interface/public/common_interface/images/img3.jpg +0 -0
  129. data/lib/common_interface/public/common_interface/images/img3_200.jpg +0 -0
  130. data/lib/common_interface/public/common_interface/images/img3_icon.jpg +0 -0
  131. data/lib/common_interface/public/common_interface/images/img3_thumb.jpg +0 -0
  132. data/lib/common_interface/public/common_interface/images/video_icon.png +0 -0
  133. data/lib/common_interface/public/common_interface/js/aspects.js +0 -0
  134. data/lib/common_interface/public/common_interface/js/basic.js +229 -0
  135. data/lib/common_interface/public/common_interface/js/files_upload.js +115 -0
  136. data/lib/common_interface/public/common_interface/js/items.js +118 -0
  137. data/lib/common_interface/public/common_interface/js/style.js +50 -0
  138. data/lib/common_interface/public/common_interface/lib/jquery.elastic.js +117 -0
  139. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/blank.gif +0 -0
  140. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_close.png +0 -0
  141. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_loading.png +0 -0
  142. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_nav_left.png +0 -0
  143. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_nav_right.png +0 -0
  144. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_e.png +0 -0
  145. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_n.png +0 -0
  146. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_ne.png +0 -0
  147. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_nw.png +0 -0
  148. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_s.png +0 -0
  149. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_se.png +0 -0
  150. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_sw.png +0 -0
  151. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_w.png +0 -0
  152. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_left.png +0 -0
  153. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_main.png +0 -0
  154. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_over.png +0 -0
  155. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_right.png +0 -0
  156. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox-x.png +0 -0
  157. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox-y.png +0 -0
  158. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox.png +0 -0
  159. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.easing-1.3.pack.js +72 -0
  160. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox-1.3.1.js +1077 -0
  161. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox.css +363 -0
  162. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox.js +44 -0
  163. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.mousewheel-3.0.2.pack.js +13 -0
  164. data/lib/common_interface/public/common_interface/lib/jquery.form.js +660 -0
  165. data/lib/common_interface/public/common_interface/lib/jquery.hoverIntent.js +111 -0
  166. data/lib/common_interface/public/common_interface/lib/jquery.jgrowl/jquery.jgrowl.css +128 -0
  167. data/lib/common_interface/public/common_interface/lib/jquery.jgrowl/jquery.jgrowl.js +307 -0
  168. data/lib/common_interface/public/common_interface/lib/jquery.js +4376 -0
  169. data/lib/common_interface/public/common_interface/lib/jquery.json.js +178 -0
  170. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/cancel.png +0 -0
  171. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/jquery.swfupload.js +64 -0
  172. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/style.css +8 -0
  173. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.js +980 -0
  174. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.queue.js +98 -0
  175. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.swf +0 -0
  176. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/wdp_buttons_upload_61x22.png +0 -0
  177. data/lib/common_interface/public/common_interface/lib/jquery.template.js +255 -0
  178. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  179. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  180. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_flat_10_000000_40x100.png +0 -0
  181. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  182. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  183. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  184. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  185. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  186. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  187. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_222222_256x240.png +0 -0
  188. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_228ef1_256x240.png +0 -0
  189. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ef8c08_256x240.png +0 -0
  190. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ffd27a_256x240.png +0 -0
  191. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ffffff_256x240.png +0 -0
  192. data/lib/common_interface/public/common_interface/lib/jquery.ui/jquery.ui.css +406 -0
  193. data/lib/common_interface/public/common_interface/lib/jquery.ui/jquery.ui.js +71 -0
  194. data/lib/common_interface/public/common_interface/themes/default/_aspects.scss +58 -0
  195. data/lib/common_interface/public/common_interface/themes/default/_basic.scss +228 -0
  196. data/lib/common_interface/public/common_interface/themes/default/_components.scss +151 -0
  197. data/lib/common_interface/public/common_interface/themes/default/_custom_reset.scss +12 -0
  198. data/lib/common_interface/public/common_interface/themes/default/_elastic.scss +72 -0
  199. data/lib/common_interface/public/common_interface/themes/default/_items.scss +88 -0
  200. data/lib/common_interface/public/common_interface/themes/default/_mixins.scss +39 -0
  201. data/lib/common_interface/public/common_interface/themes/default/_special.scss +34 -0
  202. data/lib/common_interface/public/common_interface/themes/default/_variables.scss +15 -0
  203. data/lib/common_interface/public/common_interface/themes/default/_yui_reset.scss +127 -0
  204. data/lib/common_interface/public/common_interface/themes/default/elastic.js +307 -0
  205. data/lib/common_interface/public/common_interface/themes/default/elastic.print.css +8 -0
  206. data/lib/common_interface/public/common_interface/themes/default/reset.css +157 -0
  207. data/lib/common_interface/public/common_interface/themes/default/reset.scss +5 -0
  208. data/lib/common_interface/public/common_interface/themes/default/style.css +580 -0
  209. data/lib/common_interface/public/common_interface/themes/default/style.js +84 -0
  210. data/lib/common_interface/public/common_interface/themes/default/style.scss +11 -0
  211. data/lib/common_interface/public/common_interface/themes/simple_organization/_fixes.scss +130 -0
  212. data/lib/common_interface/public/common_interface/themes/simple_organization/_original.scss +852 -0
  213. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-arrow.gif +0 -0
  214. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-gravatar.gif +0 -0
  215. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-reply.gif +0 -0
  216. data/lib/common_interface/public/common_interface/themes/simple_organization/img/logo-small.gif +0 -0
  217. data/lib/common_interface/public/common_interface/themes/simple_organization/img/logo.gif +0 -0
  218. data/lib/common_interface/public/common_interface/themes/simple_organization/img/main-two-columns-left.gif +0 -0
  219. data/lib/common_interface/public/common_interface/themes/simple_organization/img/main-two-columns.gif +0 -0
  220. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-event.jpg +0 -0
  221. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-gravatar.gif +0 -0
  222. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-image.jpg +0 -0
  223. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-thumbnail.jpg +0 -0
  224. data/lib/common_interface/public/common_interface/themes/simple_organization/original/archives.html +389 -0
  225. data/lib/common_interface/public/common_interface/themes/simple_organization/original/comments.html +486 -0
  226. data/lib/common_interface/public/common_interface/themes/simple_organization/original/empty-page.html +107 -0
  227. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-arrow.gif +0 -0
  228. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-gravatar.gif +0 -0
  229. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-reply.gif +0 -0
  230. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/logo-small.gif +0 -0
  231. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/logo.gif +0 -0
  232. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/main-two-columns-left.gif +0 -0
  233. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/main-two-columns.gif +0 -0
  234. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-event.jpg +0 -0
  235. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-gravatar.gif +0 -0
  236. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-image.jpg +0 -0
  237. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-thumbnail.jpg +0 -0
  238. data/lib/common_interface/public/common_interface/themes/simple_organization/original/index.html +307 -0
  239. data/lib/common_interface/public/common_interface/themes/simple_organization/original/left-sidebar.html +307 -0
  240. data/lib/common_interface/public/common_interface/themes/simple_organization/original/no-subnavigation.html +290 -0
  241. data/lib/common_interface/public/common_interface/themes/simple_organization/original/single-column.html +209 -0
  242. data/lib/common_interface/public/common_interface/themes/simple_organization/original/style-demo.html +355 -0
  243. data/lib/common_interface/public/common_interface/themes/simple_organization/original/style.css +658 -0
  244. data/lib/common_interface/public/common_interface/themes/simple_organization/style.css +965 -0
  245. data/lib/common_interface/public/common_interface/themes/simple_organization/style.scss +2 -0
  246. data/lib/common_interface/public/common_interface/themes/simple_organization/tmp/comments.html +486 -0
  247. data/lib/common_interface/public/common_interface/themes/simple_organization/tmp/tmp.html +307 -0
  248. data/lib/common_interface/spec/controllers/theme_controller_spec.rb +50 -0
  249. data/lib/common_interface/spec/spec.opts +4 -0
  250. data/lib/common_interface/spec/spec_helper.rb +1 -0
  251. data/lib/common_interface/tmp/html.html +39 -0
  252. data/lib/common_interface/tmp/js.js +78 -0
  253. data/lib/mongo_mapper_ext/db_config.rb +76 -0
  254. data/lib/mongo_mapper_ext/hacks/fixes.rb +32 -0
  255. data/lib/mongo_mapper_ext/hacks/time_measuring.rb +44 -0
  256. data/lib/mongo_mapper_ext/micelaneous.rb +9 -0
  257. data/lib/mongo_mapper_ext/migrate.rake +33 -0
  258. data/lib/mongo_mapper_ext/migration.rb +108 -0
  259. data/lib/mongo_mapper_ext/mongo_mapper.rb +25 -0
  260. data/lib/mongo_mapper_ext/plugins/attributes_cache.rb +22 -0
  261. data/lib/mongo_mapper_ext/plugins/default_scope.rb +76 -0
  262. data/lib/mongo_mapper_ext/plugins/micelaneous.rb +81 -0
  263. data/lib/mongo_mapper_ext/spec_helper.rb +10 -0
  264. data/lib/mongo_mapper_ext/view_helpers.rb +10 -0
  265. data/lib/mongo_mapper_ext.rb +29 -0
  266. data/lib/rails_ext/README.markdown +13 -0
  267. data/lib/rails_ext/action_controller/global_path_prefix.rb +56 -0
  268. data/lib/rails_ext/action_controller/micelaneous.rb +118 -0
  269. data/lib/rails_ext/action_controller/persistent_params.rb +96 -0
  270. data/lib/rails_ext/action_controller/redirect_helper.rb +14 -0
  271. data/lib/rails_ext/action_controller/reload_page.rb +7 -0
  272. data/lib/rails_ext/action_controller.rb +19 -0
  273. data/lib/rails_ext/action_view/common_helper.rb +96 -0
  274. data/lib/rails_ext/action_view/ruby_template.rb +13 -0
  275. data/lib/rails_ext/action_view.rb +5 -0
  276. data/lib/rails_ext/active_record/merge_default_scope/hash_poser.rb +40 -0
  277. data/lib/rails_ext/active_record/merge_default_scope.rb +16 -0
  278. data/lib/rails_ext/active_record/micelaneous.rb +14 -0
  279. data/lib/rails_ext/active_record.rb +7 -0
  280. data/lib/rails_ext/active_support/micelaneous.rb +7 -0
  281. data/lib/rails_ext/active_support.rb +1 -0
  282. data/lib/rails_ext/asset_packager/action_view.rb +47 -0
  283. data/lib/rails_ext/asset_packager/asset_packager.rb +112 -0
  284. data/lib/rails_ext/asset_packager/jsmin.rb +205 -0
  285. data/lib/rails_ext/asset_packager/tasks.rb +27 -0
  286. data/lib/rails_ext/asset_packager.rb +4 -0
  287. data/lib/rails_ext/basic/handy_environment.rb +45 -0
  288. data/lib/rails_ext/basic/user_error.rb +12 -0
  289. data/lib/rails_ext/basic.rb +6 -0
  290. data/lib/rails_ext/hacks/ajax_flash.rb +9 -0
  291. data/lib/rails_ext/hacks/ajax_redirect_to.rb +19 -0
  292. data/lib/rails_ext/hacks/defer_static_javascripts.rb +18 -0
  293. data/lib/rails_ext/hacks/global_path_prefix.rb +33 -0
  294. data/lib/rails_ext/hacks/link_to.rb +105 -0
  295. data/lib/rails_ext/hacks/merge_default_scope.rb +20 -0
  296. data/lib/rails_ext/hacks/persistent_params.rb +16 -0
  297. data/lib/rails_ext/hacks/rjs_layout.rb +2 -0
  298. data/lib/rails_ext/micelaneous/addressable_uri.rb +45 -0
  299. data/lib/rails_ext/micelaneous/config_files.rb +18 -0
  300. data/lib/rails_ext/micelaneous/create_public_symlinks.rb +11 -0
  301. data/lib/rails_ext/micelaneous/defer_static_javascripts.rb +50 -0
  302. data/lib/rails_ext/micelaneous/email_config.rb +8 -0
  303. data/lib/rails_ext/micelaneous/i18n_helper.rb +143 -0
  304. data/lib/rails_ext/micelaneous/rails_require.rb +4 -0
  305. data/lib/rails_ext/micelaneous/safe_hash.rb +104 -0
  306. data/lib/rails_ext/micelaneous.rb +17 -0
  307. data/lib/rails_ext/public/rails_ext/rails_ext.css +2 -0
  308. data/lib/rails_ext/public/rails_ext/rails_ext.js +283 -0
  309. data/lib/rails_ext/spec/mongo_mapper_ext/micelaneous_plugin_spec.rb +56 -0
  310. data/lib/rails_ext/spec/mongo_mapper_ext/micelaneous_spec.rb +51 -0
  311. data/lib/rails_ext/spec/mongo_mapper_ext/mongo_mapper_migration_spec.rb +76 -0
  312. data/lib/rails_ext/spec/mongo_mapper_ext/scope_spec.rb +125 -0
  313. data/lib/rails_ext/spec/rails_ext/haml_builder_spec.rb +136 -0
  314. data/lib/rails_ext/spec/rails_ext/safe_hash_spec.rb +71 -0
  315. data/lib/rails_ext/spec/spec.opts +3 -0
  316. data/lib/sunspot/mongo_mapper/adapters.rb +79 -0
  317. data/lib/sunspot/mongo_mapper/searchable.rb +409 -0
  318. data/lib/sunspot/spec_helper.rb +11 -0
  319. data/readme.md +1 -0
  320. data/spec/mongo_mapper_ext/micelaneous_plugin_spec.rb +56 -0
  321. data/spec/mongo_mapper_ext/micelaneous_spec.rb +51 -0
  322. data/spec/mongo_mapper_ext/mongo_mapper_migration_spec.rb +76 -0
  323. data/spec/mongo_mapper_ext/scope_spec.rb +125 -0
  324. data/spec/rails_ext/haml_builder_spec.rb +136 -0
  325. data/spec/rails_ext/safe_hash_spec.rb +71 -0
  326. data/spec/spec.opts +4 -0
  327. metadata +405 -0
@@ -0,0 +1,307 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
3
+
4
+ <head>
5
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
6
+ <meta name="description" content=""/>
7
+ <meta name="keywords" content="" />
8
+ <meta name="author" content="" />
9
+ <link rel="stylesheet" type="text/css" href="../style.css" media="screen" />
10
+ <title>Website Template: Simple Organization (demo)</title>
11
+ </head>
12
+
13
+ <body>
14
+
15
+ <div id="site-wrapper">
16
+
17
+ <div id="header">
18
+
19
+ <div id="top">
20
+
21
+ <div class="left" id="logo">
22
+ <a href="index.html"><img src="img/logo.gif" alt="" /></a>
23
+ </div>
24
+
25
+ <div class="left navigation" id="main-nav">
26
+
27
+ <ul class="tabbed">
28
+ <li class="current-tab"><a href="index.html">Blog</a></li>
29
+ <li><a href="#">Events</a></li>
30
+ <li><a href="#">About</a></li>
31
+ <li><a href="#">Archives</a></li>
32
+ <li><a href="#">Join Us!</a></li>
33
+ </ul>
34
+
35
+ <div class="clearer">&nbsp;</div>
36
+
37
+ </div>
38
+
39
+ <div class="clearer">&nbsp;</div>
40
+
41
+ </div>
42
+
43
+ <div class="navigation" id="sub-nav">
44
+
45
+ <ul class="tabbed">
46
+ <li class="current-tab"><a href="index.html">Template Info</a></li>
47
+ <li><a href="style-demo.html">Style Demo</a></li>
48
+ <li><a href="comments.html">Comments</a></li>
49
+ <li><a href="archives.html">Archives</a></li>
50
+ <li><a href="no-subnavigation.html">No Subnavigation</a></li>
51
+ <li><a href="left-sidebar.html">Left Sidebar</a></li>
52
+ <li><a href="single-column.html">Single Column</a></li>
53
+ <li><a href="empty-page.html">Empty Page</a></li>
54
+ </ul>
55
+
56
+ <div class="clearer">&nbsp;</div>
57
+
58
+ </div>
59
+
60
+ </div>
61
+
62
+ <div id="splash">
63
+
64
+ <div class="col3 left">
65
+
66
+ <h2 class="label label-green">Mission Statement</h2>
67
+
68
+ <p class="quiet large">What we want to achieve</p>
69
+
70
+ <p>Vestibulum eu pellentesque ante. Sed tincidunt quam eu nisl luctus id mattis tellus rhoncus.</p>
71
+ <p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae. Donec dapibus eros vitae nibh venenatis faucibus.</p>
72
+ <p><a href="#" class="more">Learn more &raquo;</a></p>
73
+
74
+ </div>
75
+
76
+ <div class="col3-mid left">
77
+
78
+ <h2 class="label label-orange">Next Event</h2>
79
+
80
+ <p class="quiet large">Friday, August 18, 2009</p>
81
+
82
+ <p><img src="img/sample-event.jpg" width="240" height="80" alt="" class="bordered" /></p>
83
+ <p><em>Aliquam augue neque, rhoncus et dictum in, cursus eget mauris.</em></p>
84
+
85
+ </div>
86
+
87
+ <div class="col3 right">
88
+
89
+ <h2 class="label label-blue">Follow Us</h2>
90
+
91
+ <p class="quiet large">http://twitter.com/username</p>
92
+
93
+ <p>Nulla mollis sollicitudin nulla et mattis.<span class="quiet">(2 hours ago)</span></p>
94
+ <p>Torquent per conubia nostra, per inceptos himenaeos. <span class="quiet">(2 hours ago)</span></p>
95
+ <p>In sed ante at velit hendrerit blandit a et nibh. Cras sed cursus nulla. <span class="quiet">(3 hours ago)</span></p>
96
+ <p>Nullam vitae mi at nulla blandit. <span class="quiet">(5 hours ago)</span></p>
97
+
98
+ </div>
99
+
100
+ <div class="clearer">&nbsp;</div>
101
+
102
+ </div>
103
+
104
+ <div class="main" id="main-two-columns">
105
+
106
+ <div class="left" id="main-content">
107
+
108
+ <div class="section">
109
+
110
+ <div class="section-title">Blog</div>
111
+
112
+ <div class="section-content">
113
+
114
+ <div class="post">
115
+
116
+ <div class="post-title"><h2><a href="#">Template Information</a></h2></div>
117
+
118
+ <div class="post-date">Saturday, September 19, 2009 by Viktor Persson</div>
119
+
120
+ <div class="post-body">
121
+
122
+ <p><a href="#"><img src="img/sample-image.jpg" alt="" class="bordered" /></a></p>
123
+
124
+ <p class="large">This is a free website template by <a href="http://arcsin.se/">Arcsin</a>, built using tableless XHTML and CSS.</p>
125
+
126
+ <p>This template is distributed under a <a href="http://templates.arcsin.se/license/">Creative Commons Attribution 2.5 License</a>, which allows you to use and modify it for any purpose (personal and commercial), under the condition that you keep the provided credit links in the footer.</p>
127
+
128
+ <p>The latest template version and CMS conversions for platforms such as WordPress and Blogger can be found at the official <a href="http://templates.arcsin.se/simple-organization-website-template/">Simple Organization Website Template</a> page.</p>
129
+
130
+ <p>For more templates, questions and comments please visit <a href="http://templates.arcsin.se/">Arcsin Web Templates</a>.</p>
131
+
132
+ <a href="http://templates.arcsin.se/" class="more">Read more &#187;</a>
133
+
134
+ </div>
135
+
136
+ </div>
137
+
138
+ <div class="content-separator"></div>
139
+
140
+ <div class="col3 left">
141
+ <div class="column-content">
142
+
143
+ <div class="post">
144
+ <h3><a href="#">Article title</a></h3>
145
+ <p>Integer diam elit, condi mentum ac semper ut, tincidunt non diam. Ut congue at commodo aenean euismod tincidunt lorem euismod.</p>
146
+ <a href="#" class="more">Read more &#187;</a>
147
+ </div>
148
+
149
+ </div>
150
+ </div>
151
+
152
+ <div class="col3 col3-mid left">
153
+ <div class="column-content">
154
+
155
+ <div class="post">
156
+ <h3><a href="#">Second Article Title</a></h3>
157
+ <p>Sed congue lacinia leo, sed dignissim odio pharetra vel. Fusce a dignissim dui. Fusce semper porttitor enim dapibus venenatis.</p>
158
+ <a href="#" class="more">Read more &#187;</a>
159
+ </div>
160
+
161
+ </div>
162
+ </div>
163
+
164
+ <div class="col3 right">
165
+ <div class="column-content">
166
+
167
+ <div class="post">
168
+ <h3><a href="#">Third title</a></h3>
169
+ <p>Sed auctor hendrerit eros eu eleifend. Cras hendrerit iaculis sodales. Pellentesque interdum rhoncus magna.</p>
170
+ <a href="#" class="more">Read more &#187;</a>
171
+ </div>
172
+
173
+ </div>
174
+ </div>
175
+
176
+ <div class="clearer">&nbsp;</div>
177
+
178
+ </div>
179
+
180
+ </div>
181
+
182
+ <div class="clearer">&nbsp;</div>
183
+
184
+ </div>
185
+
186
+ <div class="right sidebar" id="sidebar">
187
+
188
+ <div class="section">
189
+
190
+ <div class="section-title">Search</div>
191
+
192
+ <div class="section-content">
193
+ <form method="post" action="">
194
+ <input type="text" class="text" size="28" /> &nbsp; <input type="submit" class="button" value="Submit" />
195
+ </form>
196
+ </div>
197
+
198
+ </div>
199
+
200
+ <div class="section">
201
+
202
+ <div class="section-title">Recent Entries</div>
203
+
204
+ <div class="section-content">
205
+
206
+ <ul class="nice-list">
207
+ <li>
208
+ <div class="left"><a href="#">Aenean tempor arcu..</a></div>
209
+ <div class="right">Oct 12</div>
210
+ <div class="clearer">&nbsp;</div>
211
+ </li>
212
+ <li>
213
+ <div class="left"><a href="#">Justo interdum rutrum</a></div>
214
+ <div class="right">Sep 15</div>
215
+ <div class="clearer">&nbsp;</div>
216
+ </li>
217
+ <li>
218
+ <div class="left"><a href="#">In nec justo in urna</a></div>
219
+ <div class="right">Sep 12</div>
220
+ <div class="clearer">&nbsp;</div>
221
+ </li>
222
+ <li>
223
+ <div class="left"><a href="#">Accumsan condimentum</a></div>
224
+ <div class="right">Sep 6</div>
225
+ <div class="clearer">&nbsp;</div>
226
+ </li>
227
+ <li>
228
+ <div class="left"><a href="#">Etiam commodo bibendum</a></div>
229
+ <div class="right">Aug 27</div>
230
+ <div class="clearer">&nbsp;</div>
231
+ </li>
232
+ <li>
233
+ <div class="left"><a href="#">Mauris euismod justo</a></div>
234
+ <div class="right">Aug 21</div>
235
+ <div class="clearer">&nbsp;</div>
236
+ </li>
237
+ <li><a href="#" class="more">Browse Archives &#187;</a></li>
238
+ </ul>
239
+
240
+ </div>
241
+
242
+ </div>
243
+
244
+ <div class="section">
245
+
246
+ <div class="section-title">Board of Members</div>
247
+
248
+ <div class="section-content">
249
+
250
+ <ul class="nice-list">
251
+ <li><a href="#">Elem Semper</a> <span class="quiet">- Director</span></li>
252
+ <li><a href="#">Porttitor Urna</a> <span class="quiet">- Lead Writer</span></li>
253
+ <li><a href="#">Congue Porttitor</a> <span class="quiet">- Editor</span></li>
254
+ <li><a href="#">Etiam Blandit</a> <span class="quiet">- Writer</span></li>
255
+ <li><a href="#">Diet Tesque</a> <span class="quiet">- Writer</span></li>
256
+ </ul>
257
+
258
+ </div>
259
+
260
+ </div>
261
+
262
+ <div class="section">
263
+
264
+ <div class="section-title">Topics</div>
265
+
266
+ <div class="section-content">
267
+ <div class="quiet">
268
+ <a href="#" style="font-size: 120%">vestibulum</a> <a href="#" style="font-size: 120%">ante</a> <a href="#" style="font-size: 150%">ipsum</a> <a href="#" style="font-size: 120%">faucibus</a> <a href="#" style="font-size: 90%">orci luctus</a> <a href="#" style="font-size: 80%">ultrices</a> <a href="#" style="font-size: 220%">posuere cubilia</a> <a href="#" style="font-size: 100%">curae</a> <a href="#" style="font-size: 110%">quisque</a> <a href="#" style="font-size: 150%">ut arcu</a> <a href="#" style="font-size: 140%">eros</a> <a href="#" style="font-size: 100%">vestibulum</a> <a href="#" style="font-size: 90%">dapibus</a> <a href="#" style="font-size: 120%">volutpat</a> <a href="#" style="font-size: 200%">elementum</a>
269
+ </div>
270
+ </div>
271
+
272
+ </div>
273
+
274
+ </div>
275
+
276
+ <div class="clearer">&nbsp;</div>
277
+
278
+ </div>
279
+
280
+ <div id="footer">
281
+
282
+ <div class="left" id="footer-left">
283
+
284
+ <img src="img/logo-small.gif" alt="" class="left" />
285
+
286
+ <p>&copy; 2002-2009 Simple Organization. All rights Reserved</p>
287
+
288
+ <p class="quiet"><a href="http://templates.arcsin.se/">Website template</a> by <a href="http://arcsin.se/">Arcsin</a></p>
289
+
290
+ <div class="clearer">&nbsp;</div>
291
+
292
+ </div>
293
+
294
+ <div class="right" id="footer-right">
295
+
296
+ <p class="large"><a href="#">Blog</a> <span class="text-separator">|</span> <a href="#">Events</a> <span class="text-separator">|</span> <a href="#">About</a> <span class="text-separator">|</span> <a href="#">Archives</a> <span class="text-separator">|</span> <strong><a href="#">Join Us!</a></strong> <span class="text-separator">|</span> <a href="#top" class="quiet">Page Top &uarr;</a></p>
297
+
298
+ </div>
299
+
300
+ <div class="clearer">&nbsp;</div>
301
+
302
+ </div>
303
+
304
+ </div>
305
+
306
+ </body>
307
+ </html>
@@ -0,0 +1,50 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ CORE_CASES = %w{aspects basic folder items list page selector}
4
+ SPECIAL_CASES = %w{user style}
5
+
6
+ THEME_LAYOUTS = {
7
+ :default => [[:home, :default], [:style, :default], [:blog, :default], [:post, :default]],
8
+ :simple_organization => [[:home, :home], [:style, :default], [:blog, :default], [:post, :default]]
9
+ }
10
+
11
+ describe "Common Interface" do
12
+ controller_name "theme"
13
+ integrate_views
14
+
15
+ it "should display general help page" do
16
+ get :help
17
+ response.should be_success
18
+ end
19
+ end
20
+
21
+ AbstractInterface.available_themes.each do |theme_name|
22
+ describe "'#{theme_name}' theme" do
23
+ controller_name 'theme'
24
+ integrate_views
25
+
26
+ (CORE_CASES + SPECIAL_CASES).each do |action_name|
27
+ it "should display '#{action_name}'" do
28
+ get action_name, :_theme => theme_name
29
+ response.should be_success
30
+ end
31
+ end
32
+
33
+ it "should display help page for #{theme_name} theme" do
34
+ get :help, :_theme => theme_name
35
+ response.should be_success
36
+ end
37
+ end
38
+
39
+ describe "'#{theme_name}' Theme for Site" do
40
+ controller_name 'theme_site'
41
+ integrate_views
42
+
43
+ THEME_LAYOUTS[theme_name.to_sym].each do |action_name, ltemplate|
44
+ it "should display #{action_name}" do
45
+ get action_name, :_theme => theme_name, :_layout_template => ltemplate
46
+ response.should be_success
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,4 @@
1
+ --colour
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1 @@
1
+ require File.dirname(__FILE__) + '/../../../../spec/spec_helper'
@@ -0,0 +1,39 @@
1
+ <div class='_files_wiget files'>
2
+
3
+ <div class='_templates' style='display:none'>
4
+
5
+ <textarea class='_file_progress_template'>
6
+ <li class="_file_#{id}">
7
+ <em>#{name}</em>
8
+ (#{size_in_kb} KB)
9
+ <em class='_cancel'>[#{cancel}]</em>
10
+ <span class="progressvalue _progressvalue" ></span>
11
+ <div class="progressbar" ><div class="progress _progress" ></div></div>
12
+ <!-- <span class="_cancel cancel" >&nbsp;</span> -->
13
+ </li>
14
+ </textarea>
15
+
16
+ <textarea class="_file_template">
17
+ <div class='#{file_id}'>
18
+ <a href='#{url}'>#{name}</a> <a class="_delete" href="#">[#{delete}]</a>
19
+ </div>
20
+ </textarea>
21
+
22
+ <textarea class="_content_template">
23
+ <div class="_files"></div>
24
+ <ol class="log _queue"></ol>
25
+ <span class='_flash_holder'></span>
26
+
27
+ <br/><a class="_upload" href="#"></a>
28
+ </textarea>
29
+
30
+ </div>
31
+
32
+ <div class="_content">
33
+ </div>
34
+
35
+ </div>
36
+
37
+ folder_wiget object, {}, {
38
+ :wiget => '._files_wiget'
39
+ }
@@ -0,0 +1,78 @@
1
+ //Inline HTML Tooltip script: By JavaScript Kit: http://www.javascriptkit.com
2
+ //Created: July 10th, 08'
3
+
4
+ var htmltooltip={
5
+ tipclass: 'htmltooltip',
6
+ fadeeffect: [true, 500],
7
+ anchors: [],
8
+ tooltips: [], //array to contain references to all tooltip DIVs on the page
9
+
10
+ positiontip:function($, tipindex, e){
11
+ var anchor=this.anchors[tipindex]
12
+ var tooltip=this.tooltips[tipindex]
13
+ var scrollLeft=window.pageXOffset? window.pageXOffset : this.iebody.scrollLeft
14
+ var scrollTop=window.pageYOffset? window.pageYOffset : this.iebody.scrollTop
15
+ var docwidth=(window.innerWidth)? window.innerWidth-15 : htmltooltip.iebody.clientWidth-15
16
+ var docheight=(window.innerHeight)? window.innerHeight-18 : htmltooltip.iebody.clientHeight-15
17
+ var tipx=anchor.dimensions.offsetx
18
+ var tipy=anchor.dimensions.offsety+anchor.dimensions.h
19
+ tipx=(tipx+tooltip.dimensions.w-scrollLeft>docwidth)? tipx-tooltip.dimensions.w : tipx //account for right edge
20
+ tipy=(tipy+tooltip.dimensions.h-scrollTop>docheight)? tipy-tooltip.dimensions.h-anchor.dimensions.h : tipy //account for bottom edge
21
+ $(tooltip).css({left: tipx, top: tipy})
22
+ },
23
+
24
+ showtip:function($, tipindex, e){
25
+ var tooltip=this.tooltips[tipindex]
26
+ if (this.fadeeffect[0])
27
+ $(tooltip).hide().fadeIn(this.fadeeffect[1])
28
+ else
29
+ $(tooltip).show()
30
+ },
31
+
32
+ hidetip:function($, tipindex, e){
33
+ var tooltip=this.tooltips[tipindex]
34
+ if (this.fadeeffect[0])
35
+ $(tooltip).fadeOut(this.fadeeffect[1])
36
+ else
37
+ $(tooltip).hide()
38
+ },
39
+
40
+ updateanchordimensions:function($){
41
+ var $anchors=$('*[@rel="'+htmltooltip.tipclass+'"]')
42
+ $anchors.each(function(index){
43
+ this.dimensions={w:this.offsetWidth, h:this.offsetHeight, offsetx:$(this).offset().left, offsety:$(this).offset().top}
44
+ })
45
+ },
46
+
47
+ render:function(){
48
+ jQuery(document).ready(function($){
49
+ htmltooltip.iebody=(document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
50
+ var $anchors=$('*[@rel="'+htmltooltip.tipclass+'"]')
51
+ var $tooltips=$('div[@class="'+htmltooltip.tipclass+'"]')
52
+ $anchors.each(function(index){ //find all links with "title=htmltooltip" declaration
53
+ this.dimensions={w:this.offsetWidth, h:this.offsetHeight, offsetx:$(this).offset().left, offsety:$(this).offset().top} //store anchor dimensions
54
+ this.tippos=index+' pos' //store index of corresponding tooltip
55
+ var tooltip=$tooltips.eq(index).get(0) //ref corresponding tooltip
56
+ if (tooltip==null) //if no corresponding tooltip found
57
+ return //exist
58
+ tooltip.dimensions={w:tooltip.offsetWidth, h:tooltip.offsetHeight}
59
+ $(tooltip).remove().appendTo('body') //add tooltip to end of BODY for easier positioning
60
+ htmltooltip.tooltips.push(tooltip) //store reference to each tooltip
61
+ htmltooltip.anchors.push(this) //store reference to each anchor
62
+ var $anchor=$(this)
63
+ $anchor.hover(
64
+ function(e){ //onMouseover element
65
+ htmltooltip.positiontip($, parseInt(this.tippos), e)
66
+ htmltooltip.showtip($, parseInt(this.tippos), e)
67
+ },
68
+ function(e){ //onMouseout element
69
+ htmltooltip.hidetip($, parseInt(this.tippos), e)
70
+ }
71
+ )
72
+ $(window).bind("resize", function(){htmltooltip.updateanchordimensions($)})
73
+ })
74
+ })
75
+ }
76
+ }
77
+
78
+ htmltooltip.render()
@@ -0,0 +1,76 @@
1
+ module MongoMapper
2
+ class ConnectionsPool < Hash
3
+ attr_accessor :mongo_mapper
4
+ def initialize mongo_mapper
5
+ self.mongo_mapper = mongo_mapper
6
+ end
7
+
8
+ def [](database_alias)
9
+ database_alias = database_alias.to_s
10
+ unless connection = super(database_alias)
11
+ mongo_mapper.db_config.should! :include, database_alias
12
+ db_options = mongo_mapper.db_config[database_alias]
13
+ connection = Mongo::Connection.new(db_options['host'], db_options['port'], :logger => mongo_mapper.logger)
14
+
15
+ if defined?(PhusionPassenger)
16
+ PhusionPassenger.on_event(:starting_worker_process) do |forked|
17
+ connection.connect_to_master if forked
18
+ end
19
+ end
20
+
21
+ self[database_alias] = connection
22
+ end
23
+ return connection
24
+ end
25
+ end
26
+
27
+ class DatabasesPool < Hash
28
+ attr_accessor :mongo_mapper
29
+ def initialize mongo_mapper
30
+ self.mongo_mapper = mongo_mapper
31
+ end
32
+
33
+ def [](database_alias)
34
+ database_alias = database_alias.to_s
35
+ unless db = super(database_alias)
36
+ mongo_mapper.db_config.should! :include, database_alias
37
+ db_options = mongo_mapper.db_config[database_alias]
38
+ db = mongo_mapper.connections[database_alias].db db_options['name'].should!(:be_a, String)
39
+ self[database_alias] = db
40
+ end
41
+ return db
42
+ end
43
+ end
44
+
45
+ class << self
46
+ attr_accessor :db_config
47
+
48
+ def db_config
49
+ unless @db_config
50
+ if defined?(::Rails) and defined?(DATABASE)
51
+ @db_config = {}
52
+ DATABASE["#{::Rails.env}!"].to_h.each do |db_alias, options|
53
+ @db_config[db_alias.to_s] = {
54
+ 'name' => options.name!,
55
+ 'host' => options.host(nil),
56
+ 'port' => options.port(nil)
57
+ }
58
+ end
59
+ else
60
+ @db_config = {}
61
+ # raise "If you don't using Rails you must override this method and provide your own config!"
62
+ end
63
+ end
64
+ @db_config
65
+ end
66
+
67
+ def connections
68
+ @connections ||= ConnectionsPool.new(self)
69
+ end
70
+
71
+ def databases
72
+ @databases ||= DatabasesPool.new(self)
73
+ end
74
+ end
75
+
76
+ end
@@ -0,0 +1,32 @@
1
+ #
2
+ # ObjectID
3
+ #
4
+ # Mongo::ObjectID.class_eval do
5
+ # def == other
6
+ # self.to_s == other.to_s
7
+ # end
8
+ #
9
+ # def to_yaml *args
10
+ # to_s.to_yaml *args
11
+ # end
12
+ # end
13
+
14
+
15
+ #
16
+ # Fixes
17
+ #
18
+ if Object.const_defined?(:RAILS_ENV) and Object.const_get(:RAILS_ENV) != 'production'
19
+ MongoMapper::Document::ClassMethods.class_eval do
20
+ def ensure_index(name_or_array, options={})
21
+ end
22
+ end
23
+ end
24
+
25
+
26
+ MongoMapper::Plugins::Associations::InArrayProxy.class_eval do
27
+ def delete(doc)
28
+ ids.delete(doc.id)
29
+ klass.delete(doc.id)
30
+ reset
31
+ end
32
+ end
@@ -0,0 +1,44 @@
1
+ # Measures MongoDB requests time and adds it to log
2
+
3
+ if defined?(Rails) and RAILS_ENV == 'development'
4
+ Mongo::Connection.class_eval do
5
+ def send_message_with_time operation, message, log_message=nil
6
+ begin
7
+ logger = @logger
8
+ @logger = nil
9
+ t = Time.now
10
+ send_message_without_time operation, message, log_message
11
+ ensure
12
+ logger.debug(" MONGODB (#{Time.now - t}) #{log_message || message}") if logger
13
+ @logger = logger
14
+ end
15
+ end
16
+ alias_method_chain :send_message, :time
17
+
18
+ def send_message_with_safe_check_with_time operation, message, db_name, log_message=nil
19
+ begin
20
+ logger = @logger
21
+ @logger = nil
22
+ t = Time.now
23
+ send_message_with_safe_check_without_time operation, message, db_name, log_message
24
+ ensure
25
+ logger.debug(" MONGODB (#{Time.now - t}) #{log_message || message}") if logger
26
+ @logger = logger
27
+ end
28
+ end
29
+ alias_method_chain :send_message_with_safe_check, :time
30
+
31
+ def receive_message_with_time operation, message, log_message=nil, socket=nil
32
+ begin
33
+ logger = @logger
34
+ @logger = nil
35
+ t = Time.now
36
+ receive_message_without_time operation, message, log_message, socket
37
+ ensure
38
+ logger.debug(" MONGODB (#{Time.now - t}) #{log_message || message}") if logger
39
+ @logger = logger
40
+ end
41
+ end
42
+ alias_method_chain :receive_message, :time
43
+ end
44
+ end
@@ -0,0 +1,9 @@
1
+ Mongo::Collection.class_eval do
2
+ def upsert id, opt
3
+ opt.size.should! :==, 1
4
+ opt.should! :be_a, Hash
5
+ opt.values.first.should! :be_a, Hash
6
+
7
+ update({:_id => id}, opt, {:upsert => true, :safe => true})
8
+ end
9
+ end
@@ -0,0 +1,33 @@
1
+ Rake::TaskManager.class_eval do
2
+ def remove_task(task_name)
3
+ @tasks.delete(task_name.to_s)
4
+ end
5
+ end
6
+
7
+ def remove_task(task_name)
8
+ Rake.application.remove_task(task_name)
9
+ end
10
+
11
+ namespace :db do
12
+
13
+ remove_task 'db:migrate'
14
+ desc "Migrate Database"
15
+ task :migrate => :environment do
16
+ ::Migration = MongoMapper::Migration
17
+ Dir["#{Rails.root}/lib/db/**/*.rb"].each{|f| require f.sub(/\.rb$/, '')}
18
+
19
+ database_alias = ENV['d'] || ENV['database']
20
+ database_alias = 'accounts' if database_alias.blank?
21
+
22
+ version = ENV['v'] || ENV['version']
23
+ if version.blank?
24
+ size = MongoMapper::Migration.definitions[database_alias].size
25
+ highest_defined_version = size == 0 ? 0 : size - 1
26
+ version = highest_defined_version
27
+ else
28
+ version = version.to_i
29
+ end
30
+
31
+ MongoMapper::Migration.update database_alias, version
32
+ end
33
+ end