Class: ArchiveLocation

Inherits:
Object
  • Object
show all
Defined in:
lib/domreactor-redglass/archive_location.rb

Constant Summary collapse

REQUIRED_BASELINE_BROWSER_CONFIG_KEYS =
[:name, :version, :platform]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(location, opts = {}) ⇒ ArchiveLocation

Returns a new instance of ArchiveLocation.



6
7
8
9
# File 'lib/domreactor-redglass/archive_location.rb', line 6

def initialize(location, opts={})
  @location = location
  @opts = opts
end

Instance Attribute Details

#locationObject (readonly)

Returns the value of attribute location.



2
3
4
# File 'lib/domreactor-redglass/archive_location.rb', line 2

def location
  @location
end

#optsObject (readonly)

Returns the value of attribute opts.



2
3
4
# File 'lib/domreactor-redglass/archive_location.rb', line 2

def opts
  @opts
end

Instance Method Details

#archivesObject



11
12
13
# File 'lib/domreactor-redglass/archive_location.rb', line 11

def archives
  @archives ||= archive_list(location)
end

#detect_archive_locationObject



21
22
23
24
25
# File 'lib/domreactor-redglass/archive_location.rb', line 21

def detect_archive_location
  unless File.directory?(location)
    raise 'A valid archive location is required.'
  end
end

#detect_baseline_browserObject



31
32
33
34
35
36
37
38
# File 'lib/domreactor-redglass/archive_location.rb', line 31

def detect_baseline_browser
  unless opts[:baseline_browser] && is_valid_baseline_browser_config?(opts[:baseline_browser])
    raise 'A valid baseline_browser configuration is required.'
  end
  unless has_baseline_archive?(location, opts)
    raise 'A page archive that corresponds to the baseline browser configuration is required.'
  end
end

#detect_min_archive_quotaObject



27
28
29
# File 'lib/domreactor-redglass/archive_location.rb', line 27

def detect_min_archive_quota
  raise 'At least two valid page archives are required.' unless sum_archive_count(location) >= 2
end

#is_valid_baseline_browser_config?(baseline_browser_config) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/domreactor-redglass/archive_location.rb', line 40

def is_valid_baseline_browser_config?(baseline_browser_config)
  baseline_browser_config.keys.sort == REQUIRED_BASELINE_BROWSER_CONFIG_KEYS.sort
end

#validate!Object



15
16
17
18
19
# File 'lib/domreactor-redglass/archive_location.rb', line 15

def validate!
  detect_archive_location
  detect_min_archive_quota
  detect_baseline_browser
end