Repository navigation
Expand file tree
/
Copy pathapp.rb
More file actions
62 lines (48 loc) · 1.44 KB
/
Copy pathapp.rb
File metadata and controls
62 lines (48 loc) · 1.44 KB
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
require "sinatra/base"
require "sinatra/activerecord"
require "sinatra/flash"
require "sinatra/contrib/all"
require "json"
require "i18n"
require_relative "app/helpers/authentication_helpers"
require_relative "app/repositories/user_repository"
I18n.load_path += Dir[File.join(File.dirname(__FILE__), 'config/locales', '*.yml').to_s]
class Stringer < Sinatra::Base
configure do
set :database_file, "config/database.yml"
set :views, "app/views"
set :public_dir, "app/public"
enable :sessions
set :session_secret, ENV["SECRET_TOKEN"] || "secret!"
enable :logging
register Sinatra::ActiveRecordExtension
register Sinatra::Flash
register Sinatra::Contrib
end
helpers do
include Sinatra::AuthenticationHelpers
def render_partial(name, locals = {})
erb "partials/_#{name}".to_sym, layout: false, locals: locals
end
def t(*args)
I18n.t(*args)
end
end
before do
I18n.locale = ENV["LOCALE"].blank? ? :en : ENV["LOCALE"].to_sym
if !is_authenticated? && needs_authentication?(request.path)
redirect '/login'
end
end
get "/" do
if UserRepository.setup_complete?
redirect to("/news")
else
redirect to("/setup/password")
end
end
end
require_relative "app/controllers/stories_controller"
require_relative "app/controllers/first_run_controller"
require_relative "app/controllers/sessions_controller"
require_relative "app/controllers/feeds_controller"