Class: Server

Inherits:
Sinatra::Base
  • Object
show all
Defined in:
lib/server.rb

Overview

Sinatra server to host the statistics for the CobwebCrawler

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.cobweb_optionsObject



106
107
108
# File 'lib/server.rb', line 106

def self.cobweb_options
  @options
end

.start(options = {}) ⇒ Object

Starts the Sinatra server, and kills the processes when shutdown



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/server.rb', line 86

def self.start(options={})
  @options = options
  @options[:redis_options] = {} unless @options.has_key? :redis_options
  unless Server.running?
    if @options[:run_as_server]
      puts "Starting Sinatra for cobweb v#{Cobweb.version}"
      Server.run!
      puts "Stopping crawl..."
    else
      thread = Thread.new do
        puts "Starting Sinatra"
        Server.run!
        puts "Stopping crawl..."
        ## we need to manually kill the main thread as sinatra traps the interrupts
        Thread.main.kill
      end
    end
  end    
end

Instance Method Details

#cobweb_version(crawl_id) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/server.rb', line 73

def cobweb_version(crawl_id)
  redis = RedisConnection.new(redis_options)
  key = redis.keys("cobweb-*-#{crawl_id}:queued").first
  
  key =~ /cobweb-(.*?)-(.*?):queued/
  cobweb_version = $1
end

#redis_optionsObject



81
82
83
# File 'lib/server.rb', line 81

def redis_options
  Server.cobweb_options[:redis_options]
end