Class: W3map::Bot

Inherits:
Object
  • Object
show all
Defined in:
lib/w3map.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(session) ⇒ Bot

Returns a new instance of Bot.



126
127
128
129
130
131
132
# File 'lib/w3map.rb', line 126

def initialize(session)
  @session = session
  @http_engine = HttpEngine.new(self)
  # TODO: create class NeuronStack (NeuronPipeline?)
  @neurons = []
  @neurons << Neurons::SimpleCrawler.new(self)
end

Instance Attribute Details

#sessionObject (readonly)

Returns the value of attribute session.



125
126
127
# File 'lib/w3map.rb', line 125

def session
  @session
end

Instance Method Details

#startObject



133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/w3map.rb', line 133

def start
  loop do
    puts "Bot waiting for task (#{Time.now})"
    url = @session.queue.pop
    # break if url.nil?
    puts "PROCESS #{url}"
    response = @http_engine.response_for(url)
    # save url, 'response-code', response.code
    data = {'response-code' => response.code}
    @neurons.each { |neuron| neuron.process url, response, data } #TODO: use NeuronStack or other
    @session.dstore.save_hash url, data
  end
rescue SignalException => e
  puts
end

#stopObject



148
149
150
# File 'lib/w3map.rb', line 148

def stop
  # @session.close ?
end