frankly 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
File without changes
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <!--
5
+ normalize.css removes cross-browser differences in defaults, e.g.,
6
+ differences in how form elements appear between Firefox and IE
7
+ See: http://necolas.github.com/normalize.css/
8
+ -->
9
+ <link rel="stylesheet" href="/css/normalize.css">
10
+ <!--
11
+ application.css is where you put your styles
12
+ -->
13
+ <link rel="stylesheet" href="/css/application.css">
14
+
15
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
16
+ <script src="/js/application.js"></script>
17
+
18
+ <title></title>
19
+ </head>
20
+ <body>
21
+ <%= yield %>
22
+ </body>
23
+ </html>
@@ -0,0 +1,42 @@
1
+ # Log queries to STDOUT in development
2
+ if Sinatra::Application.development?
3
+ ActiveRecord::Base.logger = Logger.new(STDOUT)
4
+ end
5
+
6
+ # Automatically load every file in APP_ROOT/app/models/*.rb, e.g.,
7
+ # autoload "Person", 'app/models/person.rb'
8
+ #
9
+ # We have to do this in case we have models that inherit from each other.
10
+ # If model Student inherits from model Person and app/models/student.rb is
11
+ # required first, it will throw an error saying "Person" is undefined.
12
+ #
13
+ # With this lazy-loading technique, Ruby will try to load app/models/person.rb
14
+ # the first time it sees "Person" and will only throw an exception if
15
+ # that file doesn't define the Person class.
16
+ #
17
+ # See http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html
18
+ Dir[APP_ROOT.join('app', 'models', '*.rb')].each do |model_file|
19
+ filename = File.basename(model_file).gsub('.rb', '')
20
+ autoload ActiveSupport::Inflector.camelize(filename), model_file
21
+ end
22
+
23
+ # Heroku controls what database we connect to by setting the DATABASE_URL environment variable
24
+ # We need to respect that if we want our Sinatra apps to run on Heroku without modification
25
+ db = URI.parse(ENV['DATABASE_URL'] || "postgres://localhost/#{APP_NAME}_#{Sinatra::Application.environment}")
26
+
27
+ DB_NAME = db.path[1..-1]
28
+
29
+ # Note:
30
+ # Sinatra::Application.environment is set to the value of ENV['RACK_ENV']
31
+ # if ENV['RACK_ENV'] is set. If ENV['RACK_ENV'] is not set, it defaults
32
+ # to :development
33
+
34
+ ActiveRecord::Base.establish_connection(
35
+ :adapter => db.scheme == 'postgres' ? 'postgresql' : db.scheme,
36
+ :host => db.host,
37
+ :port => db.port,
38
+ :username => db.user,
39
+ :password => db.password,
40
+ :database => DB_NAME,
41
+ :encoding => 'utf8'
42
+ )
@@ -0,0 +1,46 @@
1
+ # Set up gems listed in the Gemfile.
2
+ # See: http://gembundler.com/bundler_setup.html
3
+ # http://stackoverflow.com/questions/7243486/why-do-you-need-require-bundler-setup
4
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
5
+
6
+ require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
7
+
8
+ # Require gems we care about
9
+ require 'rubygems'
10
+
11
+ require 'uri'
12
+ require 'pathname'
13
+
14
+ require 'pg'
15
+ require 'active_record'
16
+ require 'logger'
17
+
18
+ require 'sinatra'
19
+ require "sinatra/reloader" if development?
20
+
21
+ require 'erb'
22
+ require 'pry-byebug'
23
+
24
+ # Some helper constants for path-centric logic
25
+ APP_ROOT = Pathname.new(File.expand_path('../../', __FILE__))
26
+
27
+ APP_NAME = APP_ROOT.basename.to_s
28
+
29
+ configure do
30
+ # By default, Sinatra assumes that the root is the file that calls the configure block.
31
+ # Since this is not the case for us, we set it manually.
32
+ set :root, APP_ROOT.to_path
33
+ # See: http://www.sinatrarb.com/faq.html#sessions
34
+ enable :sessions
35
+ set :session_secret, ENV['SESSION_SECRET'] || 'this is a secret shhhhh'
36
+
37
+ # Set the views to
38
+ set :views, File.join(Sinatra::Application.root, "app", "views")
39
+ end
40
+
41
+ # Set up the controllers and helpers
42
+ Dir[APP_ROOT.join('app', 'controllers', '*.rb')].each { |file| require file }
43
+ Dir[APP_ROOT.join('app', 'helpers', '*.rb')].each { |file| require file }
44
+
45
+ # Set up the database and models
46
+ require APP_ROOT.join('config', 'database')
@@ -0,0 +1,6 @@
1
+ # Require config/environment.rb
2
+ require ::File.expand_path('../config/environment', __FILE__)
3
+
4
+ set :app_file, __FILE__
5
+
6
+ run Sinatra::Application
File without changes
File without changes
Binary file
File without changes
@@ -0,0 +1,423 @@
1
+ /*! normalize.css v3.0.0 | MIT License | git.io/normalize */
2
+
3
+ /**
4
+ * 1. Set default font family to sans-serif.
5
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
6
+ * user zoom.
7
+ */
8
+
9
+ html {
10
+ font-family: sans-serif; /* 1 */
11
+ -ms-text-size-adjust: 100%; /* 2 */
12
+ -webkit-text-size-adjust: 100%; /* 2 */
13
+ }
14
+
15
+ /**
16
+ * Remove default margin.
17
+ */
18
+
19
+ body {
20
+ margin: 0;
21
+ }
22
+
23
+ /* HTML5 display definitions
24
+ ========================================================================== */
25
+
26
+ /**
27
+ * Correct `block` display not defined in IE 8/9.
28
+ */
29
+
30
+ article,
31
+ aside,
32
+ details,
33
+ figcaption,
34
+ figure,
35
+ footer,
36
+ header,
37
+ hgroup,
38
+ main,
39
+ nav,
40
+ section,
41
+ summary {
42
+ display: block;
43
+ }
44
+
45
+ /**
46
+ * 1. Correct `inline-block` display not defined in IE 8/9.
47
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
48
+ */
49
+
50
+ audio,
51
+ canvas,
52
+ progress,
53
+ video {
54
+ display: inline-block; /* 1 */
55
+ vertical-align: baseline; /* 2 */
56
+ }
57
+
58
+ /**
59
+ * Prevent modern browsers from displaying `audio` without controls.
60
+ * Remove excess height in iOS 5 devices.
61
+ */
62
+
63
+ audio:not([controls]) {
64
+ display: none;
65
+ height: 0;
66
+ }
67
+
68
+ /**
69
+ * Address `[hidden]` styling not present in IE 8/9.
70
+ * Hide the `template` element in IE, Safari, and Firefox < 22.
71
+ */
72
+
73
+ [hidden],
74
+ template {
75
+ display: none;
76
+ }
77
+
78
+ /* Links
79
+ ========================================================================== */
80
+
81
+ /**
82
+ * Remove the gray background color from active links in IE 10.
83
+ */
84
+
85
+ a {
86
+ background: transparent;
87
+ }
88
+
89
+ /**
90
+ * Improve readability when focused and also mouse hovered in all browsers.
91
+ */
92
+
93
+ a:active,
94
+ a:hover {
95
+ outline: 0;
96
+ }
97
+
98
+ /* Text-level semantics
99
+ ========================================================================== */
100
+
101
+ /**
102
+ * Address styling not present in IE 8/9, Safari 5, and Chrome.
103
+ */
104
+
105
+ abbr[title] {
106
+ border-bottom: 1px dotted;
107
+ }
108
+
109
+ /**
110
+ * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
111
+ */
112
+
113
+ b,
114
+ strong {
115
+ font-weight: bold;
116
+ }
117
+
118
+ /**
119
+ * Address styling not present in Safari 5 and Chrome.
120
+ */
121
+
122
+ dfn {
123
+ font-style: italic;
124
+ }
125
+
126
+ /**
127
+ * Address variable `h1` font-size and margin within `section` and `article`
128
+ * contexts in Firefox 4+, Safari 5, and Chrome.
129
+ */
130
+
131
+ h1 {
132
+ font-size: 2em;
133
+ margin: 0.67em 0;
134
+ }
135
+
136
+ /**
137
+ * Address styling not present in IE 8/9.
138
+ */
139
+
140
+ mark {
141
+ background: #ff0;
142
+ color: #000;
143
+ }
144
+
145
+ /**
146
+ * Address inconsistent and variable font size in all browsers.
147
+ */
148
+
149
+ small {
150
+ font-size: 80%;
151
+ }
152
+
153
+ /**
154
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
155
+ */
156
+
157
+ sub,
158
+ sup {
159
+ font-size: 75%;
160
+ line-height: 0;
161
+ position: relative;
162
+ vertical-align: baseline;
163
+ }
164
+
165
+ sup {
166
+ top: -0.5em;
167
+ }
168
+
169
+ sub {
170
+ bottom: -0.25em;
171
+ }
172
+
173
+ /* Embedded content
174
+ ========================================================================== */
175
+
176
+ /**
177
+ * Remove border when inside `a` element in IE 8/9.
178
+ */
179
+
180
+ img {
181
+ border: 0;
182
+ }
183
+
184
+ /**
185
+ * Correct overflow displayed oddly in IE 9.
186
+ */
187
+
188
+ svg:not(:root) {
189
+ overflow: hidden;
190
+ }
191
+
192
+ /* Grouping content
193
+ ========================================================================== */
194
+
195
+ /**
196
+ * Address margin not present in IE 8/9 and Safari 5.
197
+ */
198
+
199
+ figure {
200
+ margin: 1em 40px;
201
+ }
202
+
203
+ /**
204
+ * Address differences between Firefox and other browsers.
205
+ */
206
+
207
+ hr {
208
+ -moz-box-sizing: content-box;
209
+ box-sizing: content-box;
210
+ height: 0;
211
+ }
212
+
213
+ /**
214
+ * Contain overflow in all browsers.
215
+ */
216
+
217
+ pre {
218
+ overflow: auto;
219
+ }
220
+
221
+ /**
222
+ * Address odd `em`-unit font size rendering in all browsers.
223
+ */
224
+
225
+ code,
226
+ kbd,
227
+ pre,
228
+ samp {
229
+ font-family: monospace, monospace;
230
+ font-size: 1em;
231
+ }
232
+
233
+ /* Forms
234
+ ========================================================================== */
235
+
236
+ /**
237
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
238
+ * styling of `select`, unless a `border` property is set.
239
+ */
240
+
241
+ /**
242
+ * 1. Correct color not being inherited.
243
+ * Known issue: affects color of disabled elements.
244
+ * 2. Correct font properties not being inherited.
245
+ * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
246
+ */
247
+
248
+ button,
249
+ input,
250
+ optgroup,
251
+ select,
252
+ textarea {
253
+ color: inherit; /* 1 */
254
+ font: inherit; /* 2 */
255
+ margin: 0; /* 3 */
256
+ }
257
+
258
+ /**
259
+ * Address `overflow` set to `hidden` in IE 8/9/10.
260
+ */
261
+
262
+ button {
263
+ overflow: visible;
264
+ }
265
+
266
+ /**
267
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
268
+ * All other form control elements do not inherit `text-transform` values.
269
+ * Correct `button` style inheritance in Firefox, IE 8+, and Opera
270
+ * Correct `select` style inheritance in Firefox.
271
+ */
272
+
273
+ button,
274
+ select {
275
+ text-transform: none;
276
+ }
277
+
278
+ /**
279
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
280
+ * and `video` controls.
281
+ * 2. Correct inability to style clickable `input` types in iOS.
282
+ * 3. Improve usability and consistency of cursor style between image-type
283
+ * `input` and others.
284
+ */
285
+
286
+ button,
287
+ html input[type="button"], /* 1 */
288
+ input[type="reset"],
289
+ input[type="submit"] {
290
+ -webkit-appearance: button; /* 2 */
291
+ cursor: pointer; /* 3 */
292
+ }
293
+
294
+ /**
295
+ * Re-set default cursor for disabled elements.
296
+ */
297
+
298
+ button[disabled],
299
+ html input[disabled] {
300
+ cursor: default;
301
+ }
302
+
303
+ /**
304
+ * Remove inner padding and border in Firefox 4+.
305
+ */
306
+
307
+ button::-moz-focus-inner,
308
+ input::-moz-focus-inner {
309
+ border: 0;
310
+ padding: 0;
311
+ }
312
+
313
+ /**
314
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
315
+ * the UA stylesheet.
316
+ */
317
+
318
+ input {
319
+ line-height: normal;
320
+ }
321
+
322
+ /**
323
+ * It's recommended that you don't attempt to style these elements.
324
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
325
+ *
326
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
327
+ * 2. Remove excess padding in IE 8/9/10.
328
+ */
329
+
330
+ input[type="checkbox"],
331
+ input[type="radio"] {
332
+ box-sizing: border-box; /* 1 */
333
+ padding: 0; /* 2 */
334
+ }
335
+
336
+ /**
337
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
338
+ * `font-size` values of the `input`, it causes the cursor style of the
339
+ * decrement button to change from `default` to `text`.
340
+ */
341
+
342
+ input[type="number"]::-webkit-inner-spin-button,
343
+ input[type="number"]::-webkit-outer-spin-button {
344
+ height: auto;
345
+ }
346
+
347
+ /**
348
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
349
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
350
+ * (include `-moz` to future-proof).
351
+ */
352
+
353
+ input[type="search"] {
354
+ -webkit-appearance: textfield; /* 1 */
355
+ -moz-box-sizing: content-box;
356
+ -webkit-box-sizing: content-box; /* 2 */
357
+ box-sizing: content-box;
358
+ }
359
+
360
+ /**
361
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
362
+ * Safari (but not Chrome) clips the cancel button when the search input has
363
+ * padding (and `textfield` appearance).
364
+ */
365
+
366
+ input[type="search"]::-webkit-search-cancel-button,
367
+ input[type="search"]::-webkit-search-decoration {
368
+ -webkit-appearance: none;
369
+ }
370
+
371
+ /**
372
+ * Define consistent border, margin, and padding.
373
+ */
374
+
375
+ fieldset {
376
+ border: 1px solid #c0c0c0;
377
+ margin: 0 2px;
378
+ padding: 0.35em 0.625em 0.75em;
379
+ }
380
+
381
+ /**
382
+ * 1. Correct `color` not being inherited in IE 8/9.
383
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
384
+ */
385
+
386
+ legend {
387
+ border: 0; /* 1 */
388
+ padding: 0; /* 2 */
389
+ }
390
+
391
+ /**
392
+ * Remove default vertical scrollbar in IE 8/9.
393
+ */
394
+
395
+ textarea {
396
+ overflow: auto;
397
+ }
398
+
399
+ /**
400
+ * Don't inherit the `font-weight` (applied by a rule above).
401
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
402
+ */
403
+
404
+ optgroup {
405
+ font-weight: bold;
406
+ }
407
+
408
+ /* Tables
409
+ ========================================================================== */
410
+
411
+ /**
412
+ * Remove most spacing between table cells.
413
+ */
414
+
415
+ table {
416
+ border-collapse: collapse;
417
+ border-spacing: 0;
418
+ }
419
+
420
+ td,
421
+ th {
422
+ padding: 0;
423
+ }
Binary file
File without changes
@@ -0,0 +1,7 @@
1
+ $(document).ready(function() {
2
+ // This is called after the document has loaded in its entirety
3
+ // This guarantees that any elements we bind to will exist on the page
4
+ // when we try to bind to them
5
+
6
+ // See: http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
7
+ });