Class: Blinkr::Config

Inherits:
OpenStruct show all
Defined in:
lib/blinkr/config.rb

Constant Summary collapse

DEFAULTS =
{:skips => [], :ignores => [], :max_retrys => 3, :browser => 'typhoeus',
 :viewport => 1200, :phantomjs_threads => 8, :report => 'blinkr.html',
 :warning_on_300s => false
}

Constants inherited from OpenStruct

OpenStruct::EXCEPT

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from OpenStruct

#to_json

Constructor Details

#initialize(hash = {}) ⇒ Config

Returns a new instance of Config.



16
17
18
# File 'lib/blinkr/config.rb', line 16

def initialize(hash={})
  super(DEFAULTS.merge(hash))
end

Class Method Details

.read(file, args) ⇒ Object



6
7
8
9
# File 'lib/blinkr/config.rb', line 6

def self.read file, args
  raise "Cannot read #{file}" unless File.exists? file
  Config.new(YAML.load_file(file).merge(args).merge({ :config_file => file }))
end

Instance Method Details

#ignored?(error) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/blinkr/config.rb', line 41

def ignored? error
  url = error.url
  code = error.code
  message = error.message
  snippet = error.snippet

  ignores.any? do |ignore|
	return true if ignore['url'].is_a?(Regexp) && url && ignore['url'] =~ url
	return true if ignore['url'] == url

    return true if ignore['code'].is_a?(Regexp) && code && ignore['code'] == code
    return true if ignore['code']  == code

    return true if ignore['message'].is_a?(Regexp) && message && ignore['message'] =~ message
    return true if ignore['message']  == message

    return true if ignore['snippet'].is_a?(Regexp) && snippet && ignore['snippet'] =~ snippet
    return true if ignore['snippet'] == snippet
    false
  end
end

#max_page_retrysObject



35
36
37
38
39
# File 'lib/blinkr/config.rb', line 35

def max_page_retrys
  r = super || max_retrys
  raise "Retrys is nil" if r.nil?
  r
end

#sitemapObject



27
28
29
30
31
32
33
# File 'lib/blinkr/config.rb', line 27

def sitemap
  if super.nil?
    URI.join(base_url, 'sitemap.xml').to_s 
  else
    super
  end
end

#skipped?(url) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/blinkr/config.rb', line 63

def skipped? url
  skips.any? { |regex| regex.match(url) }
end

#validateObject



20
21
22
23
24
25
# File 'lib/blinkr/config.rb', line 20

def validate
  ignores.each {|ignore| raise "An ignore must be a hash" unless ignore.is_a? Hash}
  raise "Must specify base_url" if base_url.nil?
  raise "Must specify sitemap" if sitemap.nil?
  self
end