snapshot 0.4.12 → 0.4.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9968201d0d0aa36979286f7795002653e0b919bf
4
- data.tar.gz: 02d096f07cac729ad6d4ded27698d6d8cafbd788
3
+ metadata.gz: d50d9664f7380c82a481684d7a6243278b5634e6
4
+ data.tar.gz: 41f40e3699e231b5e5432821319c036854152fb5
5
5
  SHA512:
6
- metadata.gz: 805dbfb200d6dd9e71994fac0e293a4b008e708d97cdbc7d2b63d1c0e6aa7d39f804f16a2c7c94eb8fd450b8820b5935073c4faa6bed22d539cf4f8a6b6a96e5
7
- data.tar.gz: fca03fb9128b4155be4162b9b6b5531f6e0d88d7466e08fbe79ce78b0e096a6140a9a913295da0bdab919528077cd519589511d6ffaa6121212c93a93364c132
6
+ metadata.gz: 4f8764ab6afc3acb42e6493290ff44e330f8362538f335431831b782733dcd87f1c7baacb042e7899409bf391b50435dcd9ce06a5e6c57556b9188cc8c4a132c
7
+ data.tar.gz: 0c32385f6d29872c0d1aa52f896379f1b766f8aa46445633442f34cb656ef00afb8361b08f14e51794286b97ded20ea6f73411053d96f2b206847da26942b1cd
data/README.md CHANGED
@@ -65,7 +65,7 @@ Get in contact with the developer on Twitter: [@KrauseFx](https://twitter.com/Kr
65
65
 
66
66
  -------
67
67
 
68
- <h5 align="center"><code>snapshot</code> is part of <a href="http://fastlane.tools">fastlane</a>: connect all deployment tools into one streamlined workflow.</h5>
68
+ <h5 align="center"><code>snapshot</code> is part of <a href="https://fastlane.tools">fastlane</a>: connect all deployment tools into one streamlined workflow.</h5>
69
69
 
70
70
 
71
71
 
@@ -73,7 +73,7 @@ Get in contact with the developer on Twitter: [@KrauseFx](https://twitter.com/Kr
73
73
  - Create hundreds of screenshots in multiple languages on all simulators
74
74
  - Configure it once, store the configuration in git
75
75
  - Do something else, while the computer takes the screenshots for you
76
- - Integrated with [`fastlane`](http://fastlane.tools) and [`deliver`](https://github.com/KrauseFx/deliver)
76
+ - Integrated with [`fastlane`](https://fastlane.tools) and [`deliver`](https://github.com/KrauseFx/deliver)
77
77
  - Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to Q&A or the marketing team
78
78
  - ```snapshot``` automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots)
79
79
 
@@ -303,6 +303,8 @@ clear_previous_screenshots
303
303
 
304
304
  ### Completely reset all simulators
305
305
 
306
+ You can run this command in the terminal to delete and re-create all iOS simulators:
307
+
306
308
  snapshot reset_simulators
307
309
 
308
310
  **Warning**: This will delete **all** your simulators and replace by new ones! This is useful, if you run into weird `Instruments` problems when running `snapshot`.
@@ -312,9 +314,9 @@ You can use the environment variable `SNAPSHOT_FORCE_DELETE` to stop asking for
312
314
 
313
315
  # Tips
314
316
 
315
- ## [`fastlane`](http://fastlane.tools) Toolchain
317
+ ## [`fastlane`](https://fastlane.tools) Toolchain
316
318
 
317
- - [`fastlane`](http://fastlane.tools): Connect all deployment tools into one streamlined workflow
319
+ - [`fastlane`](https://fastlane.tools): Connect all deployment tools into one streamlined workflow
318
320
  - [`deliver`](https://github.com/KrauseFx/deliver): Upload screenshots, metadata and your app to the App Store using a single command
319
321
  - [`frameit`](https://github.com/KrauseFx/frameit): Quickly put your screenshots into the right device frames
320
322
  - [`PEM`](https://github.com/KrauseFx/pem): Automatically generate and renew your push notification profiles
data/bin/snapshot CHANGED
@@ -17,7 +17,7 @@ class SnapshotApplication
17
17
  program :version, Snapshot::VERSION
18
18
  program :description, 'CLI for \'Snapshot\' - Automate taking localized screenshots of your iOS app on every device'
19
19
  program :help, 'Author', 'Felix Krause <snapshot@krausefx.com>'
20
- program :help, 'Website', 'http://fastlane.tools'
20
+ program :help, 'Website', 'https://fastlane.tools'
21
21
  program :help, 'GitHub', 'https://github.com/krausefx/snapshot'
22
22
  program :help_formatter, :compact
23
23
 
@@ -1,41 +1,81 @@
1
+ <!DOCTYPE html>
1
2
  <html>
2
3
  <head>
4
+ <title>KrauseFx/snapshot</title>
5
+ <meta charset="UTF-8">
3
6
  <style type="text/css">
4
7
  * {
5
- font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
8
+ font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
6
9
  font-weight: 300;
7
10
  }
8
11
  .language {
9
-
12
+
10
13
  }
11
14
  .deviceName {
12
- padding-top: 20px;
15
+ display: block;
13
16
  font-size: 30px;
17
+ padding-bottom: 24px;
18
+ padding-top: 45px;
14
19
  }
15
20
  .screenshot {
16
21
  cursor: pointer;
17
22
  border: 1px #EEE solid;
23
+ z-index: 0;
18
24
  }
19
25
  td {
20
26
  text-align: center;
21
27
  }
28
+ #overlay {
29
+ position:fixed;
30
+ top:0;
31
+ left:0;
32
+ background:rgba(0,0,0,0.8);
33
+ z-index:5;
34
+ width:100%;
35
+ height:100%;
36
+ display:none;
37
+ cursor: zoom-out;
38
+ text-align: center;
39
+ }
40
+ #imageDisplay {
41
+ height: auto;
42
+ width: auto;
43
+ z-index: 10;
44
+ cursor: pointer;
45
+ }
46
+ #imageInfo {
47
+ background: none repeat scroll 0 0 rgba(0, 0, 0, 0.2);
48
+ border-radius: 5px;
49
+ color: white;
50
+ margin: 20px;
51
+ padding: 10px;
52
+ position: absolute;
53
+ right: 0;
54
+ top: 0;
55
+ width: 250px;
56
+ z-index: -1;
57
+ }
58
+ #imageInfo:hover {
59
+ z-index: 20;
60
+ }
22
61
  </style>
23
62
  </head>
24
63
  <body>
25
64
  <% divide_size_by = 5.0 %>
26
65
  <% max_width = 180 %>
66
+ <% image_counter = 0 %>
27
67
 
28
68
 
29
69
  <% @data.each do |language, content| %>
30
70
  <h1 class="language"><%= language %></h1>
31
- <hr />
71
+ <hr>
32
72
  <table>
33
73
  <% content.each do |device_name, screens| %>
34
- <th colspan="<%= screens.count %>">
35
- <h2 class="deviceName">
36
- <%= device_name %>
37
- </h2>
38
- </th>
74
+ <tr>
75
+ <th colspan="<%= screens.count %>">
76
+ <span class="deviceName"><%= device_name %></span>
77
+ </th>
78
+ </tr>
39
79
  <tr>
40
80
  <% screens.each do |screen_path| %>
41
81
  <% next if screen_path.include?"_framed.png" %>
@@ -44,10 +84,13 @@
44
84
  <% width = ((screen_size[0] / divide_size_by).round rescue 0) %>
45
85
  <% width = [width, max_width].min %>
46
86
  <% style = (width > 0 ? "width: #{width}px;" : '') %>
47
- <a href="<%= screen_path %>" target="_blank">
48
- <img class="screenshot"
49
- src="<%= screen_path %>",
50
- style="<%= style %>" />
87
+ <% image_counter += 1 %>
88
+ <a href="<%= screen_path %>" target="_blank" class="screenshotLink">
89
+ <img class="screenshot"
90
+ src="<%= screen_path %>"
91
+ style="<%= style %>"
92
+ alt="<%= language %> <%= device_name %>"
93
+ data-counter="<%= image_counter %>" />
51
94
  </a>
52
95
  </td>
53
96
  <% end %>
@@ -55,5 +98,108 @@
55
98
  <% end %>
56
99
  </table>
57
100
  <% end %>
101
+ <div id="overlay">
102
+ <img id="imageDisplay" src="" alt="" />
103
+ <div id="imageInfo"></div>
104
+ </div>
105
+ <script type="text/javascript">
106
+ var overlay = document.getElementById('overlay');
107
+ var imageDisplay = document.getElementById('imageDisplay');
108
+ var imageInfo = document.getElementById('imageInfo');
109
+ var screenshotLink = document.getElementsByClassName('screenshotLink');
110
+
111
+ function doClick(el) {
112
+ if (document.createEvent) {
113
+ var evObj = document.createEvent('MouseEvents', true);
114
+ evObj.initMouseEvent("click", false, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
115
+ el.dispatchEvent(evObj);
116
+ } else if (document.createEventObject) { //IE
117
+ var evObj = document.createEventObject();
118
+ el.fireEvent('onclick', evObj);
119
+ }
120
+ }
121
+
122
+ for (index = 0; index < screenshotLink.length; ++index) {
123
+ screenshotLink[index].addEventListener('click', function(e) {
124
+ e.preventDefault();
125
+
126
+ var img = e.target;
127
+ if (e.target.tagName == 'A') {
128
+ img = e.target.children[0];
129
+ }
130
+
131
+ // beautify
132
+ var tmpImg = new Image();
133
+ tmpImg.src = img.src;
134
+ imageDisplay.style.height = 'auto';
135
+ imageDisplay.style.width = 'auto';
136
+ imageDisplay.style.paddingTop = '0px';
137
+ if (window.innerHeight < tmpImg.height) {
138
+ imageDisplay.style.height = document.documentElement.clientHeight+'px';
139
+ } else if (window.innerWidth < tmpImg.width) {
140
+ imageDisplay.style.width = document.documentElement.clientWidth;+'px';
141
+ } else {
142
+ imageDisplay.style.paddingTop = parseInt((window.innerHeight - tmpImg.height) / 2)+'px';
143
+ }
144
+
145
+ imageDisplay.src = img.src;
146
+ imageDisplay.alt = img.alt;
147
+ imageDisplay.dataset.counter = img.dataset.counter;
148
+
149
+ imageInfo.innerHTML = '<h3>'+img.alt+'</h3>';
150
+ imageInfo.innerHTML += img.src.split("/").pop();
151
+ imageInfo.innerHTML += '<br />'+tmpImg.height+'&times;'+tmpImg.width+'px';
152
+
153
+ overlay.style.display = "block";
154
+ });
155
+ }
156
+
157
+ imageDisplay.addEventListener('click', function(e) {
158
+ e.stopPropagation(); // !
159
+
160
+ overlay.style.display = "none";
161
+
162
+ img_counter = parseInt(e.target.dataset.counter) + 1;
163
+ try {
164
+ link = document.body.querySelector('img[data-counter="'+img_counter+'"]').parentNode;
165
+ } catch (e) {
166
+ try {
167
+ link = document.body.querySelector('img[data-counter="0"]').parentNode;
168
+ } catch (e) {
169
+ return false;
170
+ }
171
+ }
172
+ doClick(link);
173
+ });
174
+
175
+ overlay.addEventListener('click', function(e) {
176
+ overlay.style.display = "none";
177
+ })
178
+
179
+ document.onkeypress = function(e) {
180
+ e = e || window.event;
181
+ var charCode = e.keyCode || e.which;
182
+
183
+ switch(charCode) {
184
+ case 27: // Esc
185
+ overlay.style.display = "none";
186
+ break;
187
+ case 34: // right-arrow, Page Down, keypad right, ...
188
+ case 39:
189
+ case 54:
190
+ case 102:
191
+ e.preventDefault();
192
+ doClick(imageDisplay);
193
+ break;
194
+ case 33: // left-arrow, Page Up, keypad right, ...
195
+ case 37:
196
+ case 52:
197
+ case 100:
198
+ e.preventDefault();
199
+ document.getElementById('imageDisplay').dataset.counter -= 2; // hacky
200
+ break;
201
+ }
202
+ };
203
+ </script>
58
204
  </body>
59
- </head>
205
+ </html>
@@ -27,7 +27,6 @@ module Snapshot
27
27
  puts "Creating #{device_type} for iOS version #{ios_version}"
28
28
  command = "xcrun simctl create '#{device_type[0]}' #{device_type[1]} #{ios_version}"
29
29
  command_output = `#{command}`
30
- sleep 0.5
31
30
  end
32
31
  end
33
32
  end
@@ -1,3 +1,3 @@
1
1
  module Snapshot
2
- VERSION = "0.4.12"
2
+ VERSION = "0.4.13"
3
3
  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: 0.4.12
4
+ version: 0.4.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-28 00:00:00.000000000 Z
11
+ date: 2015-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastimage
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: fastlane_core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.2.0
41
41
  - !ruby/object:Gem::Dependency
@@ -151,7 +151,7 @@ files:
151
151
  - lib/snapshot/snapshot_config.rb
152
152
  - lib/snapshot/snapshot_file.rb
153
153
  - lib/snapshot/version.rb
154
- homepage: http://fastlane.tools
154
+ homepage: https://fastlane.tools
155
155
  licenses:
156
156
  - MIT
157
157
  metadata: {}