Class: Monet::PageLogger

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Singleton
Defined in:
lib/monet/page_logger.rb

Defined Under Namespace

Modules: Helpers

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializePageLogger

Returns a new instance of PageLogger.



21
22
23
# File 'lib/monet/page_logger.rb', line 21

def initialize
  reset
end

Class Method Details

.load(path) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/monet/page_logger.rb', line 46

def self.load(path)
  logger = new
  CSV.foreach(path) do |k,v|
    logger.add(k,v)
  end

  logger
end

.resetObject



59
60
61
# File 'lib/monet/page_logger.rb', line 59

def self.reset
  instance.reset
end

Instance Method Details

#add(url, status) ⇒ Object



34
35
36
# File 'lib/monet/page_logger.rb', line 34

def add(url, status)
  @cache[normalize_url(url)] = status.to_i
end

#failed?(url) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/monet/page_logger.rb', line 75

def failed?(url)
  !succeeded?(url)
end

#failuresObject



63
64
65
# File 'lib/monet/page_logger.rb', line 63

def failures
  @cache.select {|k,v| failed? k }
end

#resetObject



55
56
57
# File 'lib/monet/page_logger.rb', line 55

def reset
  @cache = {}
end

#save(path) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/monet/page_logger.rb', line 38

def save(path)
  File.open(path, "w+") do |io|
    @cache.each do |k,v|
      io.puts "#{k},#{v}"
    end
  end
end

#status_for(url) ⇒ Object



27
28
29
30
31
32
# File 'lib/monet/page_logger.rb', line 27

def status_for(url)
  status = @cache[url]
  raise Monet::Errors::UnseenURL.new(url) unless status

  status
end

#succeeded?(url) ⇒ Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/monet/page_logger.rb', line 71

def succeeded?(url)
  status_for(url) < 400
end

#successesObject



67
68
69
# File 'lib/monet/page_logger.rb', line 67

def successes
  @cache.select {|k,v| succeeded? k }
end