snapshot 1.12.2 → 1.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f66739b39604b0850729cdbc3ec8b7c285b8dc0d
4
- data.tar.gz: a724757422b90bd6b7c438d2550322d0c19422fc
3
+ metadata.gz: 3a2f6706dde254c8ec5cf7470a1539cb7cbdc83f
4
+ data.tar.gz: 41ed453012760f5795b1f54262d286d1e3e38271
5
5
  SHA512:
6
- metadata.gz: 6ea43999e4268e07952c39b1788e35ff0609d150d10e6ef71eda5b556aea4368f51270039caf0928d596f532b1a575fa298a168744688e8252b6039aa9887f5c
7
- data.tar.gz: 87eb051ee9eee593b5e264426c7caa810bc3077cc7909a92f245b53f65a8741701dea62037bfbb7a15addff8d556cd146d1b22b4b93e2481985c3cfda35a141c
6
+ metadata.gz: 8f5d96bed914afa3ce3c54ea5afac1b6f16ebf3ca7657804721495b735fb7f4eee8ad7b105ed69ddcfb875fc7bfb82f7212b39f23643908297b0e070713b5bdc
7
+ data.tar.gz: 434a2585a607f638397bcb422e3601e26425e8448e5004933c13b46e0ded3726a025ca5bccfa876cd13448f7a85f0c2deece84b694ce8f1ce7c30a9c18f44315
@@ -1,113 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
-
3
2
  $:.push File.expand_path("../../lib", __FILE__)
4
3
 
5
4
  require 'snapshot'
6
- require 'commander'
7
-
8
- HighLine.track_eof = false
9
-
10
- class SnapshotApplication
11
- include Commander::Methods
12
-
13
- # rubocop:disable Metrics/MethodLength
14
- def run
15
- program :version, Snapshot::VERSION
16
- program :description, 'CLI for \'snapshot\' - Automate taking localized screenshots of your iOS app on every device'
17
- program :help, 'Author', 'Felix Krause <snapshot@krausefx.com>'
18
- program :help, 'Website', 'https://fastlane.tools'
19
- program :help, 'GitHub', 'https://github.com/fastlane/snapshot'
20
- program :help_formatter, :compact
21
-
22
- global_option('--verbose', 'Shows a more verbose output') { $verbose = true }
23
-
24
- always_trace!
25
-
26
- FastlaneCore::CommanderGenerator.new.generate(Snapshot::Options.available_options)
27
-
28
- command :run do |c|
29
- c.syntax = 'snapshot'
30
- c.description = 'Take new screenshots based on the Snapfile.'
31
-
32
- c.action do |args, options|
33
- load_config(options)
34
-
35
- Snapshot::DependencyChecker.check_simulators
36
- Snapshot::Runner.new.work
37
- end
38
- end
39
-
40
- command :init do |c|
41
- c.syntax = 'snapshot init'
42
- c.description = "Creates a new Snapfile in the current directory"
43
-
44
- c.action do |args, options|
45
- require 'snapshot/setup'
46
- path = (Snapshot::Helper.fastlane_enabled? ? './fastlane' : '.')
47
- Snapshot::Setup.create(path)
48
- end
49
- end
50
-
51
- command :update do |c|
52
- c.syntax = 'snapshot update'
53
- c.description = "Updates your SnapshotHelper.swift to the latest version"
54
-
55
- c.action do |args, options|
56
- require 'snapshot/update'
57
- Snapshot::Update.new.update
58
- end
59
- end
60
-
61
- command :reset_simulators do |c|
62
- c.syntax = 'snapshot reset_simulators'
63
- c.description = "This will remove all your existing simulators and re-create new ones"
64
- c.option '-i', '--ios String', String, 'The comma separated list of iOS Versions you want to use'
65
-
66
- c.action do |args, options|
67
- options.default ios_version: Snapshot::LatestIosVersion.version
68
- versions = options.ios_version.split(',') if options.ios_version
69
- require 'snapshot/reset_simulators'
70
-
71
- Snapshot::ResetSimulators.clear_everything!(versions)
72
- end
73
- end
74
-
75
- command :clear_derived_data do |c|
76
- c.syntax = 'snapshot clear_derived_data -f path'
77
- c.description = "Clear the directory where build products and other derived data will go"
78
-
79
- c.action do |args, options|
80
- load_config(options)
81
- derived_data_path = Snapshot.config[:derived_data_path]
82
-
83
- if !derived_data_path
84
- Snapshot::UI.user_error! "No derived_data_path"
85
- elsif !Dir.exist?(derived_data_path)
86
- Snapshot::UI.important "Path #{derived_data_path} does not exist"
87
- else
88
- FileUtils.rm_rf(derived_data_path)
89
- Snapshot::UI.success "Removed #{derived_data_path}"
90
- end
91
- end
92
- end
93
-
94
- default_command :run
95
-
96
- run!
97
- end
98
-
99
- private
100
-
101
- def load_config(options)
102
- o = options.__hash__.dup
103
- o.delete(:verbose)
104
- Snapshot.config = FastlaneCore::Configuration.create(Snapshot::Options.available_options, o)
105
- end
106
- end
107
-
108
- begin
109
- FastlaneCore::UpdateChecker.start_looking_for_update('snapshot')
110
- SnapshotApplication.new.run
111
- ensure
112
- FastlaneCore::UpdateChecker.show_update_status('snapshot', Snapshot::VERSION)
113
- end
5
+ require 'snapshot/commands_generator'
6
+ Snapshot::CommandsGenerator.start
@@ -0,0 +1,110 @@
1
+ require 'commander'
2
+
3
+ HighLine.track_eof = false
4
+
5
+ module Snapshot
6
+ class CommandsGenerator
7
+ include Commander::Methods
8
+
9
+ def self.start
10
+ FastlaneCore::UpdateChecker.start_looking_for_update('snapshot')
11
+ self.new.run
12
+ ensure
13
+ FastlaneCore::UpdateChecker.show_update_status('snapshot', Snapshot::VERSION)
14
+ end
15
+
16
+ # rubocop:disable Metrics/MethodLength
17
+ def run
18
+ program :version, Snapshot::VERSION
19
+ program :description, 'CLI for \'snapshot\' - Automate taking localized screenshots of your iOS app on every device'
20
+ program :help, 'Author', 'Felix Krause <snapshot@krausefx.com>'
21
+ program :help, 'Website', 'https://fastlane.tools'
22
+ program :help, 'GitHub', 'https://github.com/fastlane/snapshot'
23
+ program :help_formatter, :compact
24
+
25
+ global_option('--verbose', 'Shows a more verbose output') { $verbose = true }
26
+
27
+ always_trace!
28
+
29
+ FastlaneCore::CommanderGenerator.new.generate(Snapshot::Options.available_options)
30
+
31
+ command :run do |c|
32
+ c.syntax = 'snapshot'
33
+ c.description = 'Take new screenshots based on the Snapfile.'
34
+
35
+ c.action do |args, options|
36
+ load_config(options)
37
+
38
+ Snapshot::DependencyChecker.check_simulators
39
+ Snapshot::Runner.new.work
40
+ end
41
+ end
42
+
43
+ command :init do |c|
44
+ c.syntax = 'snapshot init'
45
+ c.description = "Creates a new Snapfile in the current directory"
46
+
47
+ c.action do |args, options|
48
+ require 'snapshot/setup'
49
+ path = (Snapshot::Helper.fastlane_enabled? ? './fastlane' : '.')
50
+ Snapshot::Setup.create(path)
51
+ end
52
+ end
53
+
54
+ command :update do |c|
55
+ c.syntax = 'snapshot update'
56
+ c.description = "Updates your SnapshotHelper.swift to the latest version"
57
+
58
+ c.action do |args, options|
59
+ require 'snapshot/update'
60
+ Snapshot::Update.new.update
61
+ end
62
+ end
63
+
64
+ command :reset_simulators do |c|
65
+ c.syntax = 'snapshot reset_simulators'
66
+ c.description = "This will remove all your existing simulators and re-create new ones"
67
+ c.option '-i', '--ios String', String, 'The comma separated list of iOS Versions you want to use'
68
+
69
+ c.action do |args, options|
70
+ options.default ios_version: Snapshot::LatestIosVersion.version
71
+ versions = options.ios_version.split(',') if options.ios_version
72
+ require 'snapshot/reset_simulators'
73
+
74
+ Snapshot::ResetSimulators.clear_everything!(versions)
75
+ end
76
+ end
77
+
78
+ command :clear_derived_data do |c|
79
+ c.syntax = 'snapshot clear_derived_data -f path'
80
+ c.description = "Clear the directory where build products and other derived data will go"
81
+
82
+ c.action do |args, options|
83
+ load_config(options)
84
+ derived_data_path = Snapshot.config[:derived_data_path]
85
+
86
+ if !derived_data_path
87
+ Snapshot::UI.user_error! "No derived_data_path"
88
+ elsif !Dir.exist?(derived_data_path)
89
+ Snapshot::UI.important "Path #{derived_data_path} does not exist"
90
+ else
91
+ FileUtils.rm_rf(derived_data_path)
92
+ Snapshot::UI.success "Removed #{derived_data_path}"
93
+ end
94
+ end
95
+ end
96
+
97
+ default_command :run
98
+
99
+ run!
100
+ end
101
+
102
+ private
103
+
104
+ def load_config(options)
105
+ o = options.__hash__.dup
106
+ o.delete(:verbose)
107
+ Snapshot.config = FastlaneCore::Configuration.create(Snapshot::Options.available_options, o)
108
+ end
109
+ end
110
+ end
@@ -35,16 +35,7 @@ module Snapshot
35
35
  end
36
36
  end
37
37
 
38
- phones = []
39
- watches = []
40
- devices.each do |device|
41
- _, name, id = device
42
- phones << id if name.start_with?('iPhone 6')
43
- watches << id if name.end_with?('mm')
44
- end
45
-
46
- puts "Creating device pair of #{phones.last} and #{watches.last}"
47
- `xcrun simctl pair #{watches.last} #{phones.last}`
38
+ make_phone_watch_pair
48
39
  end
49
40
 
50
41
  def self.create(device_type, os_versions, os_name = 'iOS')
@@ -59,7 +50,7 @@ module Snapshot
59
50
  end
60
51
 
61
52
  def self.devices
62
- all_devices = `xcrun simctl list devices`
53
+ all_devices = Helper.backticks('xcrun simctl list devices', print: $verbose)
63
54
  # == Devices ==
64
55
  # -- iOS 9.0 --
65
56
  # iPhone 4s (32246EBC-33B0-47F9-B7BB-5C23C550DF29) (Shutdown)
@@ -69,10 +60,29 @@ module Snapshot
69
60
  # iPhone 4s (FE9D6F85-1C51-4FE6-8597-FCAB5286B869) (Shutdown) (unavailable, runtime profile not found)
70
61
 
71
62
  result = all_devices.lines.map do |line|
72
- (line.match(/\s+([\w\s]+)\s\(([\w\-]+)\)/) || []).to_a
63
+ (line.match(/\s+(.+?)\s\(([\w\-]+)\).*/) || []).to_a
73
64
  end
74
65
 
75
66
  result.select { |parsed| parsed.length == 3 } # we don't care about those headers
76
67
  end
68
+
69
+ def self.make_phone_watch_pair
70
+ phones = []
71
+ watches = []
72
+ devices.each do |device|
73
+ full_line, name, id = device
74
+ phones << id if name.start_with?('iPhone 6') && device_line_usable?(full_line)
75
+ watches << id if name.end_with?('mm') && device_line_usable?(full_line)
76
+ end
77
+
78
+ if phones.any? && watches.any?
79
+ puts "Creating device pair of #{phones.last} and #{watches.last}"
80
+ Helper.backticks("xcrun simctl pair #{watches.last} #{phones.last}", print: $verbose)
81
+ end
82
+ end
83
+
84
+ def self.device_line_usable?(line)
85
+ !line.include?("unavailable")
86
+ end
77
87
  end
78
88
  end
@@ -1,4 +1,4 @@
1
1
  module Snapshot
2
- VERSION = "1.12.2".freeze
2
+ VERSION = "1.12.3".freeze
3
3
  DESCRIPTION = "Automate taking localized screenshots of your iOS app on every device"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snapshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.2
4
+ version: 1.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-06 00:00:00.000000000 Z
11
+ date: 2016-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastimage
@@ -227,6 +227,7 @@ files:
227
227
  - lib/assets/SnapshotHelper.swift
228
228
  - lib/snapshot.rb
229
229
  - lib/snapshot/collector.rb
230
+ - lib/snapshot/commands_generator.rb
230
231
  - lib/snapshot/dependency_checker.rb
231
232
  - lib/snapshot/detect_values.rb
232
233
  - lib/snapshot/error_handler.rb