From 36e60d3451791924d035117a9fe17323dee05665 Mon Sep 17 00:00:00 2001 From: Ben Wootten Date: Mon, 20 Jul 2015 13:31:39 -0500 Subject: [PATCH] restructures the database to one that requires less article fetching --- app/models/section.rb | 17 +++++----- db/migrate/20150720182330_create_users.rb | 9 +++++ db/migrate/20150720182341_create_sections.rb | 9 +++++ db/migrate/20150720182440_create_articles.rb | 13 ++++++++ db/migrate/20150720182518_create_feeds.rb | 8 +++++ .../20150720182532_create_articles_stories.rb | 9 +++++ db/migrate/20150720182539_create_stories.rb | 10 ++++++ .../20150720182645_create_subscriptions.rb | 11 +++++++ .../20150716213944_create_subscriptions.rb | 0 .../20150716230045_create_articles.rb | 2 +- .../20150717152301_create_sections.rb | 0 ...20150718000108_add_img_link_to_articles.rb | 0 .../20150718165134_create_users.rb | 0 ...0150718182019_add_name_to_subscriptions.rb | 0 db/schema.rb | 33 +++++++++++++++---- 15 files changed, 106 insertions(+), 15 deletions(-) create mode 100644 db/migrate/20150720182330_create_users.rb create mode 100644 db/migrate/20150720182341_create_sections.rb create mode 100644 db/migrate/20150720182440_create_articles.rb create mode 100644 db/migrate/20150720182518_create_feeds.rb create mode 100644 db/migrate/20150720182532_create_articles_stories.rb create mode 100644 db/migrate/20150720182539_create_stories.rb create mode 100644 db/migrate/20150720182645_create_subscriptions.rb rename db/{migrate => old_migrations}/20150716213944_create_subscriptions.rb (100%) rename db/{migrate => old_migrations}/20150716230045_create_articles.rb (81%) rename db/{migrate => old_migrations}/20150717152301_create_sections.rb (100%) rename db/{migrate => old_migrations}/20150718000108_add_img_link_to_articles.rb (100%) rename db/{migrate => old_migrations}/20150718165134_create_users.rb (100%) rename db/{migrate => old_migrations}/20150718182019_add_name_to_subscriptions.rb (100%) diff --git a/app/models/section.rb b/app/models/section.rb index 5303f21..21253f2 100644 --- a/app/models/section.rb +++ b/app/models/section.rb @@ -35,16 +35,17 @@ def stories_to_hash(cluster) # sort story_cluster so preferred stories are first { 'preferred' => story_cluster[0], 'other_sources' => story_cluster[1..-1], 'size' => story_importance(story_cluster) } end - cluster.each do |story| - if story['preferred'].has_image? - story['size'] = 'splash' - break - end - end - cluster + # Split stories into groups with images and without images + # build an array of size groups out of those + # shuffle then flatten? + + # So we kind of have a chicken//egg scenario here. Being able to grab images informs the size of stories + # but at the same time grabbing images takes really long so being able to figure out the sizes of stories + # first would speed that up + end - def story_importance(story_cluster) + def random_story_importance(story_cluster) if story_cluster[0].has_image? %w(big medium splash small).sample else diff --git a/db/migrate/20150720182330_create_users.rb b/db/migrate/20150720182330_create_users.rb new file mode 100644 index 0000000..1282a99 --- /dev/null +++ b/db/migrate/20150720182330_create_users.rb @@ -0,0 +1,9 @@ +class CreateUsers < ActiveRecord::Migration + def change + create_table :users do |t| + t.string :email + t.text :password_digest + t.timestamps + end + end +end diff --git a/db/migrate/20150720182341_create_sections.rb b/db/migrate/20150720182341_create_sections.rb new file mode 100644 index 0000000..8c321cc --- /dev/null +++ b/db/migrate/20150720182341_create_sections.rb @@ -0,0 +1,9 @@ +class CreateSections < ActiveRecord::Migration + def change + create_table :sections do |t| + t.string :title + t.references :user + t.timestamps + end + end +end diff --git a/db/migrate/20150720182440_create_articles.rb b/db/migrate/20150720182440_create_articles.rb new file mode 100644 index 0000000..ded4cc4 --- /dev/null +++ b/db/migrate/20150720182440_create_articles.rb @@ -0,0 +1,13 @@ +class CreateArticles < ActiveRecord::Migration + def change + create_table :articles do |t| + t.string :title + t.text :summary + t.string :url + t.string :last_modified + t.references :subscription + t.string :img_link + t.timestamps + end + end +end diff --git a/db/migrate/20150720182518_create_feeds.rb b/db/migrate/20150720182518_create_feeds.rb new file mode 100644 index 0000000..a17aaef --- /dev/null +++ b/db/migrate/20150720182518_create_feeds.rb @@ -0,0 +1,8 @@ +class CreateFeeds < ActiveRecord::Migration + def change + create_table :feeds do |t| + t.string :feed_url + t.timestamps + end + end +end diff --git a/db/migrate/20150720182532_create_articles_stories.rb b/db/migrate/20150720182532_create_articles_stories.rb new file mode 100644 index 0000000..fff7449 --- /dev/null +++ b/db/migrate/20150720182532_create_articles_stories.rb @@ -0,0 +1,9 @@ +class CreateArticlesStories < ActiveRecord::Migration + def change + create_table :articles_stories do |t| + t.references :article + t.references :story + t.timestamps + end + end +end diff --git a/db/migrate/20150720182539_create_stories.rb b/db/migrate/20150720182539_create_stories.rb new file mode 100644 index 0000000..02a596f --- /dev/null +++ b/db/migrate/20150720182539_create_stories.rb @@ -0,0 +1,10 @@ +class CreateStories < ActiveRecord::Migration + def change + create_table :stories do |t| + t.string :size + t.references :user + t.references :preferred_story + t.timestamps + end + end +end diff --git a/db/migrate/20150720182645_create_subscriptions.rb b/db/migrate/20150720182645_create_subscriptions.rb new file mode 100644 index 0000000..c376758 --- /dev/null +++ b/db/migrate/20150720182645_create_subscriptions.rb @@ -0,0 +1,11 @@ +class CreateSubscriptions < ActiveRecord::Migration + def change + create_table :subscriptions do |t| + t.references :feed + t.references :Section + t.string :url + t.string :name + t.timestamps + end + end +end diff --git a/db/migrate/20150716213944_create_subscriptions.rb b/db/old_migrations/20150716213944_create_subscriptions.rb similarity index 100% rename from db/migrate/20150716213944_create_subscriptions.rb rename to db/old_migrations/20150716213944_create_subscriptions.rb diff --git a/db/migrate/20150716230045_create_articles.rb b/db/old_migrations/20150716230045_create_articles.rb similarity index 81% rename from db/migrate/20150716230045_create_articles.rb rename to db/old_migrations/20150716230045_create_articles.rb index 4ae7d92..51f349a 100644 --- a/db/migrate/20150716230045_create_articles.rb +++ b/db/old_migrations/20150716230045_create_articles.rb @@ -1,4 +1,4 @@ -class CreateArticles < ActiveRecord::Migration + class CreateArticles < ActiveRecord::Migration def change create_table :articles do |t| t.string :title diff --git a/db/migrate/20150717152301_create_sections.rb b/db/old_migrations/20150717152301_create_sections.rb similarity index 100% rename from db/migrate/20150717152301_create_sections.rb rename to db/old_migrations/20150717152301_create_sections.rb diff --git a/db/migrate/20150718000108_add_img_link_to_articles.rb b/db/old_migrations/20150718000108_add_img_link_to_articles.rb similarity index 100% rename from db/migrate/20150718000108_add_img_link_to_articles.rb rename to db/old_migrations/20150718000108_add_img_link_to_articles.rb diff --git a/db/migrate/20150718165134_create_users.rb b/db/old_migrations/20150718165134_create_users.rb similarity index 100% rename from db/migrate/20150718165134_create_users.rb rename to db/old_migrations/20150718165134_create_users.rb diff --git a/db/migrate/20150718182019_add_name_to_subscriptions.rb b/db/old_migrations/20150718182019_add_name_to_subscriptions.rb similarity index 100% rename from db/migrate/20150718182019_add_name_to_subscriptions.rb rename to db/old_migrations/20150718182019_add_name_to_subscriptions.rb diff --git a/db/schema.rb b/db/schema.rb index 0e2fbe0..d5fc5ed 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150718182019) do +ActiveRecord::Schema.define(version: 20150720182645) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -22,9 +22,22 @@ t.string "url" t.string "last_modified" t.integer "subscription_id" + t.string "img_link" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "articles_stories", force: :cascade do |t| + t.integer "article_id" + t.integer "story_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "feeds", force: :cascade do |t| + t.string "feed_url" t.datetime "created_at" t.datetime "updated_at" - t.string "img_link" end create_table "sections", force: :cascade do |t| @@ -34,18 +47,26 @@ t.datetime "updated_at" end + create_table "stories", force: :cascade do |t| + t.string "size" + t.integer "user_id" + t.integer "preferred_story_id" + t.datetime "created_at" + t.datetime "updated_at" + end + create_table "subscriptions", force: :cascade do |t| - t.string "feed_url" + t.integer "feed_id" + t.integer "Section_id" t.string "url" - t.integer "section_id" + t.string "name" t.datetime "created_at" t.datetime "updated_at" - t.string "name" end create_table "users", force: :cascade do |t| t.string "email" - t.string "password_digest" + t.text "password_digest" t.datetime "created_at" t.datetime "updated_at" end