2014-09-30 22:24:08 -07:00
|
|
|
require 'camping'
|
|
|
|
|
2014-09-30 03:04:07 -07:00
|
|
|
# Camping is a great small framework.
|
|
|
|
Camping.goes :StargateRando
|
|
|
|
|
2014-09-30 22:24:08 -07:00
|
|
|
# Data was moved out to stargaterando-data.rb to keep this file clean
|
|
|
|
require './stargaterando-data'
|
2014-09-30 03:04:07 -07:00
|
|
|
|
|
|
|
# This holds our (currently there's only one) controllers.
|
|
|
|
module StargateRando::Controllers
|
|
|
|
class Index < R '/'
|
|
|
|
def get
|
|
|
|
chosen_series_id = Data::SERIES_SHORT_NAMES[rand(3)]
|
|
|
|
@series = Data::SERIES_NAMES[chosen_series_id]
|
|
|
|
num_seasons = Data::SEASONS_PER_SERIES[chosen_series_id]
|
|
|
|
chosen_season = 1 + rand(num_seasons)
|
|
|
|
|
|
|
|
# SG-1 has a couple of seasons of length 22 and one of length 21 so we need to handle that.
|
|
|
|
case chosen_series_id
|
|
|
|
when 'SG-1'
|
|
|
|
case chosen_season
|
|
|
|
when 1
|
|
|
|
num_episodes = 21
|
|
|
|
when 2..7
|
|
|
|
num_episodes = 22
|
|
|
|
else
|
|
|
|
num_episodes = 20
|
|
|
|
end
|
|
|
|
else
|
|
|
|
num_episodes = 20
|
|
|
|
end
|
|
|
|
|
|
|
|
chosen_episode = 1 + rand(num_episodes)
|
|
|
|
|
2014-09-30 22:24:08 -07:00
|
|
|
@episode_and_season = "Season #{chosen_season} Episode #{chosen_episode}"
|
|
|
|
@episode_name = Data::EPISODES["#{chosen_series_id}|#{chosen_season}x#{chosen_episode}"]
|
2014-09-30 03:04:07 -07:00
|
|
|
render :results
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# This holds our views. Markaby is pretty swagtacular.
|
|
|
|
module StargateRando::Views
|
|
|
|
def layout
|
|
|
|
html do
|
|
|
|
head do
|
|
|
|
title { "Stargate Episode Randomizer" }
|
2014-09-30 13:15:58 -07:00
|
|
|
meta :name => "viewport", :content => "width=device-width, user-scalable=no"
|
2014-09-30 03:04:07 -07:00
|
|
|
link :rel => "stylesheet", :href => "http://fonts.googleapis.com/css?family=Ubuntu:400,700", :type => "text/css"
|
2014-09-30 03:15:52 -07:00
|
|
|
link :rel => "stylesheet", :href => "main.css", :type => "text/css"
|
2014-09-30 03:04:07 -07:00
|
|
|
end
|
|
|
|
|
|
|
|
body { self << yield }
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def results
|
2014-09-30 22:24:08 -07:00
|
|
|
h1 "You should watch: "
|
|
|
|
h2 "#{@series}: #{@episode_and_season}: #{@episode_name}"
|
2014-09-30 03:26:51 -07:00
|
|
|
button :onclick => "document.location.reload()", :id => "reload" do
|
|
|
|
"Get a new episode"
|
|
|
|
end
|
2014-09-30 23:48:05 -07:00
|
|
|
|
|
|
|
p do
|
|
|
|
span do
|
|
|
|
"Perhaps you might want to check out "
|
|
|
|
end
|
|
|
|
a :href => "stargateorder.html" do
|
|
|
|
"The Order of Watching Stargate"
|
|
|
|
end
|
|
|
|
end
|
2014-09-30 03:04:07 -07:00
|
|
|
end
|
|
|
|
|
2014-09-30 13:15:58 -07:00
|
|
|
end
|