Class: LookbookVisualTester::ScenarioRun

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scenario, variant_slug: nil, display_params: {}) ⇒ ScenarioRun

Returns a new instance of ScenarioRun.



7
8
9
10
11
12
13
14
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 7

def initialize(scenario, variant_slug: nil, display_params: {})
  @scenario = scenario
  @preview = scenario.preview
  @variant_slug = variant_slug
  @display_params = display_params

  LookbookVisualTester.config.logger.info "  Scenario: #{scenario_name} #{variant_suffix}"
end

Instance Attribute Details

#display_paramsObject (readonly)

Returns the value of attribute display_params.



5
6
7
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 5

def display_params
  @display_params
end

#previewObject (readonly)

Returns the value of attribute preview.



5
6
7
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 5

def preview
  @preview
end

#scenarioObject (readonly)

Returns the value of attribute scenario.



5
6
7
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 5

def scenario
  @scenario
end

#variant_slugObject (readonly)

Returns the value of attribute variant_slug.



5
6
7
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 5

def variant_slug
  @variant_slug
end

Instance Method Details

#baseline_pathObject



51
52
53
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 51

def baseline_path
  LookbookVisualTester.config.baseline_dir.join(folder_name).join(filename)
end

#current_pathObject



47
48
49
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 47

def current_path
  LookbookVisualTester.config.current_dir.join(folder_name).join(filename)
end

#diff_filenameObject



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

def diff_filename
  "#{preview_name}_#{scenario_name}_diff.png"
end

#filenameObject



28
29
30
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 28

def filename
  "#{name}.png"
end

#folder_nameObject



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

def folder_name
  variant_slug.presence || 'default'
end

#nameObject



24
25
26
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 24

def name
  "#{preview_name}_#{scenario_name}"
end

#preview_nameObject



16
17
18
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 16

def preview_name
  preview.name.underscore
end

#preview_urlObject



55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 55

def preview_url
  params = { path: preview.lookup_path + '/' + scenario.name }

  if display_params.any?
    # Transform display_params { theme: 'dark' } -> { _display: { theme: 'dark' } }
    params[:_display] = display_params.to_json
  end

  Lookbook::Engine.routes.url_helpers.lookbook_preview_url(
    params.merge(host: LookbookVisualTester.config.lookbook_host)
  )
end

#scenario_nameObject



20
21
22
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 20

def scenario_name
  scenario.name.underscore
end

#timestamp_filenameObject



32
33
34
35
36
37
# File 'lib/lookbook_visual_tester/scenario_run.rb', line 32

def timestamp_filename
  @timestamp_filename ||= begin
    timestamp = Time.now.strftime('%Y%m%d-%H%M%S')
    "#{name}_#{timestamp}.png"
  end
end