class WhatsOnNetflix::CLI

Attributes

input[RW]

Public Class Methods

new() click to toggle source
# File lib/whats_on_netflix.rb, line 7
def initialize
    WhatsOnNetflix::ComingSoon.add_movies
    WhatsOnNetflix::LeavingSoon.add_movies
    @input = ""
    puts ""
    puts "============================="
    puts "Welcome to What's On Netflix!"
    puts "============================="
end

Public Instance Methods

back?() click to toggle source
# File lib/whats_on_netflix.rb, line 114
def back?
    @input == "back"
end
exit() click to toggle source

CLI dialogue

# File lib/whats_on_netflix.rb, line 66
def exit
    puts "See you later!"
end
exit?() click to toggle source

CLI logic

# File lib/whats_on_netflix.rb, line 110
def exit?
    @input == "exit"
end
item_options() click to toggle source
# File lib/whats_on_netflix.rb, line 70
def item_options
    puts ""
    puts "---"
    puts "Options:"
    puts "enter another number from the list"
    puts "back: see a different list"
    puts "exit: exit"
    @input = gets.strip
end
list_available_commands() click to toggle source
# File lib/whats_on_netflix.rb, line 80
def list_available_commands
    puts ""
    puts "---"
    puts "Options:"
    puts "coming-soon: see what's new on Netflix this month"
    puts "leaving-soon: see what's leaving Netflix this month"
    puts "exit: exit"
    puts ""
    @input = gets.strip
end
list_options() click to toggle source
# File lib/whats_on_netflix.rb, line 91
def list_options
    puts ""
    puts "---"
    puts "Options:"
    puts "enter a number to see more"
    puts "back: see a different list"
    puts "exit: exit"
    @input = gets.strip
end
start() click to toggle source
# File lib/whats_on_netflix.rb, line 17
def start
    while !exit?
        list_available_commands

        if @input == "coming-soon"
            WhatsOnNetflix::ComingSoon.list
            list_options

            while !exit? && !back?
                if valid_number?(WhatsOnNetflix::ComingSoon.all)
                  begin
                    WhatsOnNetflix::ComingSoon.item(@input)
                  rescue
                    puts ""
                    puts "Sorry, we couldn't get info for this title!"
                  end
                    item_options
                else
                    unknown_command
                end
            end

        elsif @input == "leaving-soon"
            WhatsOnNetflix::LeavingSoon.list
            list_options

            while !exit? && !back?
                if valid_number?(WhatsOnNetflix::LeavingSoon.all)
                  begin
                    WhatsOnNetflix::LeavingSoon.item(@input)
                  rescue
                    puts ""
                    puts "Sorry, we couldn't get info for this title!"
                  end
                    item_options
                else
                    unknown_command
                end
            end

        elsif !exit?
            unknown_command
        end
    end
    exit
end
unknown_command() click to toggle source
# File lib/whats_on_netflix.rb, line 101
def unknown_command
    puts ""
    puts "I'm sorry, I don't recognize that command."
    puts ""
    @input = gets.strip
end
valid_number?(array) click to toggle source
# File lib/whats_on_netflix.rb, line 118
def valid_number?(array)
    @input.to_i > 0 && @input.to_i < (array.length + 1)
end