Class: Spider::VisitRecorder

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

Constant Summary collapse

@@directory =
''
@@active =
false
@@recording =
false

Class Method Summary collapse

Class Method Details

.activate!Object



27
28
29
# File 'lib/recorder.rb', line 27

def activate!
  @@active = true
end

.config(dir) ⇒ Object



43
44
45
# File 'lib/recorder.rb', line 43

def config(dir)
  @@directory = dir
end

.deactivate!Object



35
36
37
# File 'lib/recorder.rb', line 35

def deactivate!
  @@active = false
end

.pause!Object



39
40
41
# File 'lib/recorder.rb', line 39

def pause!
  @@recording = false
end

.recall(*args) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/recorder.rb', line 47

def recall(*args)
  if @@active
    url = args.first.to_s
    data = ''

    store = locate_file(url)

    if store.size == 0
      raise "Unexpected request: #{url}" unless @@recording
      data = yield(*args) if block_given?

      begin
        store.write(package(url, data))
      rescue StandardError => e
        puts e.message
        puts "On file #{store.path}"
      end

    else
      data = unpackage(store, url)
    end

    return data

  elsif block_given?
    yield(*args)
  end
end

.record!Object



31
32
33
# File 'lib/recorder.rb', line 31

def record!
  @@recording = true
end