--- /dev/null
+*.gem
+*.rbc
+/.config
+/coverage/
+/InstalledFiles
+/pkg/
+/spec/reports/
+/spec/examples.txt
+/test/tmp/
+/test/version_tmp/
+/tmp/
+
+## Documentation cache and generated files:
+/.yardoc/
+/_yardoc/
+/doc/
+/rdoc/
+
+## Environment normalization:
+/.bundle/
+/vendor/bundle
+/lib/bundler/man/
+
+# for a library or gem, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+Gemfile.lock
+.ruby-version
+.ruby-gemset
+
+# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
+.rvmrc
--- /dev/null
+# A sample Gemfile
+source "https://rubygems.org"
+
+gem 'sinatra'
+gem 'rake'
+
+group :test, :development do
+ gem 'rspec'
+end
+
+group :test do
+ gem 'rack-test'
+end
\ No newline at end of file
--- /dev/null
+# app.rb
+ENV['RACK_ENV'] ||= 'development'
+
+require 'bundler'
+Bundler.require :default, ENV['RACK_ENV'].to_sym
+
+require_relative 'helpers'
+# require_relative 'routes/secrets'
+# require_relative 'routes/sessions'
+
+class SimpleApp < Sinatra::Base
+
+ set :root, File.dirname(__FILE__)
+
+ enable :sessions
+
+ helpers Sinatra::SampleApp::Helpers
+
+ # register Sinatra::SampleApp::Routing::Sessions
+ # register Sinatra::SampleApp::Routing::Secrets
+
+end
--- /dev/null
+module Sinatra
+ module SampleApp
+ module Helpers
+
+ def require_logged_in
+ redirect('/sessions/new') unless is_authenticated?
+ end
+
+ def is_authenticated?
+ return !!session[:user_id]
+ end
+
+ end
+ end
+end
--- /dev/null
+# rakefile
+require 'rspec/core/rake_task'
+
+RSpec::Core::RakeTask.new :specs do |task|
+ task.pattern = Dir['spec/**/*_spec.rb']
+end
+
+task :default => ['specs']