class Pagelapse::Recorder

Attributes

duration[RW]
expiration[RW]
height[RW]
interval[RW]
name[R]
timeout[RW]
url[R]
width[RW]

Public Class Methods

new(name, url) click to toggle source
# File lib/pagelapse/recorder.rb, line 7
def initialize(name, url)
  @name = name
  @url = url
  @interval = 20
  @duration = nil
  @on_load = nil
  @expiration = nil
  @start = Time.now
  @width = 1240
  @height = 900
  @timer = Time.new 0
  @capture_if = nil
  @save_if = nil
  FileUtils.mkdir_p(File.join 'lapses', @name)
end

Public Instance Methods

before_capture(&block) click to toggle source
# File lib/pagelapse/recorder.rb, line 23
def before_capture(&block)
  @on_load = block
end
capture() click to toggle source
# File lib/pagelapse/recorder.rb, line 49
def capture
  @timer = Time.now
  ws = Pagelapse::Screenshot.new

  ws.capture(
    @url,
    filename,
    width: @width,
    height: @height,
    timeout: @timeout,
    capture_if: @capture_if,
    save_if: @save_if,
    on_load: @on_load
  )
end
capture_if(&block) click to toggle source
# File lib/pagelapse/recorder.rb, line 27
def capture_if(&block)
  @capture_if = block
end
expired?() click to toggle source

Returns true if recorder has expired

# File lib/pagelapse/recorder.rb, line 45
def expired?
  Time.now > @start + @expiration if @expiration
end
filename() click to toggle source
# File lib/pagelapse/recorder.rb, line 35
def filename
  File.join 'lapses', @name, "#{Time.now.to_i}.png"
end
ready?() click to toggle source

Returns true if timer is expired and ready to capture

# File lib/pagelapse/recorder.rb, line 40
def ready?
  @timer < Time.now - @interval
end
save_if(&block) click to toggle source
# File lib/pagelapse/recorder.rb, line 31
def save_if(&block)
  @save_if = block
end