diff options
| author | Azul <azul@leap.se> | 2012-06-26 18:56:43 +0200 | 
|---|---|---|
| committer | Azul <azul@leap.se> | 2012-06-26 18:56:43 +0200 | 
| commit | 12b30b7e861c510593c6a8bd4bae68c2126106db (patch) | |
| tree | 4c578c34958f020dd0cddc3df3ac1e0f87b776d6 | |
| parent | f32497f143ef95264706dba27ce3e7a26d7ba6a4 (diff) | |
moved user and log class to models, verify prints logs
| -rw-r--r-- | example/http-srp.rb | 42 | ||||
| -rw-r--r-- | example/models/log.rb | 31 | ||||
| -rw-r--r-- | example/models/user.rb | 25 | ||||
| -rw-r--r-- | example/views/verify.erb | 7 | 
4 files changed, 77 insertions, 28 deletions
| diff --git a/example/http-srp.rb b/example/http-srp.rb index c0c9360..4faa149 100644 --- a/example/http-srp.rb +++ b/example/http-srp.rb @@ -1,36 +1,11 @@  require 'sinatra'  require 'pp' -class User - -  def self.current -    # p "getting #{@current ? @current.login : 'nil'}" -    @current ||= User.new -  end - -  attr_accessor :login -  attr_accessor :password -  attr_accessor :active - -  def signup!(params) -    self.login = params.delete('login') -    p "signing up as #{login}" -    self.password = params.delete('password') -    self.active = false -  end - -  def login!(params) -    self.active = valid_login?(params[:login], params[:password]) -  end - -  def valid_login?(login, password) -    (self.login == login) and (self.password == password) -  end -end +require 'models/user' +require 'models/log'  get '/' do    @user = User.current -  p "visiting / as #{@user.login}"    erb :index  end @@ -39,6 +14,8 @@ get '/signup' do  end  post '/signup' do +  Log.clear +  Log.log(:signup, params)    @user = User.current    @user.signup!(params)    redirect '/' @@ -49,11 +26,20 @@ get '/login' do  end  post '/login' do +  Log.log(:login, params)    @user = User.current -  @user.login!(params) +  if @user.login!(params) +    Log.log(:response, "Login succeeded") +  else +    Log.log(:response, "Login failed") +  end    redirect '/'  end +get '/verify' do +  erb :verify +end +  helpers do    def button_link(action, options = {})      action = action.to_s diff --git a/example/models/log.rb b/example/models/log.rb new file mode 100644 index 0000000..9e700a8 --- /dev/null +++ b/example/models/log.rb @@ -0,0 +1,31 @@ +require 'yaml' + +class Log + +  def self.current +    @current ||= Log.new +  end + +  def self.log(*args) +    self.current.log(*args) +  end + +  def self.clear +    @current = nil +  end + +  attr_accessor :actions + +  def initialize +    @actions = [] +  end + +  def log(action, params) +    @actions << {action => params.dup} +  end + +  def pretty +    @actions.to_yaml +  end + +end diff --git a/example/models/user.rb b/example/models/user.rb new file mode 100644 index 0000000..f3f86ba --- /dev/null +++ b/example/models/user.rb @@ -0,0 +1,25 @@ +class User + +  def self.current +    # p "getting #{@current ? @current.login : 'nil'}" +    @current ||= User.new +  end + +  attr_accessor :login +  attr_accessor :password +  attr_accessor :active + +  def signup!(params) +    self.login = params.delete('login') +    self.password = params.delete('password') +    self.active = false +  end + +  def login!(params) +    self.active = valid_login?(params[:login], params[:password]) +  end + +  def valid_login?(login, password) +    (self.login == login) and (self.password == password) +  end +end diff --git a/example/views/verify.erb b/example/views/verify.erb new file mode 100644 index 0000000..4bbe1c6 --- /dev/null +++ b/example/views/verify.erb @@ -0,0 +1,7 @@ +<h2>3. Verify</h2> +<pre> +  <%= Log.current.pretty %> +</pre> +<div class="form-actions"> +  <a href="/" class="btn btn-primary">Back</a> +</div> | 
