atreides 2.0.0

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 (309) hide show
  1. data/LICENSE +7 -0
  2. data/README.rdoc +1 -0
  3. data/app/assets/javascripts/atreides/admin.js +22 -0
  4. data/app/assets/javascripts/atreides/admin_base.js.erb +247 -0
  5. data/app/assets/javascripts/atreides/admin_edit.js +9 -0
  6. data/app/assets/javascripts/atreides/application.js +15 -0
  7. data/app/assets/javascripts/atreides/comments.coffee +50 -0
  8. data/app/assets/javascripts/atreides/public.js +24 -0
  9. data/app/assets/javascripts/atreides/public_base.js.erb +119 -0
  10. data/app/assets/javascripts/atreides/terryblr.js +57 -0
  11. data/app/assets/stylesheets/atreides/admin.css +21 -0
  12. data/app/assets/stylesheets/atreides/admin_base.css.erb +1762 -0
  13. data/app/assets/stylesheets/atreides/application.css +13 -0
  14. data/app/assets/stylesheets/atreides/formtastic_changes.css +10 -0
  15. data/app/assets/stylesheets/atreides/iphone-checkboxes.css.erb +97 -0
  16. data/app/assets/stylesheets/atreides/jBreadCrumb.css +109 -0
  17. data/app/assets/stylesheets/atreides/public.css +15 -0
  18. data/app/assets/stylesheets/atreides/public_base.css +101 -0
  19. data/app/assets/stylesheets/atreides/swfupload.css.erb +63 -0
  20. data/app/controllers/admin/atreides/comments_controller.rb +47 -0
  21. data/app/controllers/admin/atreides/content_parts_controller.rb +43 -0
  22. data/app/controllers/admin/atreides/dropbox_controller.rb +40 -0
  23. data/app/controllers/admin/atreides/features_controller.rb +63 -0
  24. data/app/controllers/admin/atreides/github_controller.rb +35 -0
  25. data/app/controllers/admin/atreides/links_controller.rb +3 -0
  26. data/app/controllers/admin/atreides/messages_controller.rb +3 -0
  27. data/app/controllers/admin/atreides/orders_controller.rb +35 -0
  28. data/app/controllers/admin/atreides/pages_controller.rb +59 -0
  29. data/app/controllers/admin/atreides/photos_controller.rb +79 -0
  30. data/app/controllers/admin/atreides/posts_controller.rb +109 -0
  31. data/app/controllers/admin/atreides/products_controller.rb +39 -0
  32. data/app/controllers/admin/atreides/sessions_controller.rb +7 -0
  33. data/app/controllers/admin/atreides/sizes_controller.rb +4 -0
  34. data/app/controllers/admin/atreides/tags_controller.rb +20 -0
  35. data/app/controllers/admin/atreides/users_controller.rb +50 -0
  36. data/app/controllers/admin/atreides/videos_controller.rb +53 -0
  37. data/app/controllers/atreides/admin_controller.rb +96 -0
  38. data/app/controllers/atreides/admin_home_controller.rb +211 -0
  39. data/app/controllers/atreides/application_controller.rb +93 -0
  40. data/app/controllers/atreides/comments_controller.rb +43 -0
  41. data/app/controllers/atreides/home_controller.rb +71 -0
  42. data/app/controllers/atreides/likes_controller.rb +44 -0
  43. data/app/controllers/atreides/pages_controller.rb +34 -0
  44. data/app/controllers/atreides/posts_controller.rb +119 -0
  45. data/app/controllers/atreides/public_controller.rb +43 -0
  46. data/app/helpers/admin/atreides/comments_helper.rb +8 -0
  47. data/app/helpers/admin/atreides/dropbox_helper.rb +42 -0
  48. data/app/helpers/admin/atreides/features_helper.rb +4 -0
  49. data/app/helpers/admin/atreides/github_helper.rb +43 -0
  50. data/app/helpers/admin/atreides/links_helper.rb +4 -0
  51. data/app/helpers/admin/atreides/messages_helper.rb +4 -0
  52. data/app/helpers/admin/atreides/orders_helper.rb +30 -0
  53. data/app/helpers/admin/atreides/pages_helper.rb +17 -0
  54. data/app/helpers/admin/atreides/photos_helper.rb +14 -0
  55. data/app/helpers/admin/atreides/posts_helper.rb +41 -0
  56. data/app/helpers/admin/atreides/products_helper.rb +37 -0
  57. data/app/helpers/admin/atreides/sizes_helper.rb +4 -0
  58. data/app/helpers/admin/atreides/user_sessions_helper.rb +4 -0
  59. data/app/helpers/admin/atreides/users_helper.rb +8 -0
  60. data/app/helpers/admin/atreides/videos_helper.rb +4 -0
  61. data/app/helpers/atreides/admin_helper.rb +243 -0
  62. data/app/helpers/atreides/admin_home_helper.rb +4 -0
  63. data/app/helpers/atreides/application_helper.rb +210 -0
  64. data/app/helpers/atreides/home_helper.rb +4 -0
  65. data/app/helpers/atreides/posts_helper.rb +119 -0
  66. data/app/inputs/files_input.rb +13 -0
  67. data/app/inputs/price_input.rb +18 -0
  68. data/app/inputs/underline_input.rb +16 -0
  69. data/app/models/atreides/ability.rb +24 -0
  70. data/app/models/atreides/comment.rb +93 -0
  71. data/app/models/atreides/content_part.rb +107 -0
  72. data/app/models/atreides/feature.rb +90 -0
  73. data/app/models/atreides/github.rb +74 -0
  74. data/app/models/atreides/like.rb +35 -0
  75. data/app/models/atreides/line_item.rb +4 -0
  76. data/app/models/atreides/link.rb +32 -0
  77. data/app/models/atreides/message.rb +34 -0
  78. data/app/models/atreides/order.rb +209 -0
  79. data/app/models/atreides/page.rb +114 -0
  80. data/app/models/atreides/photo.rb +130 -0
  81. data/app/models/atreides/post.rb +271 -0
  82. data/app/models/atreides/product.rb +75 -0
  83. data/app/models/atreides/site.rb +59 -0
  84. data/app/models/atreides/size.rb +44 -0
  85. data/app/models/atreides/tag.rb +31 -0
  86. data/app/models/atreides/tweet.rb +123 -0
  87. data/app/models/atreides/user.rb +129 -0
  88. data/app/models/atreides/video.rb +206 -0
  89. data/app/models/atreides/vote.rb +43 -0
  90. data/app/models/fb_post_publisher_job.rb +72 -0
  91. data/app/models/settings.rb +19 -0
  92. data/app/models/tumblr_post_publisher_job.rb +75 -0
  93. data/app/models/tw_post_publisher_job.rb +54 -0
  94. data/app/views/admin/_edit_head_content.html.haml +2 -0
  95. data/app/views/admin/atreides/comments/_line.html.haml +60 -0
  96. data/app/views/admin/atreides/comments/_sidebar.html.haml +52 -0
  97. data/app/views/admin/atreides/comments/create.js.haml +1 -0
  98. data/app/views/admin/atreides/comments/index.html.haml +34 -0
  99. data/app/views/admin/atreides/content_parts/_form.html.haml +21 -0
  100. data/app/views/admin/atreides/content_parts/_photos.html.haml +18 -0
  101. data/app/views/admin/atreides/content_parts/_text.html.haml +1 -0
  102. data/app/views/admin/atreides/content_parts/_videos.html.haml +12 -0
  103. data/app/views/admin/atreides/content_parts/destroy.js.haml +3 -0
  104. data/app/views/admin/atreides/content_parts/edit.html.haml +0 -0
  105. data/app/views/admin/atreides/content_parts/new.html.haml +0 -0
  106. data/app/views/admin/atreides/content_parts/new.js.haml +11 -0
  107. data/app/views/admin/atreides/dropbox/_uploader.html.haml +134 -0
  108. data/app/views/admin/atreides/dropbox/list.html.haml +27 -0
  109. data/app/views/admin/atreides/dropbox/setup.html.haml +8 -0
  110. data/app/views/admin/atreides/features/_form.html.haml +60 -0
  111. data/app/views/admin/atreides/features/edit.html.haml +1 -0
  112. data/app/views/admin/atreides/features/index.html.haml +24 -0
  113. data/app/views/admin/atreides/features/new.html.haml +1 -0
  114. data/app/views/admin/atreides/github/index.html.haml +26 -0
  115. data/app/views/admin/atreides/github/show.html.haml +19 -0
  116. data/app/views/admin/atreides/likes/create.js.haml +2 -0
  117. data/app/views/admin/atreides/orders/_sidebar.html.haml +20 -0
  118. data/app/views/admin/atreides/orders/edit.html.haml +52 -0
  119. data/app/views/admin/atreides/orders/index.html.haml +8 -0
  120. data/app/views/admin/atreides/pages/_form.html.haml +31 -0
  121. data/app/views/admin/atreides/pages/edit.html.haml +3 -0
  122. data/app/views/admin/atreides/pages/index.html.haml +15 -0
  123. data/app/views/admin/atreides/pages/index.js.haml +4 -0
  124. data/app/views/admin/atreides/pages/new.html.haml +2 -0
  125. data/app/views/admin/atreides/photos/create.js.haml +18 -0
  126. data/app/views/admin/atreides/photos/destroy.js.haml +3 -0
  127. data/app/views/admin/atreides/posts/_archives.html.haml +19 -0
  128. data/app/views/admin/atreides/posts/_form.html.haml +66 -0
  129. data/app/views/admin/atreides/posts/_form_buttons.html.haml +9 -0
  130. data/app/views/admin/atreides/posts/_form_sidebar.html.haml +85 -0
  131. data/app/views/admin/atreides/posts/edit.html.haml +2 -0
  132. data/app/views/admin/atreides/posts/index.html.haml +24 -0
  133. data/app/views/admin/atreides/posts/index.js.haml +1 -0
  134. data/app/views/admin/atreides/posts/new.html.haml +2 -0
  135. data/app/views/admin/atreides/products/edit.html.haml +69 -0
  136. data/app/views/admin/atreides/products/index.html.haml +31 -0
  137. data/app/views/admin/atreides/sessions/new.html.haml +13 -0
  138. data/app/views/admin/atreides/user_sessions/new.html.haml +10 -0
  139. data/app/views/admin/atreides/users/_form.html.haml +19 -0
  140. data/app/views/admin/atreides/users/edit.html.haml +6 -0
  141. data/app/views/admin/atreides/users/index.html.haml +11 -0
  142. data/app/views/admin/atreides/users/new.html.haml +6 -0
  143. data/app/views/admin/atreides/users/show.html.haml +4 -0
  144. data/app/views/admin/atreides/videos/create.js.haml +9 -0
  145. data/app/views/admin/atreides/videos/destroy.js.haml +3 -0
  146. data/app/views/admin/common/_archive_sidebar.html.haml +29 -0
  147. data/app/views/admin/common/_list_table.html.erb +37 -0
  148. data/app/views/admin/common/_list_table_row.html.erb +18 -0
  149. data/app/views/admin/common/_pagination.html.erb +1 -0
  150. data/app/views/admin/common/_search_form.html.erb +6 -0
  151. data/app/views/admin/common/access_denied.html.haml +1 -0
  152. data/app/views/atreides/admin/_content_nav.html.haml +8 -0
  153. data/app/views/atreides/admin_home/_analytics.html.haml +93 -0
  154. data/app/views/atreides/admin_home/_fb_page_likes_analytics_tbody.haml +10 -0
  155. data/app/views/atreides/admin_home/_fb_page_views_analytics_tbody.haml +10 -0
  156. data/app/views/atreides/admin_home/_top_landing_pages_analytics_tbody.haml +14 -0
  157. data/app/views/atreides/admin_home/_top_referrers_analytics_tbody.haml +12 -0
  158. data/app/views/atreides/admin_home/_tweets_analytics_tbody.html.haml +8 -0
  159. data/app/views/atreides/admin_home/_visitors_analytics_tbody.html.haml +12 -0
  160. data/app/views/atreides/admin_home/index.html.haml +57 -0
  161. data/app/views/atreides/admin_home/search.html.haml +11 -0
  162. data/app/views/atreides/admin_home/setup.html.haml +15 -0
  163. data/app/views/atreides/common/_gallery_params.xml.erb +174 -0
  164. data/app/views/atreides/common/slideshow.xml.haml +6 -0
  165. data/app/views/atreides/errors/404.html.haml +10 -0
  166. data/app/views/atreides/errors/500.html.haml +4 -0
  167. data/app/views/atreides/home/index.html.haml +30 -0
  168. data/app/views/atreides/home/index.js.haml +1 -0
  169. data/app/views/atreides/home/robots.txt.erb +5 -0
  170. data/app/views/atreides/home/sitemap.xml.builder +35 -0
  171. data/app/views/atreides/pages/show.html.haml +3 -0
  172. data/app/views/atreides/posts/_archives.html.haml +19 -0
  173. data/app/views/atreides/posts/_featured_posts.html.haml +10 -0
  174. data/app/views/atreides/posts/_list.html.haml +9 -0
  175. data/app/views/atreides/posts/archives.html.haml +3 -0
  176. data/app/views/atreides/posts/archives.js.haml +1 -0
  177. data/app/views/atreides/posts/gallery_params.xml.haml +1 -0
  178. data/app/views/atreides/posts/index.atom.builder +22 -0
  179. data/app/views/atreides/posts/index.html.haml +13 -0
  180. data/app/views/atreides/posts/index.rss.builder +21 -0
  181. data/app/views/atreides/posts/show.html.haml +23 -0
  182. data/app/views/atreides/posts/tagged.html.haml +4 -0
  183. data/app/views/atreides/posts/tagged.js.haml +1 -0
  184. data/app/views/layouts/admin.html.haml +62 -0
  185. data/app/views/layouts/application.html.haml +37 -0
  186. data/app/views/layouts/atreides/application.html.erb +14 -0
  187. data/app/views/layouts/public.html.haml +39 -0
  188. data/config/cucumber.yml +11 -0
  189. data/config/locales/en.yml +236 -0
  190. data/config/locales/fr.yml +199 -0
  191. data/config/routes.rb +119 -0
  192. data/lib/assets/images/atreides/admin/add.png +0 -0
  193. data/lib/assets/images/atreides/admin/add_btn.png +0 -0
  194. data/lib/assets/images/atreides/admin/add_dashboard.png +0 -0
  195. data/lib/assets/images/atreides/admin/add_photo_button_sprite.png +0 -0
  196. data/lib/assets/images/atreides/admin/add_photos_btn.png +0 -0
  197. data/lib/assets/images/atreides/admin/background.png +0 -0
  198. data/lib/assets/images/atreides/admin/calendar.png +0 -0
  199. data/lib/assets/images/atreides/admin/chevron.gif +0 -0
  200. data/lib/assets/images/atreides/admin/chevron_overlay.png +0 -0
  201. data/lib/assets/images/atreides/admin/choose_photos_button_sprite.png +0 -0
  202. data/lib/assets/images/atreides/admin/content_bg.png +0 -0
  203. data/lib/assets/images/atreides/admin/content_bg_edit_form.png +0 -0
  204. data/lib/assets/images/atreides/admin/content_part_break.png +0 -0
  205. data/lib/assets/images/atreides/admin/content_part_drop_target.png +0 -0
  206. data/lib/assets/images/atreides/admin/content_part_icons.png +0 -0
  207. data/lib/assets/images/atreides/admin/content_part_photos.png +0 -0
  208. data/lib/assets/images/atreides/admin/content_part_text.png +0 -0
  209. data/lib/assets/images/atreides/admin/content_part_videos.png +0 -0
  210. data/lib/assets/images/atreides/admin/content_top_edit_form.png +0 -0
  211. data/lib/assets/images/atreides/admin/dashboard-indicator.gif +0 -0
  212. data/lib/assets/images/atreides/admin/dashboard_controls_activity.png +0 -0
  213. data/lib/assets/images/atreides/admin/dashboard_controls_customize.png +0 -0
  214. data/lib/assets/images/atreides/admin/dashboard_controls_drafts.png +0 -0
  215. data/lib/assets/images/atreides/admin/dashboard_controls_open.png +0 -0
  216. data/lib/assets/images/atreides/admin/dashboard_controls_posts.png +0 -0
  217. data/lib/assets/images/atreides/admin/dashboard_controls_queue.png +0 -0
  218. data/lib/assets/images/atreides/admin/dashboard_nav_border.png +0 -0
  219. data/lib/assets/images/atreides/admin/delete_bg.png +0 -0
  220. data/lib/assets/images/atreides/admin/down_arrow.png +0 -0
  221. data/lib/assets/images/atreides/admin/dropbox_big.jpg +0 -0
  222. data/lib/assets/images/atreides/admin/dropbox_btn.png +0 -0
  223. data/lib/assets/images/atreides/admin/dropbox_folder.png +0 -0
  224. data/lib/assets/images/atreides/admin/dropbox_icon.gif +0 -0
  225. data/lib/assets/images/atreides/admin/dropbox_icon.png +0 -0
  226. data/lib/assets/images/atreides/admin/expand_collapse.png +0 -0
  227. data/lib/assets/images/atreides/admin/form_sidebar_divider.png +0 -0
  228. data/lib/assets/images/atreides/admin/grey_hatch_bg.png +0 -0
  229. data/lib/assets/images/atreides/admin/header.png +0 -0
  230. data/lib/assets/images/atreides/admin/icon_dropbox.gif +0 -0
  231. data/lib/assets/images/atreides/admin/icon_home.gif +0 -0
  232. data/lib/assets/images/atreides/admin/input_bg.gif +0 -0
  233. data/lib/assets/images/atreides/admin/large_loading.gif +0 -0
  234. data/lib/assets/images/atreides/admin/new_content_icons.png +0 -0
  235. data/lib/assets/images/atreides/admin/off.png +0 -0
  236. data/lib/assets/images/atreides/admin/on.png +0 -0
  237. data/lib/assets/images/atreides/admin/page_icon.png +0 -0
  238. data/lib/assets/images/atreides/admin/permalink.png +0 -0
  239. data/lib/assets/images/atreides/admin/photos-display-type-gallery.png +0 -0
  240. data/lib/assets/images/atreides/admin/photos-display-type-photos.png +0 -0
  241. data/lib/assets/images/atreides/admin/product.png +0 -0
  242. data/lib/assets/images/atreides/admin/remove.png +0 -0
  243. data/lib/assets/images/atreides/admin/resize.png +0 -0
  244. data/lib/assets/images/atreides/admin/save_btn.png +0 -0
  245. data/lib/assets/images/atreides/admin/search_icon.png +0 -0
  246. data/lib/assets/images/atreides/admin/select_arrows.png +0 -0
  247. data/lib/assets/images/atreides/admin/slider.png +0 -0
  248. data/lib/assets/images/atreides/admin/slider_center.png +0 -0
  249. data/lib/assets/images/atreides/admin/slider_left.png +0 -0
  250. data/lib/assets/images/atreides/admin/slider_right.png +0 -0
  251. data/lib/assets/images/atreides/admin/sprite.png +0 -0
  252. data/lib/assets/images/atreides/admin/upload_btn.png +0 -0
  253. data/lib/assets/images/atreides/admin/video_bg.png +0 -0
  254. data/lib/assets/images/atreides/blank.gif +0 -0
  255. data/lib/assets/images/atreides/closelabel.png +0 -0
  256. data/lib/assets/images/atreides/loading.gif +0 -0
  257. data/lib/assets/images/atreides/sprite.png +0 -0
  258. data/lib/assets/images/atreides/tipsy.gif +0 -0
  259. data/lib/atreides.rb +82 -0
  260. data/lib/atreides/base/aasmstates.rb +117 -0
  261. data/lib/atreides/base/base.rb +40 -0
  262. data/lib/atreides/base/taggable.rb +43 -0
  263. data/lib/atreides/base/validation.rb +23 -0
  264. data/lib/atreides/configuration.rb +61 -0
  265. data/lib/atreides/engine.rb +41 -0
  266. data/lib/atreides/extendable.rb +12 -0
  267. data/lib/atreides/i18n_helpers.rb +65 -0
  268. data/lib/atreides/railties/tasks.rake +68 -0
  269. data/lib/atreides/time_formats.rb +19 -0
  270. data/lib/atreides/validators.rb +15 -0
  271. data/lib/atreides/version.rb +4 -0
  272. data/lib/generators/atreides/USAGE +0 -0
  273. data/lib/generators/atreides/atreides_generator.rb +58 -0
  274. data/lib/generators/templates/Procfile +2 -0
  275. data/lib/generators/templates/add_role_to_users.rb +16 -0
  276. data/lib/generators/templates/add_userid_to_resources.rb +15 -0
  277. data/lib/generators/templates/create_comments.rb +19 -0
  278. data/lib/generators/templates/create_content_parts.rb +66 -0
  279. data/lib/generators/templates/create_features.rb +21 -0
  280. data/lib/generators/templates/create_likes.rb +16 -0
  281. data/lib/generators/templates/create_line_items.rb +21 -0
  282. data/lib/generators/templates/create_links.rb +16 -0
  283. data/lib/generators/templates/create_messages.rb +24 -0
  284. data/lib/generators/templates/create_orders.rb +31 -0
  285. data/lib/generators/templates/create_pages.rb +31 -0
  286. data/lib/generators/templates/create_photos.rb +22 -0
  287. data/lib/generators/templates/create_posts.rb +38 -0
  288. data/lib/generators/templates/create_products.rb +24 -0
  289. data/lib/generators/templates/create_sessions.rb +16 -0
  290. data/lib/generators/templates/create_sites.rb +35 -0
  291. data/lib/generators/templates/create_sizes.rb +16 -0
  292. data/lib/generators/templates/create_tweets.rb +25 -0
  293. data/lib/generators/templates/create_videos.rb +24 -0
  294. data/lib/generators/templates/create_votes.rb +20 -0
  295. data/lib/generators/templates/delayed_job.rb +5 -0
  296. data/lib/generators/templates/devise_create_users.rb +42 -0
  297. data/lib/generators/templates/disqussion.rb +30 -0
  298. data/lib/generators/templates/em-net-http_override.rb +74 -0
  299. data/lib/generators/templates/initializer.rb +21 -0
  300. data/lib/generators/templates/new_relic.rb +6 -0
  301. data/lib/generators/templates/oembed.yml +63 -0
  302. data/lib/generators/templates/settings.yml +110 -0
  303. data/lib/generators/templates/string_extensions.rb +20 -0
  304. data/lib/generators/templates/unicorn.rb +2 -0
  305. data/lib/tasks/atreides_tasks.rake +4 -0
  306. data/lib/tasks/cucumber.rake +58 -0
  307. data/lib/tasks/tasks.rake +403 -0
  308. data/lib/tasks/yard.rake +18 -0
  309. metadata +1458 -0
@@ -0,0 +1,16 @@
1
+ class CreateLinks < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :links, :force => true do |t|
4
+ t.integer :post_id
5
+ t.string :caption
6
+ t.string :url
7
+ t.integer :display_order, :default => 0
8
+ t.timestamps
9
+ end
10
+ add_index :links, :post_id
11
+ end
12
+
13
+ def self.down
14
+ drop_table :links
15
+ end
16
+ end
@@ -0,0 +1,24 @@
1
+ class CreateMessages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :messages, :force => true do |t|
4
+ t.string :name
5
+ t.string :subject
6
+ t.string :email
7
+ t.text :body
8
+ t.string :messagable_type
9
+ t.integer :messagable_id
10
+ t.integer :user_id
11
+ t.string :image_file_name
12
+ t.string :image_content_type
13
+ t.integer :image_file_size
14
+ t.datetime :image_updated_at
15
+ t.timestamps
16
+ end
17
+ add_index :messages, :messagable_type
18
+ add_index :messages, :messagable_id
19
+ end
20
+
21
+ def self.down
22
+ drop_table :messages
23
+ end
24
+ end
@@ -0,0 +1,31 @@
1
+ class CreateOrders < ActiveRecord::Migration
2
+ def self.up
3
+ create_table "orders", :force => true do |t|
4
+ t.string "state"
5
+ t.integer "user_id"
6
+ t.integer "amount_cents", :default => 0
7
+ t.integer "discount_cents", :default => 0
8
+ t.integer "final_amount_cents", :default => 0
9
+ t.datetime "created_at"
10
+ t.datetime "updated_at"
11
+ t.string "ip_address"
12
+ t.string "first_name"
13
+ t.string "last_name"
14
+ t.string "zip", :limit => 15
15
+ t.string "country"
16
+ t.string "currency"
17
+ t.string "street"
18
+ t.string "city"
19
+ t.string "province"
20
+ t.string "payment_gateway"
21
+ t.string "gateway_data", :limit => 4000
22
+
23
+ t.string "email"
24
+ end
25
+ add_index "orders", ["user_id"], :name => "index_orders_on_user_id"
26
+ end
27
+
28
+ def self.down
29
+ drop_table :orders
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ class CreatePages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :pages, :force => true do |t|
4
+ t.string :title
5
+ t.text :body
6
+ t.string :slug
7
+ t.datetime :published_at
8
+ t.string :state
9
+ t.timestamps
10
+
11
+ t.integer :likes_count, :default => 0
12
+ t.integer :comments_count, :default => 0
13
+ t.integer :votes_count, :default => 0
14
+
15
+ t.integer :parent_id
16
+ t.integer :position, :default => 0
17
+
18
+ t.integer :post_id
19
+ end
20
+ add_index :pages, :slug
21
+ add_index :pages, :likes_count
22
+ add_index :pages, :comments_count
23
+ add_index :pages, :votes_count
24
+ add_index :pages, :parent_id
25
+ add_index :pages, :post_id
26
+ end
27
+
28
+ def self.down
29
+ drop_table :pages
30
+ end
31
+ end
@@ -0,0 +1,22 @@
1
+ class CreatePhotos < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :photos, :force => true do |t|
4
+ t.string :photoable_type
5
+ t.integer :photoable_id
6
+ t.string :caption
7
+ t.string :url
8
+ t.string :image_file_name
9
+ t.string :image_content_type
10
+ t.integer :image_file_size
11
+ t.datetime :image_updated_at
12
+ t.string :sizes, :limit => 3000
13
+ t.timestamps
14
+
15
+ t.integer :display_order, :default => 0
16
+ end
17
+ end
18
+
19
+ def self.down
20
+ drop_table :photos
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ class CreatePosts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :posts, :force => true do |t|
4
+ t.string :post_type
5
+ t.string :title
6
+ t.text :body
7
+ t.string :slug
8
+ t.datetime :published_at
9
+ t.string :state
10
+ t.timestamps
11
+ t.integer :tumblr_id, :limit => 8 # BigInt because new tumblr ids are longer
12
+ t.integer :likes_count, :default => 0
13
+ t.integer :comments_count, :default => 0
14
+ t.integer :votes_count, :default => 0
15
+ t.integer :twitter_id
16
+ t.integer :facebook_id
17
+ t.string :display_type
18
+ t.integer :tw_delayed_job_id
19
+ t.integer :fb_delayed_job_id
20
+ t.integer :tumblr_delayed_job_id
21
+ t.string :social_msg, :limit => 140
22
+ t.integer :linkable_id
23
+ t.string :linkable_type
24
+ t.string :import_url
25
+ end
26
+ add_index :posts, :slug
27
+ add_index :posts, :likes_count
28
+ add_index :posts, :comments_count
29
+ add_index :posts, :votes_count
30
+ add_index :posts, :twitter_id
31
+ add_index :posts, :linkable_id
32
+ add_index :posts, :tumblr_delayed_job_id
33
+ end
34
+
35
+ def self.down
36
+ drop_table :posts
37
+ end
38
+ end
@@ -0,0 +1,24 @@
1
+ class CreateProducts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :products, :force => true do |t|
4
+ t.string :title
5
+ t.string :slug
6
+ t.text :body
7
+ t.integer :price_cents, :default => 0
8
+ t.string :price_currency
9
+ t.string :state
10
+ t.datetime :published_at
11
+ t.integer :comments_count, :default => 0
12
+ t.integer :likes_count, :default => 0
13
+ t.integer :votes_count, :default => 0
14
+ t.timestamps
15
+ end
16
+ add_index :products, :comments_count
17
+ add_index :products, :likes_count
18
+ add_index :products, :votes_count
19
+ end
20
+
21
+ def self.down
22
+ drop_table :products
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ class CreateSessions < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :sessions do |t|
4
+ t.string :session_id, :null => false
5
+ t.text :data
6
+ t.timestamps
7
+ end
8
+
9
+ add_index :sessions, :session_id
10
+ add_index :sessions, :updated_at
11
+ end
12
+
13
+ def self.down
14
+ drop_table :sessions
15
+ end
16
+ end
@@ -0,0 +1,35 @@
1
+ class CreateSites < ActiveRecord::Migration
2
+
3
+ TABLES = %w(posts pages features).freeze
4
+
5
+ def self.up
6
+ create_table :sites, :force => true do |t|
7
+ t.string :name
8
+ t.string :lang
9
+ t.timestamps
10
+ end
11
+ add_index :sites, :name, :unique => true
12
+
13
+ TABLES.each do |tbl|
14
+ add_column tbl, :site_id, :integer
15
+ add_index tbl, :site_id
16
+ end
17
+
18
+ # Migrate existing posts to new site
19
+ s = Atreides::Site.find_by_name('www') || Atreides::Site.create(:name => 'www')
20
+ TABLES.each do |tbl|
21
+ "Atreides::#{tbl.classify}".constantize.update_all({:site_id => s.id}, {:site_id => nil})
22
+ end
23
+
24
+ end
25
+
26
+ def self.down
27
+
28
+ drop_table :sites
29
+
30
+ TABLES.each do |tbl|
31
+ remove_column tbl, :site_id
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,16 @@
1
+ class CreateSizes < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :sizes, :force => true do |t|
4
+ t.integer :product_id
5
+ t.string :name
6
+ t.integer :qty
7
+ t.integer :display_order, :default => 0
8
+ t.timestamps
9
+ end
10
+ add_index :sizes, :product_id
11
+ end
12
+
13
+ def self.down
14
+ drop_table :sizes
15
+ end
16
+ end
@@ -0,0 +1,25 @@
1
+ class CreateTweets < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :tweets, :force => true do |t|
4
+ t.datetime :tweeted_at
5
+ t.string :text, :length => 140
6
+ if Rails.database.mysql?
7
+ t.column :twitter_id, 'BIGINT UNSIGNED'
8
+ elsif Rails.database.postgresql?
9
+ t.column :twitter_id, 'BIGINT'
10
+ end
11
+ t.integer :twitter_id, :limit => 20
12
+ t.string :from_user
13
+ t.string :profile_image_url
14
+ t.string :to_user
15
+ t.integer :reach, :default => 0
16
+ t.timestamps
17
+ end
18
+ add_index :tweets, :tweeted_at
19
+ add_index :tweets, :twitter_id, :unique => true
20
+ end
21
+
22
+ def self.down
23
+ drop_table :tweets
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ class CreateVideos < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :videos, :force => true do |t|
4
+ t.integer :post_id
5
+ t.string :caption
6
+ t.string :url, :limit => 3000
7
+ t.string :vimeo_id
8
+ t.timestamps
9
+
10
+ t.integer :display_order, :default => 0
11
+
12
+ t.string :embed, :limit => 3000
13
+
14
+ t.integer :width
15
+ t.integer :height
16
+ t.string :thumb_url
17
+ end
18
+ add_index :videos, :post_id
19
+ end
20
+
21
+ def self.down
22
+ drop_table :videos
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ class CreateVotes < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :votes, :force => true do |t|
4
+ t.string :votable_type
5
+ t.integer :votable_id
6
+ t.integer :value
7
+ t.integer :user_id
8
+ t.string :ip
9
+ t.timestamps
10
+ end
11
+ add_index :votes, :votable_type
12
+ add_index :votes, :votable_id
13
+ add_index :votes, :user_id
14
+ add_index :votes, :ip
15
+ end
16
+
17
+ def self.down
18
+ drop_table :votes
19
+ end
20
+ end
@@ -0,0 +1,5 @@
1
+ if defined?(Delayed::Worker)
2
+ Delayed::Worker.destroy_failed_jobs = true
3
+ Delayed::Worker.max_attempts = 3
4
+ Delayed::Worker.max_run_time = 10.minutes
5
+ end
@@ -0,0 +1,42 @@
1
+ class DeviseCreateUsers < ActiveRecord::Migration
2
+ def self.up
3
+ create_table(:users) do |t|
4
+ ## Database authenticatable
5
+ t.string :email, :null => false, :default => ''
6
+ t.string :encrypted_password, :null => false, :default => ''
7
+
8
+ ## Recoverable
9
+ t.string :reset_password_token
10
+ t.string :reset_password_sent_at
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, :default => 0
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ t.string :first_name
23
+ t.string :last_name
24
+ t.boolean :admin, :default => false
25
+ # t.confirmable
26
+ # t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
27
+ # t.token_authenticatable
28
+
29
+
30
+ t.timestamps
31
+ end
32
+
33
+ add_index :users, :email, :unique => true
34
+ add_index :users, :reset_password_token, :unique => true
35
+ # add_index :users, :confirmation_token, :unique => true
36
+ # add_index :users, :unlock_token, :unique => true
37
+ end
38
+
39
+ def self.down
40
+ drop_table :users
41
+ end
42
+ end
@@ -0,0 +1,30 @@
1
+ require 'disqussion'
2
+
3
+ Disqussion.configure do |config|
4
+ config.api_key = Settings.disqus.key
5
+ config.api_secret = Settings.disqus.secret
6
+ # config.adapter = :em_synchrony
7
+ end
8
+
9
+ Disqussion::Posts.class_eval %Q{
10
+ class << self
11
+ def columns_hash
12
+ a = {}
13
+ self.column_names.each do |key|
14
+ a.merge! key.to_sym => String
15
+ end
16
+ a
17
+ end
18
+
19
+ def column_names
20
+ ["isJuliaFlagged","isFlagged","forum","parent","media","isApproved","dislikes","raw_message","isSpam","thread","points","createdAt","message","isHighlighted","ipAddress","id","isDeleted","likes","author"]
21
+ end
22
+ end
23
+ }
24
+
25
+ require 'hashie/rash'
26
+ Hashie::Rash.class_eval %Q{
27
+ def dom_id(prefix)
28
+ prefix + "_" + self.id
29
+ end
30
+ }
@@ -0,0 +1,74 @@
1
+ Net::HTTP.class_eval do
2
+ def request(req, body = nil, &block)
3
+ return orig_net_http_request(req, body, &block) unless ::EM.reactor_running?
4
+
5
+ uri = Addressable::URI.parse("#{use_ssl? ? 'https://' : 'http://'}#{addr_port}#{req.path}")
6
+
7
+ body = body || req.body
8
+ opts = body.nil? ? {} : {:body => body}
9
+ if use_ssl?
10
+ sslopts = opts[:ssl] = {}
11
+ sslopts[:verify_peer] = verify_mode == OpenSSL::SSL::VERIFY_PEER
12
+ sslopts[:private_key_file] = key if key
13
+ sslopts[:cert_chain_file] = ca_file if ca_file
14
+ end
15
+ opts[:timeout] = self.read_timeout
16
+
17
+ # em-http-request not not decode GZip
18
+ opts[:decoding] = false
19
+
20
+ headers = opts[:head] = {}
21
+ req.each do |k, v|
22
+ headers[k] = v
23
+ end
24
+
25
+ headers['content-type'] ||= "application/x-www-form-urlencoded"
26
+
27
+ t0 = Time.now
28
+ httpreq = EM::HttpRequest.new(uri).send(req.class::METHOD.downcase.to_sym, opts)
29
+
30
+ f=Fiber.current
31
+
32
+ convert_em_http_response = lambda do |res|
33
+ emres = EM::NetHTTP::Response.new(res.response_header)
34
+ emres.set_body res.response
35
+ nhresclass = Net::HTTPResponse.response_class(emres.code)
36
+ nhres = nhresclass.new(emres.http_version, emres.code, emres.message)
37
+ emres.to_hash.each do |k, v|
38
+ nhres.add_field(k, v)
39
+ end
40
+ nhres.body = emres.body if req.response_body_permitted? && nhresclass.body_permitted?
41
+ nhres.instance_variable_set '@read', true
42
+ f.resume nhres
43
+ end
44
+
45
+ if block_given?
46
+ httpreq.headers { |headers|
47
+ emres = EM::NetHTTP::Response.new(headers)
48
+ nhresclass = Net::HTTPResponse.response_class(emres.code)
49
+ nhres = nhresclass.new(emres.http_version, emres.code, emres.message)
50
+ emres.to_hash.each do |k, v|
51
+ nhres.add_field(k, v)
52
+ end
53
+ f.resume nhres
54
+ }
55
+
56
+ nhres = Fiber.yield
57
+ nhres.instance_variable_set :@httpreq, httpreq
58
+
59
+ yield nhres
60
+ nhres
61
+ else
62
+ httpreq.callback &convert_em_http_response
63
+ httpreq.errback {|err|f.resume(:error)}
64
+ res = Fiber.yield
65
+
66
+ if res == :error
67
+ raise 'EM::HttpRequest error - request timed out' if Time.now - self.read_timeout > t0
68
+ raise 'EM::HttpRequest error - unknown error'
69
+ end
70
+
71
+ res
72
+ end
73
+ end
74
+ end if defined? EventMachine::NetHTTP # We only need to load this file when using em-net-http