atreides 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +7 -0
- data/README.rdoc +1 -0
- data/app/assets/javascripts/atreides/admin.js +22 -0
- data/app/assets/javascripts/atreides/admin_base.js.erb +247 -0
- data/app/assets/javascripts/atreides/admin_edit.js +9 -0
- data/app/assets/javascripts/atreides/application.js +15 -0
- data/app/assets/javascripts/atreides/comments.coffee +50 -0
- data/app/assets/javascripts/atreides/public.js +24 -0
- data/app/assets/javascripts/atreides/public_base.js.erb +119 -0
- data/app/assets/javascripts/atreides/terryblr.js +57 -0
- data/app/assets/stylesheets/atreides/admin.css +21 -0
- data/app/assets/stylesheets/atreides/admin_base.css.erb +1762 -0
- data/app/assets/stylesheets/atreides/application.css +13 -0
- data/app/assets/stylesheets/atreides/formtastic_changes.css +10 -0
- data/app/assets/stylesheets/atreides/iphone-checkboxes.css.erb +97 -0
- data/app/assets/stylesheets/atreides/jBreadCrumb.css +109 -0
- data/app/assets/stylesheets/atreides/public.css +15 -0
- data/app/assets/stylesheets/atreides/public_base.css +101 -0
- data/app/assets/stylesheets/atreides/swfupload.css.erb +63 -0
- data/app/controllers/admin/atreides/comments_controller.rb +47 -0
- data/app/controllers/admin/atreides/content_parts_controller.rb +43 -0
- data/app/controllers/admin/atreides/dropbox_controller.rb +40 -0
- data/app/controllers/admin/atreides/features_controller.rb +63 -0
- data/app/controllers/admin/atreides/github_controller.rb +35 -0
- data/app/controllers/admin/atreides/links_controller.rb +3 -0
- data/app/controllers/admin/atreides/messages_controller.rb +3 -0
- data/app/controllers/admin/atreides/orders_controller.rb +35 -0
- data/app/controllers/admin/atreides/pages_controller.rb +59 -0
- data/app/controllers/admin/atreides/photos_controller.rb +79 -0
- data/app/controllers/admin/atreides/posts_controller.rb +109 -0
- data/app/controllers/admin/atreides/products_controller.rb +39 -0
- data/app/controllers/admin/atreides/sessions_controller.rb +7 -0
- data/app/controllers/admin/atreides/sizes_controller.rb +4 -0
- data/app/controllers/admin/atreides/tags_controller.rb +20 -0
- data/app/controllers/admin/atreides/users_controller.rb +50 -0
- data/app/controllers/admin/atreides/videos_controller.rb +53 -0
- data/app/controllers/atreides/admin_controller.rb +96 -0
- data/app/controllers/atreides/admin_home_controller.rb +211 -0
- data/app/controllers/atreides/application_controller.rb +93 -0
- data/app/controllers/atreides/comments_controller.rb +43 -0
- data/app/controllers/atreides/home_controller.rb +71 -0
- data/app/controllers/atreides/likes_controller.rb +44 -0
- data/app/controllers/atreides/pages_controller.rb +34 -0
- data/app/controllers/atreides/posts_controller.rb +119 -0
- data/app/controllers/atreides/public_controller.rb +43 -0
- data/app/helpers/admin/atreides/comments_helper.rb +8 -0
- data/app/helpers/admin/atreides/dropbox_helper.rb +42 -0
- data/app/helpers/admin/atreides/features_helper.rb +4 -0
- data/app/helpers/admin/atreides/github_helper.rb +43 -0
- data/app/helpers/admin/atreides/links_helper.rb +4 -0
- data/app/helpers/admin/atreides/messages_helper.rb +4 -0
- data/app/helpers/admin/atreides/orders_helper.rb +30 -0
- data/app/helpers/admin/atreides/pages_helper.rb +17 -0
- data/app/helpers/admin/atreides/photos_helper.rb +14 -0
- data/app/helpers/admin/atreides/posts_helper.rb +41 -0
- data/app/helpers/admin/atreides/products_helper.rb +37 -0
- data/app/helpers/admin/atreides/sizes_helper.rb +4 -0
- data/app/helpers/admin/atreides/user_sessions_helper.rb +4 -0
- data/app/helpers/admin/atreides/users_helper.rb +8 -0
- data/app/helpers/admin/atreides/videos_helper.rb +4 -0
- data/app/helpers/atreides/admin_helper.rb +243 -0
- data/app/helpers/atreides/admin_home_helper.rb +4 -0
- data/app/helpers/atreides/application_helper.rb +210 -0
- data/app/helpers/atreides/home_helper.rb +4 -0
- data/app/helpers/atreides/posts_helper.rb +119 -0
- data/app/inputs/files_input.rb +13 -0
- data/app/inputs/price_input.rb +18 -0
- data/app/inputs/underline_input.rb +16 -0
- data/app/models/atreides/ability.rb +24 -0
- data/app/models/atreides/comment.rb +93 -0
- data/app/models/atreides/content_part.rb +107 -0
- data/app/models/atreides/feature.rb +90 -0
- data/app/models/atreides/github.rb +74 -0
- data/app/models/atreides/like.rb +35 -0
- data/app/models/atreides/line_item.rb +4 -0
- data/app/models/atreides/link.rb +32 -0
- data/app/models/atreides/message.rb +34 -0
- data/app/models/atreides/order.rb +209 -0
- data/app/models/atreides/page.rb +114 -0
- data/app/models/atreides/photo.rb +130 -0
- data/app/models/atreides/post.rb +271 -0
- data/app/models/atreides/product.rb +75 -0
- data/app/models/atreides/site.rb +59 -0
- data/app/models/atreides/size.rb +44 -0
- data/app/models/atreides/tag.rb +31 -0
- data/app/models/atreides/tweet.rb +123 -0
- data/app/models/atreides/user.rb +129 -0
- data/app/models/atreides/video.rb +206 -0
- data/app/models/atreides/vote.rb +43 -0
- data/app/models/fb_post_publisher_job.rb +72 -0
- data/app/models/settings.rb +19 -0
- data/app/models/tumblr_post_publisher_job.rb +75 -0
- data/app/models/tw_post_publisher_job.rb +54 -0
- data/app/views/admin/_edit_head_content.html.haml +2 -0
- data/app/views/admin/atreides/comments/_line.html.haml +60 -0
- data/app/views/admin/atreides/comments/_sidebar.html.haml +52 -0
- data/app/views/admin/atreides/comments/create.js.haml +1 -0
- data/app/views/admin/atreides/comments/index.html.haml +34 -0
- data/app/views/admin/atreides/content_parts/_form.html.haml +21 -0
- data/app/views/admin/atreides/content_parts/_photos.html.haml +18 -0
- data/app/views/admin/atreides/content_parts/_text.html.haml +1 -0
- data/app/views/admin/atreides/content_parts/_videos.html.haml +12 -0
- data/app/views/admin/atreides/content_parts/destroy.js.haml +3 -0
- data/app/views/admin/atreides/content_parts/edit.html.haml +0 -0
- data/app/views/admin/atreides/content_parts/new.html.haml +0 -0
- data/app/views/admin/atreides/content_parts/new.js.haml +11 -0
- data/app/views/admin/atreides/dropbox/_uploader.html.haml +134 -0
- data/app/views/admin/atreides/dropbox/list.html.haml +27 -0
- data/app/views/admin/atreides/dropbox/setup.html.haml +8 -0
- data/app/views/admin/atreides/features/_form.html.haml +60 -0
- data/app/views/admin/atreides/features/edit.html.haml +1 -0
- data/app/views/admin/atreides/features/index.html.haml +24 -0
- data/app/views/admin/atreides/features/new.html.haml +1 -0
- data/app/views/admin/atreides/github/index.html.haml +26 -0
- data/app/views/admin/atreides/github/show.html.haml +19 -0
- data/app/views/admin/atreides/likes/create.js.haml +2 -0
- data/app/views/admin/atreides/orders/_sidebar.html.haml +20 -0
- data/app/views/admin/atreides/orders/edit.html.haml +52 -0
- data/app/views/admin/atreides/orders/index.html.haml +8 -0
- data/app/views/admin/atreides/pages/_form.html.haml +31 -0
- data/app/views/admin/atreides/pages/edit.html.haml +3 -0
- data/app/views/admin/atreides/pages/index.html.haml +15 -0
- data/app/views/admin/atreides/pages/index.js.haml +4 -0
- data/app/views/admin/atreides/pages/new.html.haml +2 -0
- data/app/views/admin/atreides/photos/create.js.haml +18 -0
- data/app/views/admin/atreides/photos/destroy.js.haml +3 -0
- data/app/views/admin/atreides/posts/_archives.html.haml +19 -0
- data/app/views/admin/atreides/posts/_form.html.haml +66 -0
- data/app/views/admin/atreides/posts/_form_buttons.html.haml +9 -0
- data/app/views/admin/atreides/posts/_form_sidebar.html.haml +85 -0
- data/app/views/admin/atreides/posts/edit.html.haml +2 -0
- data/app/views/admin/atreides/posts/index.html.haml +24 -0
- data/app/views/admin/atreides/posts/index.js.haml +1 -0
- data/app/views/admin/atreides/posts/new.html.haml +2 -0
- data/app/views/admin/atreides/products/edit.html.haml +69 -0
- data/app/views/admin/atreides/products/index.html.haml +31 -0
- data/app/views/admin/atreides/sessions/new.html.haml +13 -0
- data/app/views/admin/atreides/user_sessions/new.html.haml +10 -0
- data/app/views/admin/atreides/users/_form.html.haml +19 -0
- data/app/views/admin/atreides/users/edit.html.haml +6 -0
- data/app/views/admin/atreides/users/index.html.haml +11 -0
- data/app/views/admin/atreides/users/new.html.haml +6 -0
- data/app/views/admin/atreides/users/show.html.haml +4 -0
- data/app/views/admin/atreides/videos/create.js.haml +9 -0
- data/app/views/admin/atreides/videos/destroy.js.haml +3 -0
- data/app/views/admin/common/_archive_sidebar.html.haml +29 -0
- data/app/views/admin/common/_list_table.html.erb +37 -0
- data/app/views/admin/common/_list_table_row.html.erb +18 -0
- data/app/views/admin/common/_pagination.html.erb +1 -0
- data/app/views/admin/common/_search_form.html.erb +6 -0
- data/app/views/admin/common/access_denied.html.haml +1 -0
- data/app/views/atreides/admin/_content_nav.html.haml +8 -0
- data/app/views/atreides/admin_home/_analytics.html.haml +93 -0
- data/app/views/atreides/admin_home/_fb_page_likes_analytics_tbody.haml +10 -0
- data/app/views/atreides/admin_home/_fb_page_views_analytics_tbody.haml +10 -0
- data/app/views/atreides/admin_home/_top_landing_pages_analytics_tbody.haml +14 -0
- data/app/views/atreides/admin_home/_top_referrers_analytics_tbody.haml +12 -0
- data/app/views/atreides/admin_home/_tweets_analytics_tbody.html.haml +8 -0
- data/app/views/atreides/admin_home/_visitors_analytics_tbody.html.haml +12 -0
- data/app/views/atreides/admin_home/index.html.haml +57 -0
- data/app/views/atreides/admin_home/search.html.haml +11 -0
- data/app/views/atreides/admin_home/setup.html.haml +15 -0
- data/app/views/atreides/common/_gallery_params.xml.erb +174 -0
- data/app/views/atreides/common/slideshow.xml.haml +6 -0
- data/app/views/atreides/errors/404.html.haml +10 -0
- data/app/views/atreides/errors/500.html.haml +4 -0
- data/app/views/atreides/home/index.html.haml +30 -0
- data/app/views/atreides/home/index.js.haml +1 -0
- data/app/views/atreides/home/robots.txt.erb +5 -0
- data/app/views/atreides/home/sitemap.xml.builder +35 -0
- data/app/views/atreides/pages/show.html.haml +3 -0
- data/app/views/atreides/posts/_archives.html.haml +19 -0
- data/app/views/atreides/posts/_featured_posts.html.haml +10 -0
- data/app/views/atreides/posts/_list.html.haml +9 -0
- data/app/views/atreides/posts/archives.html.haml +3 -0
- data/app/views/atreides/posts/archives.js.haml +1 -0
- data/app/views/atreides/posts/gallery_params.xml.haml +1 -0
- data/app/views/atreides/posts/index.atom.builder +22 -0
- data/app/views/atreides/posts/index.html.haml +13 -0
- data/app/views/atreides/posts/index.rss.builder +21 -0
- data/app/views/atreides/posts/show.html.haml +23 -0
- data/app/views/atreides/posts/tagged.html.haml +4 -0
- data/app/views/atreides/posts/tagged.js.haml +1 -0
- data/app/views/layouts/admin.html.haml +62 -0
- data/app/views/layouts/application.html.haml +37 -0
- data/app/views/layouts/atreides/application.html.erb +14 -0
- data/app/views/layouts/public.html.haml +39 -0
- data/config/cucumber.yml +11 -0
- data/config/locales/en.yml +236 -0
- data/config/locales/fr.yml +199 -0
- data/config/routes.rb +119 -0
- data/lib/assets/images/atreides/admin/add.png +0 -0
- data/lib/assets/images/atreides/admin/add_btn.png +0 -0
- data/lib/assets/images/atreides/admin/add_dashboard.png +0 -0
- data/lib/assets/images/atreides/admin/add_photo_button_sprite.png +0 -0
- data/lib/assets/images/atreides/admin/add_photos_btn.png +0 -0
- data/lib/assets/images/atreides/admin/background.png +0 -0
- data/lib/assets/images/atreides/admin/calendar.png +0 -0
- data/lib/assets/images/atreides/admin/chevron.gif +0 -0
- data/lib/assets/images/atreides/admin/chevron_overlay.png +0 -0
- data/lib/assets/images/atreides/admin/choose_photos_button_sprite.png +0 -0
- data/lib/assets/images/atreides/admin/content_bg.png +0 -0
- data/lib/assets/images/atreides/admin/content_bg_edit_form.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_break.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_drop_target.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_icons.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_photos.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_text.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_videos.png +0 -0
- data/lib/assets/images/atreides/admin/content_top_edit_form.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard-indicator.gif +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_activity.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_customize.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_drafts.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_open.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_posts.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_queue.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_nav_border.png +0 -0
- data/lib/assets/images/atreides/admin/delete_bg.png +0 -0
- data/lib/assets/images/atreides/admin/down_arrow.png +0 -0
- data/lib/assets/images/atreides/admin/dropbox_big.jpg +0 -0
- data/lib/assets/images/atreides/admin/dropbox_btn.png +0 -0
- data/lib/assets/images/atreides/admin/dropbox_folder.png +0 -0
- data/lib/assets/images/atreides/admin/dropbox_icon.gif +0 -0
- data/lib/assets/images/atreides/admin/dropbox_icon.png +0 -0
- data/lib/assets/images/atreides/admin/expand_collapse.png +0 -0
- data/lib/assets/images/atreides/admin/form_sidebar_divider.png +0 -0
- data/lib/assets/images/atreides/admin/grey_hatch_bg.png +0 -0
- data/lib/assets/images/atreides/admin/header.png +0 -0
- data/lib/assets/images/atreides/admin/icon_dropbox.gif +0 -0
- data/lib/assets/images/atreides/admin/icon_home.gif +0 -0
- data/lib/assets/images/atreides/admin/input_bg.gif +0 -0
- data/lib/assets/images/atreides/admin/large_loading.gif +0 -0
- data/lib/assets/images/atreides/admin/new_content_icons.png +0 -0
- data/lib/assets/images/atreides/admin/off.png +0 -0
- data/lib/assets/images/atreides/admin/on.png +0 -0
- data/lib/assets/images/atreides/admin/page_icon.png +0 -0
- data/lib/assets/images/atreides/admin/permalink.png +0 -0
- data/lib/assets/images/atreides/admin/photos-display-type-gallery.png +0 -0
- data/lib/assets/images/atreides/admin/photos-display-type-photos.png +0 -0
- data/lib/assets/images/atreides/admin/product.png +0 -0
- data/lib/assets/images/atreides/admin/remove.png +0 -0
- data/lib/assets/images/atreides/admin/resize.png +0 -0
- data/lib/assets/images/atreides/admin/save_btn.png +0 -0
- data/lib/assets/images/atreides/admin/search_icon.png +0 -0
- data/lib/assets/images/atreides/admin/select_arrows.png +0 -0
- data/lib/assets/images/atreides/admin/slider.png +0 -0
- data/lib/assets/images/atreides/admin/slider_center.png +0 -0
- data/lib/assets/images/atreides/admin/slider_left.png +0 -0
- data/lib/assets/images/atreides/admin/slider_right.png +0 -0
- data/lib/assets/images/atreides/admin/sprite.png +0 -0
- data/lib/assets/images/atreides/admin/upload_btn.png +0 -0
- data/lib/assets/images/atreides/admin/video_bg.png +0 -0
- data/lib/assets/images/atreides/blank.gif +0 -0
- data/lib/assets/images/atreides/closelabel.png +0 -0
- data/lib/assets/images/atreides/loading.gif +0 -0
- data/lib/assets/images/atreides/sprite.png +0 -0
- data/lib/assets/images/atreides/tipsy.gif +0 -0
- data/lib/atreides.rb +82 -0
- data/lib/atreides/base/aasmstates.rb +117 -0
- data/lib/atreides/base/base.rb +40 -0
- data/lib/atreides/base/taggable.rb +43 -0
- data/lib/atreides/base/validation.rb +23 -0
- data/lib/atreides/configuration.rb +61 -0
- data/lib/atreides/engine.rb +41 -0
- data/lib/atreides/extendable.rb +12 -0
- data/lib/atreides/i18n_helpers.rb +65 -0
- data/lib/atreides/railties/tasks.rake +68 -0
- data/lib/atreides/time_formats.rb +19 -0
- data/lib/atreides/validators.rb +15 -0
- data/lib/atreides/version.rb +4 -0
- data/lib/generators/atreides/USAGE +0 -0
- data/lib/generators/atreides/atreides_generator.rb +58 -0
- data/lib/generators/templates/Procfile +2 -0
- data/lib/generators/templates/add_role_to_users.rb +16 -0
- data/lib/generators/templates/add_userid_to_resources.rb +15 -0
- data/lib/generators/templates/create_comments.rb +19 -0
- data/lib/generators/templates/create_content_parts.rb +66 -0
- data/lib/generators/templates/create_features.rb +21 -0
- data/lib/generators/templates/create_likes.rb +16 -0
- data/lib/generators/templates/create_line_items.rb +21 -0
- data/lib/generators/templates/create_links.rb +16 -0
- data/lib/generators/templates/create_messages.rb +24 -0
- data/lib/generators/templates/create_orders.rb +31 -0
- data/lib/generators/templates/create_pages.rb +31 -0
- data/lib/generators/templates/create_photos.rb +22 -0
- data/lib/generators/templates/create_posts.rb +38 -0
- data/lib/generators/templates/create_products.rb +24 -0
- data/lib/generators/templates/create_sessions.rb +16 -0
- data/lib/generators/templates/create_sites.rb +35 -0
- data/lib/generators/templates/create_sizes.rb +16 -0
- data/lib/generators/templates/create_tweets.rb +25 -0
- data/lib/generators/templates/create_videos.rb +24 -0
- data/lib/generators/templates/create_votes.rb +20 -0
- data/lib/generators/templates/delayed_job.rb +5 -0
- data/lib/generators/templates/devise_create_users.rb +42 -0
- data/lib/generators/templates/disqussion.rb +30 -0
- data/lib/generators/templates/em-net-http_override.rb +74 -0
- data/lib/generators/templates/initializer.rb +21 -0
- data/lib/generators/templates/new_relic.rb +6 -0
- data/lib/generators/templates/oembed.yml +63 -0
- data/lib/generators/templates/settings.yml +110 -0
- data/lib/generators/templates/string_extensions.rb +20 -0
- data/lib/generators/templates/unicorn.rb +2 -0
- data/lib/tasks/atreides_tasks.rake +4 -0
- data/lib/tasks/cucumber.rake +58 -0
- data/lib/tasks/tasks.rake +403 -0
- data/lib/tasks/yard.rake +18 -0
- 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,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
|