class TopStockMovers::CLI
Public Instance Methods
call()
click to toggle source
# File lib/top_stock_movers/cli.rb, line 3 def call list_viewing_options list_stocks menu end
goodbye()
click to toggle source
# File lib/top_stock_movers/cli.rb, line 108 def goodbye puts "" puts "Thanks for using top-stock-movers!! Have a good day!" end
list_stocks()
click to toggle source
# File lib/top_stock_movers/cli.rb, line 22 def list_stocks puts "" puts "Today's Top 25 #{@selection.name} stocks" puts "------------------------------" #The line below allows me to scrape 7 different url's by changing the url according to the users selection TopStockMovers::Scraper.scrape_tradingview(@selection.name.downcase) if TopStockMovers::Stocks.find_by_category(@selection.name.downcase).length == 0 @stocks = TopStockMovers::Stocks.find_by_category(@selection.name.downcase) #This case statement is using the Viewing_options instance originally selected by the user to output #the most relevant data per the selection and sorts accordingly. For example "% change" for Gainers, or "volume" for Active case @selection.sorter when "percent_change-pos" @stocks.sort{|a,b| b.percent_change <=> a.percent_change}.each.with_index(1) do |stock, i| puts "#{i}. #{stock.percent_change}% - #{stock.ticker_symbol} - #{stock.name}" break if i == 25 end when "percent_change-neg" @stocks.sort{|a,b| a.percent_change <=> b.percent_change}.each.with_index(1) do |stock, i| puts "#{i}. #{stock.percent_change}% - #{stock.ticker_symbol} - #{stock.name}" break if i == 25 end when "percent_change-abs" @stocks.sort{|a,b| b.percent_change.abs <=> a.percent_change.abs}.each.with_index(1) do |stock, i| puts "#{i}. #{stock.percent_change}% - #{stock.ticker_symbol} - #{stock.name}" break if i == 25 end when "volume" @stocks.sort{|a,b| b.volume <=> a.volume}.each.with_index(1) do |stock, i| puts "#{i}. #{stock.volume}M -Vol #{stock.ticker_symbol} - #{stock.name}" break if i == 25 end when "rating" @stocks.sort{|a,b| b.rating <=> a.rating}.each.with_index(1) do |stock, i| puts "#{i}. #{stock.rating} -Rating - #{stock.percent_change}- #{stock.ticker_symbol} - #{stock.name}" break if i == 25 end when "market_cap" @stocks.sort{|a,b| b.market_cap <=> a.market_cap}.each.with_index(1) do |stock, i| puts "#{i}. #{stock.market_cap}M -MktCap- #{stock.ticker_symbol} - #{stock.name}" break if i == 25 end end end
list_viewing_options()
click to toggle source
# File lib/top_stock_movers/cli.rb, line 11 def list_viewing_options puts "" puts "How would you like to view today's Stock Market?? please enter corresponding number" puts "" TopStockMovers::Viewing_options.all.each.with_index(1) do |option, i| puts "#{i}. #{option.name} -- #{option.desc}" end input = gets.strip.to_i - 1 @selection = TopStockMovers::Viewing_options.all[input] end