Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # fix koala so it doesn't segfault. weird issue
- require 'koala'
- Koala.http_service = Koala::NetHTTPService
- # setup database and session crap from config
- $conf = YAML.load File.read("./conf.yml")
- ActiveRecord::Base.establish_connection $conf['db']
- configure(:development) do
- require 'logger'
- ActiveRecord::Base.logger = Logger.new(STDOUT)
- end
- enable :sessions
- set :session_secret, $conf["session_secret"]
- # setup activemerchant
- require 'activemerchant'
- ActiveMerchant::Billing::Base.mode = :test
- ActiveMerchant::Billing::PaypalExpressGateway.default_currency = $conf['paypal']['currency']
- # setup money
- require 'money'
- class ActiveRecord::Base
- def self.has_money(*syms)
- syms.each do |sym|
- composed_of(sym,
- :class_name => "Money",
- :mapping => [%w(cents cent), %w(currency currency_as_string)],
- :constructor => Proc.new { |cents, currency| Money.new(cents || 0, currency || Money.default_currency) },
- :converter => Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : raise(ArgumentError, "Can't convert #{value.class} to Money") })
- end
- end
- end
- # setup erubis with automatic html escaping
- require 'erubis'
- Tilt.register :erb, Tilt[:erubis]
- set :erb, :escape_html => true
- # filters
- before do
- @user = User.find session[:uid] if session[:uid]
- end
- # helpers
- helpers do
- def relative_time(start_time)
- diff_seconds = (Time.now - start_time).to_i
- case diff_seconds
- when 0 .. 59
- "#{diff_seconds} second#{diff_seconds != 1 ? "s" : ""} ago"
- when 60 .. (3600-1)
- "#{diff_seconds/60} minute#{diff_seconds/60 != 1 ? "s" : ""} ago"
- when 3600 .. (3600*24-1)
- "#{diff_seconds/3600} hour#{diff_seconds/3600 != 1 ? "s" : ""} ago"
- when (3600*24) .. (3600*24*30)
- "#{diff_seconds/(3600*24)} day#{diff_seconds/(3600*24) != 1 ? "s" : ""} ago"
- else
- start_time.strftime("%d/%m/%Y")
- end
- end
- def nl2br(text)
- text.gsub("\n", "<br />\n")
- end
- end
- # convenience methods
- def view(view, page = view)
- @page = page
- erb view
- end
- def logged_in!(where_to = "/")
- unless @user
- redirect where_to
- halt
- end
- end
- def admin!(where_to = "/")
- unless @user and @user.admin
- redirect where_to
- halt
- end
- end
- def paypal
- @paypal ||= ActiveMerchant::Billing::PaypalExpressGateway.new(
- :login => $conf['paypal']['login'],
- :password => $conf['paypal']['password'],
- :signature => $conf['paypal']['signature']
- )
- end
Add Comment
Please, Sign In to add comment