From e7f63e29d345e4c0e978f6e67a030ce2ef47e879 Mon Sep 17 00:00:00 2001 From: jason perez Date: Wed, 15 Jan 2014 12:37:21 -0800 Subject: [PATCH 1/4] add 2 more shows to the seed file, update show output format --- db/seed.rb | 7 +++++-- models/show.rb | 2 +- watchman.rb | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/db/seed.rb b/db/seed.rb index 3c028ff..ababe77 100644 --- a/db/seed.rb +++ b/db/seed.rb @@ -1,7 +1,10 @@ # Cleaning Out Network.delete_all Show.delete_all -amc = Network.create(name: "AMC") -nbc = Network.create(name: "NBC") +amc = Network.create(name: "AMC") +nbc = Network.create(name: "NBC") +bravo = Network.create(name: "Bravo") Show.create(name: "Mad Men", day_of_week: "Sunday", hour_of_day: 22, network: amc) Show.create(name: "Community", day_of_week: "Thursday", hour_of_day: 20, network: nbc) +Show.create(name: "Top Chef", day_of_week: "Wednesday", hour_of_day: 19, network: bravo) +Show.create(name: "Walking Dead", day_of_week: "Sunday", hour_of_day: 20, network: amc) diff --git a/models/show.rb b/models/show.rb index 6c82f65..e6d2595 100644 --- a/models/show.rb +++ b/models/show.rb @@ -4,6 +4,6 @@ class Show < ActiveRecord::Base validates_presence_of :name def to_s - "#{name} airs at #{hour_of_day}:#{day_of_week}:00 on #{network} " + "#{name} airs at #{day_of_week}, #{hour_of_day}:00 on #{network} " end end diff --git a/watchman.rb b/watchman.rb index ebe9be4..5262373 100644 --- a/watchman.rb +++ b/watchman.rb @@ -8,8 +8,10 @@ puts "There are #{Show.count} in the database" Network.all.each do |network| - puts "Shows airing on #{network}" + puts "---------------------------" + puts "Shows airing on #{network}:" network.shows.each do |show| puts show - end + end + puts "" end From 2a29cff437f62033a4b52fd765559c8ab03d9cd1 Mon Sep 17 00:00:00 2001 From: jason perez Date: Wed, 15 Jan 2014 17:37:51 -0800 Subject: [PATCH 2/4] add CLI to ask for day of week, app returns shows that match the provided day --- models/show.rb | 2 +- watchman.rb | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/models/show.rb b/models/show.rb index e6d2595..9742c64 100644 --- a/models/show.rb +++ b/models/show.rb @@ -4,6 +4,6 @@ class Show < ActiveRecord::Base validates_presence_of :name def to_s - "#{name} airs at #{day_of_week}, #{hour_of_day}:00 on #{network} " + "#{name} airs at #{day_of_week}, #{hour_of_day}:00 on #{network}." end end diff --git a/watchman.rb b/watchman.rb index 5262373..5ec3cb1 100644 --- a/watchman.rb +++ b/watchman.rb @@ -5,13 +5,18 @@ Dir.glob('./models/*').each { |r| require r} require "./db/seed" +puts "***********************" +puts "* Welcome to WATCHMAN *" +puts "***********************" puts "There are #{Show.count} in the database" +puts "" +puts "What day would you like to watch shows?" +print "> " + +day_of_week = gets.chomp.downcase Network.all.each do |network| - puts "---------------------------" - puts "Shows airing on #{network}:" - network.shows.each do |show| - puts show - end - puts "" -end + network.shows.each do |show| + puts show if show.day_of_week.downcase == day_of_week + end +end \ No newline at end of file From 2268c9f4d187c22a69a740a9abedadfabcbfcaa1 Mon Sep 17 00:00:00 2001 From: jason perez Date: Wed, 22 Jan 2014 13:34:47 -0800 Subject: [PATCH 3/4] create review table, create ui to access a movie review --- db/migrate/201401161200_create_reviews.rb | 10 ++++++++++ db/seed.rb | 22 ++++++++++++++++++++++ models/review.rb | 5 +++++ watchman.rb | 20 ++++++++++++-------- 4 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 db/migrate/201401161200_create_reviews.rb create mode 100644 models/review.rb diff --git a/db/migrate/201401161200_create_reviews.rb b/db/migrate/201401161200_create_reviews.rb new file mode 100644 index 0000000..a780a44 --- /dev/null +++ b/db/migrate/201401161200_create_reviews.rb @@ -0,0 +1,10 @@ +class CreateReviews < ActiveRecord::Migration + def change + create_table :reviews do |t| + t.string :movie + t.integer :rating + t.string :reviewer + t.string :synopsis + end + end +end \ No newline at end of file diff --git a/db/seed.rb b/db/seed.rb index ababe77..2283d22 100644 --- a/db/seed.rb +++ b/db/seed.rb @@ -1,6 +1,7 @@ # Cleaning Out Network.delete_all Show.delete_all +Review.delete_all amc = Network.create(name: "AMC") nbc = Network.create(name: "NBC") bravo = Network.create(name: "Bravo") @@ -8,3 +9,24 @@ Show.create(name: "Community", day_of_week: "Thursday", hour_of_day: 20, network: nbc) Show.create(name: "Top Chef", day_of_week: "Wednesday", hour_of_day: 19, network: bravo) Show.create(name: "Walking Dead", day_of_week: "Sunday", hour_of_day: 20, network: amc) + +Review.create(movie: "Pulp Fiction", + rating: 5, + reviewer: "Anthony Lane", + synopsis: "The talk is dirty and funny, the violence always waiting just around the corner.") +Review.create(movie: "Raiders of the Lost Ark", + rating: 5, + reviewer: "Gene Siskel", + synopsis: "Yes, it's as entertaining as you have heard. Maybe more so. Raiders of the Lost Ark is, in fact, about as entertaining as a commercial movie can be.") +Review.create(movie: "Amadeus", + rating: 5, + reviewer: "Gene Siskel", + synopsis: "The subject of artistic creation is typically handled badly in the movies.... [Amadeus] treats the subject of creativity in a fresh way.") +Review.create(movie: "American Hustle", + rating: 5, + reviewer: "Joe Neumaier", + synopsis: "It turns out that comb-overs, cleavage, cocaine and kookiness are an unbeatable combo.") +Review.create(movie: "The Big Lebowski", + rating: 5, + reviewer: "Rick Groen", + synopsis: "A typical Coen brothers film is like no film you've ever seen.") diff --git a/models/review.rb b/models/review.rb new file mode 100644 index 0000000..3c43de9 --- /dev/null +++ b/models/review.rb @@ -0,0 +1,5 @@ +class Review < ActiveRecord::Base + def to_s + "#{movie}, Reviewed by: #{reviewer}, Rating: #{rating}, Review: #{synopsis}" + end +end \ No newline at end of file diff --git a/watchman.rb b/watchman.rb index 5ec3cb1..5e16991 100644 --- a/watchman.rb +++ b/watchman.rb @@ -5,18 +5,22 @@ Dir.glob('./models/*').each { |r| require r} require "./db/seed" +i=0 + puts "***********************" puts "* Welcome to WATCHMAN *" puts "***********************" -puts "There are #{Show.count} in the database" +puts "There are #{Review.count} reviews in the database:" puts "" -puts "What day would you like to watch shows?" +Review.all.each do |review| + i+=1 + puts "#{review.movie}" +end +puts "What movie review would you like to see?" print "> " -day_of_week = gets.chomp.downcase +movie_selection = gets.chomp.downcase -Network.all.each do |network| - network.shows.each do |show| - puts show if show.day_of_week.downcase == day_of_week - end -end \ No newline at end of file +my_selection = Review.all.select { |review| review.movie.downcase == movie_selection } +puts "Oops... we don't have a review for #{movie_selection} yet." if my_selection.empty? +my_selection.each { |review| puts review } \ No newline at end of file From f3bd867f8060131bf0d6be7fbe2e59067275924a Mon Sep 17 00:00:00 2001 From: jason perez Date: Wed, 22 Jan 2014 23:37:26 -0800 Subject: [PATCH 4/4] update to use DB where query --- watchman.rb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/watchman.rb b/watchman.rb index 5e16991..c9cd90b 100644 --- a/watchman.rb +++ b/watchman.rb @@ -5,22 +5,19 @@ Dir.glob('./models/*').each { |r| require r} require "./db/seed" -i=0 - puts "***********************" puts "* Welcome to WATCHMAN *" puts "***********************" puts "There are #{Review.count} reviews in the database:" puts "" Review.all.each do |review| - i+=1 - puts "#{review.movie}" + puts review.movie end puts "What movie review would you like to see?" print "> " -movie_selection = gets.chomp.downcase +movie_selection = gets.chomp -my_selection = Review.all.select { |review| review.movie.downcase == movie_selection } +my_selection = Review.where(movie: movie_selection) puts "Oops... we don't have a review for #{movie_selection} yet." if my_selection.empty? my_selection.each { |review| puts review } \ No newline at end of file