-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.rb
49 lines (41 loc) · 1.01 KB
/
server.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
require 'sinatra'
require 'sinatra/reloader'
require 'csv'
require 'pry'
def all_movies
movies = []
CSV.foreach('movies.csv', headers: true,
header_converters: :symbol) do |row|
movies << row.to_hash
end
movies.sort_by{|key, value| key[:title]}
end
def get_movies_by_id(movies)
all_movies = {}
movies.each do |movie|
all_movies[movie[:id]] = movie
end
all_movies
end
def paginator(movies, page=0 )
start = (page.to_i * 20)
movies.slice(start, 20)
end
movies = all_movies
movie_ids = get_movies_by_id(all_movies)
get '/' do
length = (movies.length/20)
movies = paginator(movies, 0)
erb :movie_list, locals: {movies: movies, length: length}
end
get '/movies/:movie_id' do
movie = movie_ids[params[:movie_id]]
title = movie[:title]
year = movie[:year]
synopsis = movie[:synopsis]
rating = movie[:rating]
genre = movie[:genre]
studio = movie[:studio]
erb :'movies/movie',
locals: {title: title, year: year, synopsis: synopsis, rating: rating, genre: genre, studio: studio}
end