-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.rb
103 lines (87 loc) · 2.61 KB
/
app.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Copyright 2015 Google, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# [START gae_standard_quickstart]
require "sinatra"
require 'sass'
require 'compass'
require "google/cloud/storage"
require "browser"
configure do
Compass.configuration do |config|
config.project_path = File.dirname(__FILE__)
config.sass_dir = File.join('views', 'stylesheets')
config.cache_path = File.join('/tmp', '.sass-cache')
end
set :sass, Compass.sass_engine_options
end
# Google cloud storage stuff
PROJECT_ID = "spozderwebsite"
BUCKET_NAME = "spozderwebsite"
storage = Google::Cloud::Storage.new(project_id: PROJECT_ID)
bucket = storage.bucket(BUCKET_NAME)
all_backgrounds = bucket.files
compressed_backgrounds = bucket.files.select { |f| f.name.include?("compressed") }
background_hash = {
rachel_v: compressed_backgrounds.select { |f| f.name.include?("/rvert") },
rachel_h: compressed_backgrounds.select { |f| f.name.include?("/rhoriz") },
v: all_backgrounds.select { |f| f.name.include?("/vert/") },
h: all_backgrounds.select { |f| f.name.include?("/horiz/") }
}
before do
@mobile = Browser.new(request.user_agent, accept_language: request.env["HTTP_ACCEPT_LANGUAGE"]).device.mobile?
end
get "/" do
slim :home
end
get "/projects" do
slim :projects
end
get "/resume" do
slim :resume
end
get "/contact" do
slim :contact
end
before "/countdown*" do
@background_images = {
v: background_hash[:v].sample.public_url,
h: background_hash[:h].sample.public_url
}
@background_style = "cover"
end
get "/countdown/ranch" do
@background_images = {
v: background_hash[:rachel_v].sample.public_url,
h: background_hash[:rachel_h].sample.public_url
}
@background_style = "contain"
@countdown_to = "Jan 20, 2020 23:00:00 EST"
@message = "Hello :)"
slim :countdown
end
get "/countdown" do
if params[:datetime]
@countdown_to = params[:datetime]
if params[:message]
@message = params[:message]
end
slim :countdown
else
slim :create_countdown
end
end
get "/style/:name" do
sass :"stylesheets/#{params[:name]}_stylesheet", Compass.sass_engine_options
end
# [END gae_standard_quickstart]