class PopularityContest::Web
Public Class Methods
new(app = nil)
click to toggle source
Calls superclass method
# File lib/popularity_contest/web.rb, line 20 def initialize(app = nil) super @app = app @redis = $redis if @redis puts "PopularityContest: Running in #{Sinatra::Base.environment} environment" else puts "=> Statistics Redis connection failure" end end
Private Instance Methods
cors_headers_list()
click to toggle source
# File lib/popularity_contest/web.rb, line 84 def cors_headers_list { 'Access-Control-Allow-Origin' => '*', 'Access-Control-Allow-Methods' => %w(GET OPTIONS).join(', '), 'Access-Control-Allow-Headers' => %w{Origin Accept Content-Type X-Requested-With X-CSRF-Token}.join(', '), } end
error(statuscode, message)
click to toggle source
Error-handling
# File lib/popularity_contest/web.rb, line 75 def error(statuscode, message) content_type :json status statuscode.to_i # or whatever logger.info "#{statuscode} - #{message}" {:error => message}.to_json end
incr_key(content_type, content_id)
click to toggle source
Redis-helpers
# File lib/popularity_contest/web.rb, line 65 def incr_key(content_type, content_id) @redis.multi do key = PopularityContest::key(content_type, content_id) puts "PopularityContest: Incrementing key='#{key}'" if Sinatra::Base.development? @redis.incr(key) @redis.expire(key, 48*60*60) # each time we increment we expire 48 hours out in the future end end