Class: LikadanUtils

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

Class Method Summary collapse

Class Method Details

.configObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/likadan_utils.rb', line 5

def self.config
  @@config ||= {
    'snapshots_folder' => './snapshots',
    'source_files' => [],
    'stylesheets' => [],
    'port' => 4567,
    'driver' => :firefox,
    'viewports' => {
      'large' => {
        'width' => 1024,
        'height' => 768
      },
      'medium' => {
        'width' => 640,
        'height' => 888
      },
      'small' => {
        'width' => 320,
        'height' => 444
      }
    }
  }.merge(YAML.load(ERB.new(File.read(
    ENV['LIKADAN_CONFIG_FILE'] || '.likadan.yaml')).result))
end

.construct_url(absolute_path, params = {}) ⇒ Object



43
44
45
46
47
48
49
50
51
52
# File 'lib/likadan_utils.rb', line 43

def self.construct_url(absolute_path, params = {})
  params_str = params.map do |key, value|
    "#{key}=#{URI.escape(value)}"
  end.join('&')
  unless params_str.empty?
    params_str = "?#{params_str}"
  end

  return "http://localhost:#{config['port']}#{absolute_path}#{params_str}"
end

.current_snapshotsObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/likadan_utils.rb', line 54

def self.current_snapshots
  prepare_file = lambda do |file|
    viewport_dir = File.expand_path('..', file)
    name_dir = File.expand_path('..', viewport_dir)
    {
      name: File.basename(name_dir),
      viewport: File.basename(viewport_dir).sub('@', ''),
      file: file,
    }
  end
  diff_files = Dir.glob("#{LikadanUtils.config['snapshots_folder']}/**/diff.png")
  baselines = Dir.glob("#{LikadanUtils.config['snapshots_folder']}/**/baseline.png")
  {
    diffs: diff_files.map(&prepare_file),
    baselines: baselines.map(&prepare_file)
  }
end

.normalize_name(name) ⇒ Object



30
31
32
# File 'lib/likadan_utils.rb', line 30

def self.normalize_name(name)
  name.gsub(/[^a-zA-Z0-9\-_]/, '_')
end

.path_to(name, viewport_name, file_name) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/likadan_utils.rb', line 34

def self.path_to(name, viewport_name, file_name)
  File.join(
    config['snapshots_folder'],
    normalize_name(name),
    "@#{viewport_name}",
    file_name
  )
end