Guest User

Untitled

a guest
Oct 20th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. # fix koala so it doesn't segfault. weird issue
  2. require 'koala'
  3. Koala.http_service = Koala::NetHTTPService
  4.  
  5. # setup database and session crap from config
  6. $conf = YAML.load File.read("./conf.yml")
  7. ActiveRecord::Base.establish_connection $conf['db']
  8. configure(:development) do
  9. require 'logger'
  10. ActiveRecord::Base.logger = Logger.new(STDOUT)
  11. end
  12. enable :sessions
  13. set :session_secret, $conf["session_secret"]
  14.  
  15. # setup activemerchant
  16. require 'activemerchant'
  17. ActiveMerchant::Billing::Base.mode = :test
  18. ActiveMerchant::Billing::PaypalExpressGateway.default_currency = $conf['paypal']['currency']
  19.  
  20. # setup money
  21. require 'money'
  22. class ActiveRecord::Base
  23. def self.has_money(*syms)
  24. syms.each do |sym|
  25. composed_of(sym,
  26. :class_name => "Money",
  27. :mapping => [%w(cents cent), %w(currency currency_as_string)],
  28. :constructor => Proc.new { |cents, currency| Money.new(cents || 0, currency || Money.default_currency) },
  29. :converter => Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : raise(ArgumentError, "Can't convert #{value.class} to Money") })
  30. end
  31. end
  32. end
  33.  
  34. # setup erubis with automatic html escaping
  35. require 'erubis'
  36. Tilt.register :erb, Tilt[:erubis]
  37. set :erb, :escape_html => true
  38.  
  39. # filters
  40. before do
  41. @user = User.find session[:uid] if session[:uid]
  42. end
  43.  
  44. # helpers
  45. helpers do
  46. def relative_time(start_time)
  47. diff_seconds = (Time.now - start_time).to_i
  48. case diff_seconds
  49. when 0 .. 59
  50. "#{diff_seconds} second#{diff_seconds != 1 ? "s" : ""} ago"
  51. when 60 .. (3600-1)
  52. "#{diff_seconds/60} minute#{diff_seconds/60 != 1 ? "s" : ""} ago"
  53. when 3600 .. (3600*24-1)
  54. "#{diff_seconds/3600} hour#{diff_seconds/3600 != 1 ? "s" : ""} ago"
  55. when (3600*24) .. (3600*24*30)
  56. "#{diff_seconds/(3600*24)} day#{diff_seconds/(3600*24) != 1 ? "s" : ""} ago"
  57. else
  58. start_time.strftime("%d/%m/%Y")
  59. end
  60. end
  61.  
  62. def nl2br(text)
  63. text.gsub("\n", "<br />\n")
  64. end
  65. end
  66.  
  67. # convenience methods
  68. def view(view, page = view)
  69. @page = page
  70. erb view
  71. end
  72.  
  73. def logged_in!(where_to = "/")
  74. unless @user
  75. redirect where_to
  76. halt
  77. end
  78. end
  79.  
  80. def admin!(where_to = "/")
  81. unless @user and @user.admin
  82. redirect where_to
  83. halt
  84. end
  85. end
  86.  
  87. def paypal
  88. @paypal ||= ActiveMerchant::Billing::PaypalExpressGateway.new(
  89. :login => $conf['paypal']['login'],
  90. :password => $conf['paypal']['password'],
  91. :signature => $conf['paypal']['signature']
  92. )
  93. end
Add Comment
Please, Sign In to add comment