Class: Scan::DetectValues

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

Overview

This class detects all kinds of default values

Class Method Summary collapse

Class Method Details

.default_deviceObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/scan/detect_values.rb', line 25

def self.default_device
  config = Scan.config

  if config[:device] # make sure it actually exists

    device = config[:device].to_s.strip.tr('()', '') # Remove parenthesis

    found = FastlaneCore::Simulator.all.find { |d| (d.name + " " + d.ios_version).include? device }

    if found
      Scan.device = found
      return
    else
      Helper.log.error "Couldn't find simulator '#{config[:device]}' - falling back to default simulator".red
    end
  end

  # An iPhone 5s is reasonable small and useful for tests
  found = FastlaneCore::Simulator.all.find { |d| d.name == "iPhone 5s" }
  found ||= FastlaneCore::Simulator.all.first # anything is better than nothing

  Scan.device = found

  raise "No simulators found".red unless Scan.device
end

.detect_destinationObject

Is it an iOS device or a Mac?



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/scan/detect_values.rb', line 52

def self.detect_destination
  if Scan.config[:destination]
    Helper.log.info "It's not recommended to set the `destination` value directly".yellow
    Helper.log.info "Instead use the other options available in `scan --help`".yellow
    Helper.log.info "Using your value '#{Scan.config[:destination]}' for now".yellow
    Helper.log.info "because I trust you know what you're doing...".yellow
    return
  end

  # building up the destination now
  if Scan.project.ios?
    Scan.config[:destination] = "platform=iOS Simulator,id=#{Scan.device.udid}"
  else
    Scan.config[:destination] = "platform=OS X"
  end
end

.set_additional_default_valuesObject

This is needed as these are more complex default values Returns the finished config object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/scan/detect_values.rb', line 6

def self.set_additional_default_values
  config = Scan.config

  FastlaneCore::Project.detect_projects(config)
  Scan.project = FastlaneCore::Project.new(config)

  # Go into the project's folder
  Dir.chdir(File.expand_path("..", Scan.project.path)) do
    config.load_configuration_file(Scan.scanfile_name)
  end

  Scan.project.select_scheme

  default_device if Scan.project.ios?
  detect_destination

  return config
end