Class: Snapshot::Setup

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

Class Method Summary collapse

Class Method Details

.create(path) ⇒ Object

This method will take care of creating a Snapfile and other necessary files



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

def self.create(path)
  snapfile_path = File.join(path, 'Snapfile')

  if File.exist?(snapfile_path)
    raise "Snapfile already exists at path '#{snapfile_path}'. Run 'snapshot' to use snapshot.".red
  end

  gem_path = Helper.gem_path("snapshot")
  File.write(snapfile_path, File.read("#{gem_path}/lib/assets/SnapfileTemplate"))
  File.write(File.join(path, 'SnapshotHelper.swift'), File.read("#{gem_path}/lib/assets/SnapshotHelper.swift"))

  puts "Successfully created SnapshotHelper.swift '#{File.join(path, 'SnapshotHelper.swift')}'".green
  puts "Successfully created new Snapfile at '#{snapfile_path}'".green

  puts "-------------------------------------------------------".yellow
  puts "Open your Xcode project and make sure to do the following:".yellow
  puts "1) Add the ./SnapshotHelper.swift to your UI Test target".yellow
  puts "   You can move the file anywhere you want".yellow
  puts "2) Call `setupSnapshot(app)` when launching your app".yellow
  puts ""
  puts "  let app = XCUIApplication()"
  puts "  setupSnapshot(app)"
  puts "  app.launch()"
  puts ""
  puts "3) Add `snapshot(\"0Launch\")` to wherever you want to create the screenshots".yellow
  puts ""
  puts "More information on GitHub: https://github.com/krausefx/snapshot".green
end