frameit 2.5.1 → 2.6.0

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: 0386691d3d975aaa1470d94950208b4f086d776b
4
- data.tar.gz: a7ae4164557057c19324728f3a0ba5883e81cdac
3
+ metadata.gz: ca41caa77fe286974535798d0cfd0b7e9d40817f
4
+ data.tar.gz: b3c561df48818d59d872d441a78794d8c18a69a0
5
5
  SHA512:
6
- metadata.gz: 9f2afb9854ac5040fb8fec9ade1a5e073d8e002a02be5aa715638a5f2ad4f69e375cad43b77c74cef24c7da8e24f11c2e8d3e316482055e14e466618f163a6e8
7
- data.tar.gz: afdb2af3b99176e503fedb2910bccd7a477e6900e8b3e2fbaff64d884792002c303025ec40d9f8d65a1bfb82335627fb871a81044d1cea026966ca1c4a029138
6
+ metadata.gz: 3239ebd211e9c2c6bc9037cbd780d338b29dad61a63cd3e4a6b203a354fc73d6549a9ae23d62d93e4db9b88a28ccaac8968cc53abcafd42fded6e64e34578ece
7
+ data.tar.gz: 66b4c0349ae6c2c019ec9981d5593c40a192e1aef344dda7d9b63cd870509ffcdb37abc2f94384d86ab59c1dfb3b26610b315b8da35fbb187336324e95fd4c30
data/README.md CHANGED
@@ -1,24 +1,24 @@
1
1
  <h3 align="center">
2
- <a href="https://github.com/fastlane/fastlane">
3
- <img src="assets/fastlane.png" width="150" />
2
+ <a href="https://github.com/fastlane/fastlane/tree/master/fastlane">
3
+ <img src="../fastlane/assets/fastlane.png" width="150" />
4
4
  <br />
5
5
  fastlane
6
6
  </a>
7
7
  </h3>
8
8
  <p align="center">
9
- <a href="https://github.com/fastlane/deliver">deliver</a> &bull;
10
- <a href="https://github.com/fastlane/snapshot">snapshot</a> &bull;
9
+ <a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> &bull;
10
+ <a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> &bull;
11
11
  <b>frameit</b> &bull;
12
- <a href="https://github.com/fastlane/pem">pem</a> &bull;
13
- <a href="https://github.com/fastlane/sigh">sigh</a> &bull;
14
- <a href="https://github.com/fastlane/produce">produce</a> &bull;
15
- <a href="https://github.com/fastlane/cert">cert</a> &bull;
16
- <a href="https://github.com/fastlane/spaceship">spaceship</a> &bull;
17
- <a href="https://github.com/fastlane/pilot">pilot</a> &bull;
12
+ <a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> &bull;
13
+ <a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> &bull;
14
+ <a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> &bull;
15
+ <a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> &bull;
16
+ <a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> &bull;
17
+ <a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> &bull;
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
- <a href="https://github.com/fastlane/gym">gym</a> &bull;
20
- <a href="https://github.com/fastlane/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/match">match</a>
19
+ <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
+ <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
22
22
  </p>
23
23
  -------
24
24
 
@@ -30,9 +30,9 @@ frameit
30
30
  ============
31
31
 
32
32
  [![Twitter: @KauseFx](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
33
- [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/frameit/blob/master/LICENSE)
33
+ [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/frameit/LICENSE)
34
34
  [![Gem](https://img.shields.io/gem/v/frameit.svg?style=flat)](http://rubygems.org/gems/frameit)
35
- [![Build Status](https://img.shields.io/travis/fastlane/frameit/master.svg?style=flat)](https://travis-ci.org/fastlane/frameit)
35
+ [![Build Status](https://img.shields.io/circleci/project/fastlane/fastlane/master.svg?style=flat)](https://circleci.com/gh/fastlane/fastlane)
36
36
 
37
37
  ###### Quickly put your screenshots into the right device frames
38
38
 
@@ -122,7 +122,7 @@ When using `frameit` without titles on top, the screenshots will have the full r
122
122
 
123
123
  # Titles and Background (optional)
124
124
 
125
- With `frameit` 2.0 you are now able to add a custom background, title and text colors to your screenshots. Optionally you can also set a custom font size.
125
+ With `frameit` 2.0 you are now able to add a custom background, title and text colors to your screenshots.
126
126
 
127
127
  A working example can be found in the [fastlane examples](https://github.com/fastlane/examples/tree/master/MindNode/screenshots) project.
128
128
 
@@ -185,12 +185,12 @@ To define the title and optionally the keyword, put two `.strings` files into th
185
185
 
186
186
  The `keyword.strings` and `title.strings` are standard `.strings` file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles.
187
187
 
188
- **Note:** These `.strings` files **MUST** be utf-16 encoded (UTF-16 LE with BOM). They also must begin with an empty line. If you are having trouble see [issue #49](https://github.com/fastlane/frameit/issues/49)
188
+ **Note:** These `.strings` files **MUST** be utf-16 encoded (UTF-16 LE with BOM). They also must begin with an empty line. If you are having trouble see [issue #1740](https://github.com/fastlane/fastlane/issues/1740)
189
189
 
190
190
 
191
191
  #### Uploading screenshots to iTC
192
192
 
193
- Use [deliver](https://github.com/fastlane/deliver) to upload all screenshots to iTunes Connect completely automatically :rocket:
193
+ Use [deliver](https://github.com/fastlane/fastlane/tree/master/deliver) to upload all screenshots to iTunes Connect completely automatically :rocket:
194
194
 
195
195
  ### Mac
196
196
 
@@ -231,23 +231,23 @@ Check out the [MindNode example project](https://github.com/fastlane/examples/tr
231
231
  ## [`fastlane`](https://fastlane.tools) Toolchain
232
232
 
233
233
  - [`fastlane`](https://fastlane.tools): Connect all deployment tools into one streamlined workflow
234
- - [`deliver`](https://github.com/fastlane/deliver): Upload screenshots, metadata and your app to the App Store
235
- - [`snapshot`](https://github.com/fastlane/snapshot): Automate taking localized screenshots of your iOS app on every device
236
- - [`pem`](https://github.com/fastlane/pem): Automatically generate and renew your push notification profiles
237
- - [`sigh`](https://github.com/fastlane/sigh): Because you would rather spend your time building stuff than fighting provisioning
238
- - [`produce`](https://github.com/fastlane/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
239
- - [`cert`](https://github.com/fastlane/cert): Automatically create and maintain iOS code signing certificates
240
- - [`spaceship`](https://github.com/fastlane/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
241
- - [`pilot`](https://github.com/fastlane/pilot): The best way to manage your TestFlight testers and builds from your terminal
234
+ - [`deliver`](https://github.com/fastlane/fastlane/tree/master/deliver): Upload screenshots, metadata and your app to the App Store
235
+ - [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
236
+ - [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
237
+ - [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
238
+ - [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
239
+ - [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
240
+ - [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
241
+ - [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
242
242
  - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
243
- - [`gym`](https://github.com/fastlane/gym): Building your iOS apps has never been easier
244
- - [`scan`](https://github.com/fastlane/scan): The easiest way to run tests of your iOS and Mac app
245
- - [`match`](https://github.com/fastlane/match): Easily sync your certificates and profiles across your team using git
243
+ - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
244
+ - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
245
+ - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
246
246
 
247
247
  ##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
248
248
 
249
249
  ## Generate localized screenshots
250
- Check out [`snapshot`](https://github.com/fastlane/snapshot) to automatically generate screenshots using ```UI Automation```.
250
+ Check out [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot) to automatically generate screenshots using ```UI Automation```.
251
251
 
252
252
  ## Alternative location to store device_frames
253
253
 
@@ -277,7 +277,7 @@ brew install imagemagick
277
277
  Please submit an issue on GitHub and provide information about your setup
278
278
 
279
279
  # Code of Conduct
280
- Help us keep `frameit` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/code-of-conduct).
280
+ Help us keep `frameit` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
281
281
 
282
282
  # License
283
283
  This project is licensed under the terms of the MIT license. See the LICENSE file.
data/bin/frameit CHANGED
@@ -19,6 +19,7 @@ class FrameItApplication
19
19
  program :help_formatter, :compact
20
20
 
21
21
  global_option('--verbose') { $verbose = true }
22
+ FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options)
22
23
 
23
24
  default_command :black
24
25
 
@@ -27,6 +28,7 @@ class FrameItApplication
27
28
  c.description = "Adds a black frame around all screenshots."
28
29
 
29
30
  c.action do |args, options|
31
+ load_config(options)
30
32
  Frameit::Runner.new.run('.', Frameit::Color::BLACK)
31
33
  end
32
34
  end
@@ -36,6 +38,7 @@ class FrameItApplication
36
38
  c.description = "Adds a silver frame around all screenshots."
37
39
 
38
40
  c.action do |args, options|
41
+ load_config(options)
39
42
  Frameit::Runner.new.run('.', Frameit::Color::SILVER)
40
43
  end
41
44
  end
@@ -53,6 +56,14 @@ class FrameItApplication
53
56
 
54
57
  run!
55
58
  end
59
+
60
+ private
61
+
62
+ def load_config(options)
63
+ o = options.__hash__.dup
64
+ o.delete(:verbose)
65
+ Frameit.config = FastlaneCore::Configuration.create(Frameit::Options.available_options, o)
66
+ end
56
67
  end
57
68
 
58
69
  begin
data/lib/frameit.rb CHANGED
@@ -11,10 +11,15 @@ require 'frameit/template_finder'
11
11
  require 'frameit/strings_parser'
12
12
  require 'frameit/mac_editor'
13
13
  require 'frameit/dependency_checker'
14
+ require 'frameit/options'
14
15
 
15
16
  require 'fastlane_core'
16
17
 
17
18
  module Frameit
19
+ class << self
20
+ attr_accessor :config
21
+ end
22
+
18
23
  Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
19
24
  UI = FastlaneCore::UI
20
25
  end
@@ -9,7 +9,7 @@ module Frameit
9
9
 
10
10
  def setup_frames
11
11
  UI.success "----------------------------------------------------"
12
- UI.success "Looks like you have no device templates installed"
12
+ UI.success "Looks like you'd like to install new device templates"
13
13
  UI.success "The images can not be pre-installed due to licensing"
14
14
  UI.success "Press Enter to get started"
15
15
  UI.success "----------------------------------------------------"
@@ -18,7 +18,7 @@ module Frameit
18
18
  system("open '#{DOWNLOAD_URL}'")
19
19
  UI.success "----------------------------------------------------"
20
20
  UI.success "Download the zip files for the following devices"
21
- UI.success "iPhone 6s, iPhone 6s Plus, iPhone 5s, iPad mini 4 and iPad Pro"
21
+ UI.success "iPhone 6s, iPhone 6s Plus, iPhone SE, iPad mini 4 and iPad Pro"
22
22
  UI.success "You only need to download the devices you want to use"
23
23
  UI.success "Press Enter when you downloaded the zip files"
24
24
  UI.success "----------------------------------------------------"
@@ -64,6 +64,27 @@ module Frameit
64
64
 
65
65
  UI.important "Converting PSD file '#{psd}'"
66
66
  image = MiniMagick::Image.open(psd)
67
+
68
+ if psd =~ /iPhone-SE/
69
+ UI.success "Removing white background 🚫 ⬜️"
70
+
71
+ # The iPhone-SE screenshots from April 2016 have
72
+ # 3 layers, a background, a product, and the 'put your image here' layer
73
+ # imagemagick seems to add an additional layer with no label which this the
74
+ # composite of all three. We want to remove the background and composite layer
75
+ good_layers = image.layers.reject do |layer|
76
+ label = layer.details['Properties']['label']
77
+ label.to_s.length == 0 || label =~ /White B/i
78
+ end
79
+ product_layer = good_layers.shift
80
+
81
+ good_layers.each do |layer|
82
+ product_layer.layers << layer
83
+ end
84
+
85
+ image = product_layer
86
+ end
87
+
67
88
  if image
68
89
  image.format 'png'
69
90
  image.trim
@@ -19,10 +19,17 @@ module Frameit
19
19
  'width' => 530
20
20
  }
21
21
  when size::IOS_40
22
- return {
23
- 'offset' => "+54+197",
24
- 'width' => 544
25
- }
22
+ if Frameit.config[:use_legacy_iphone5s]
23
+ return {
24
+ 'offset' => "+54+197",
25
+ 'width' => 544
26
+ }
27
+ else
28
+ return {
29
+ 'offset' => "+48+178",
30
+ 'width' => 485
31
+ }
32
+ end
26
33
  when size::IOS_35
27
34
  return {
28
35
  'offset' => "+59+260",
@@ -52,10 +59,17 @@ module Frameit
52
59
  'width' => 946
53
60
  }
54
61
  when size::IOS_40
55
- return {
56
- 'offset' => "+201+48",
57
- 'width' => 970
58
- }
62
+ if Frameit.config[:use_legacy_iphone5s]
63
+ return {
64
+ 'offset' => "+201+48",
65
+ 'width' => 970
66
+ }
67
+ else
68
+ return {
69
+ 'offset' => "+177+41",
70
+ 'width' => 859
71
+ }
72
+ end
59
73
  when size::IOS_35
60
74
  return {
61
75
  'offset' => "+258+52",
@@ -0,0 +1,14 @@
1
+ module Frameit
2
+ class Options
3
+ def self.available_options
4
+ @options ||= [
5
+ FastlaneCore::ConfigItem.new(key: :use_legacy_iphone5s,
6
+ env_name: "FRAMEIT_USE_LEGACY_IPHONE_5_S",
7
+ optional: true,
8
+ is_string: false,
9
+ description: "use iPhone 5s instead of iPhone SE frames",
10
+ default_value: false)
11
+ ]
12
+ end
13
+ end
14
+ end
@@ -26,7 +26,7 @@ module Frameit
26
26
  when sizes::IOS_47
27
27
  return 'iPhone-6s'
28
28
  when sizes::IOS_40
29
- return 'iPhone_5s'
29
+ return Frameit.config[:use_legacy_iphone5s] ? 'iPhone_5s' : 'iPhone-SE'
30
30
  when sizes::IOS_35
31
31
  return 'iPhone_4'
32
32
  when sizes::IOS_IPAD
@@ -1,38 +1,84 @@
1
1
  module Frameit
2
2
  # Responsible for finding the correct device
3
3
  class TemplateFinder
4
+
5
+ class FilenameTransform
6
+ def initialize(device_name)
7
+ @device_name = device_name
8
+ end
9
+ end
10
+
11
+ # Example: iPhone_5s_Vert_SpaceGray_sRGB
12
+ class Type1Transform < FilenameTransform
13
+ def transform(color, orientation)
14
+ # Note the * on the end to handle the _sRGB part
15
+ "#{@device_name}_#{orientation}_#{color}*"
16
+ end
17
+ end
18
+
19
+ # Example: iPad-Pro-Space-Gray-vertical.png
20
+ class Type2Transform < FilenameTransform
21
+ def transform(color, orientation)
22
+ fixed_color = color == 'SpaceGray' ? "Space-Gray" : "Silver"
23
+ fixed_orientation = orientation == 'Horz' ? 'horizontal' : 'vertical'
24
+ "#{@device_name}-#{fixed_color}-#{fixed_orientation}"
25
+ end
26
+ end
27
+
28
+ # Example: iPhone-SE-Space-Gray
29
+ # Note that 'vertical' is implied
30
+ class Type3Transform < FilenameTransform
31
+ def transform(color, orientation)
32
+ fixed_color = color == 'SpaceGray' ? "Space-Gray" : "Silver"
33
+ filename = "#{@device_name}-#{fixed_color}"
34
+ if orientation == 'Horz'
35
+ "#{filename}-horizontal"
36
+ else
37
+ filename
38
+ end
39
+ end
40
+ end
41
+
42
+ DEVICE_TO_TRANSFORM_TYPE = {
43
+ 'iPhone-SE' => Type3Transform.new('iPhone-SE'),
44
+ 'iPad-Pro' => Type2Transform.new('iPad-Pro'),
45
+ 'iPad-mini' => Type2Transform.new('iPad-mini'),
46
+ 'iPhone-6s' => Type2Transform.new('iPhone-6s'),
47
+ 'iPhone-6s-Plus' => Type2Transform.new('iPhone-6s-Plus')
48
+ }
49
+
4
50
  # This will detect the screen size and choose the correct template
5
51
  def self.get_template(screenshot)
6
52
  return nil if screenshot.mac?
7
- parts = [
8
- screenshot.device_name,
9
- screenshot.orientation_name,
10
- screenshot.color
11
- ]
12
- joiner = "_"
13
-
14
- if screenshot.device_name.include?('iPad') || screenshot.device_name.include?('6s')
15
- parts = [
16
- screenshot.device_name,
17
- (screenshot.color == 'SpaceGray' ? "Space-Gray" : "Silver"),
18
- (screenshot.orientation_name == "Horz" ? "horizontal" : "vertical")
19
- ]
20
- joiner = "-"
21
- end
53
+
54
+ transformer = DEVICE_TO_TRANSFORM_TYPE[screenshot.device_name]
55
+
56
+ # The "original" pattern is the type 1 transform
57
+ # so if we don't have something more specific, go for that
58
+ transformer ||= Type1Transform.new(screenshot.device_name)
59
+ filename = transformer.transform(screenshot.color, screenshot.orientation_name)
22
60
 
23
61
  templates_path = [ENV['HOME'], FrameConverter::FRAME_PATH].join('/')
24
- templates = Dir["../**/#{parts.join(joiner)}*.{png,jpg}"] # local directory
25
- templates += Dir["#{templates_path}/**/#{parts.join(joiner)}*.{png,jpg}"] # ~/.frameit folder
62
+ templates = Dir["../**/#{filename}.{png,jpg}"] # local directory
63
+ templates += Dir["#{templates_path}/**/#{filename}.{png,jpg}"] # ~/.frameit folder
64
+
65
+ UI.verbose "Looking for #{filename} and found #{templates.count}"
26
66
 
27
67
  if templates.count == 0
28
68
  if screenshot.screen_size == Deliver::AppScreenshot::ScreenSize::IOS_35
29
69
  UI.important "Unfortunately 3.5\" device frames were discontinued. Skipping screen '#{screenshot.path}'"
30
- UI.error "Looked for: '#{parts.join(joiner)}.png'"
70
+ UI.error "Looked for: '#{filename}.png'"
71
+ elsif screenshot.device_name == 'iPhone-SE'
72
+ UI.error "By default frameit uses the iPhone SE for screenshots"
73
+ UI.error "Unable to find a frame #{filename}.png"
74
+ UI.error "You can download iPhone-SE templates from '#{FrameConverter::DOWNLOAD_URL}'"
75
+ UI.error "and store them in '#{templates_path}'"
76
+ UI.error "\nIf you'd prefer to use the old iPhone 5s templates, add the option --use_legacy_iphone5s"
31
77
  else
32
78
  UI.error "Could not find a valid template for screenshot '#{screenshot.path}'"
33
79
  UI.error "You can download new templates from '#{FrameConverter::DOWNLOAD_URL}'"
34
80
  UI.error "and store them in '#{templates_path}'"
35
- UI.error "Missing file: '#{parts.join(joiner)}.png'"
81
+ UI.error "Missing file: '#{filename}.png'"
36
82
  end
37
83
  return nil
38
84
  else
@@ -1,3 +1,3 @@
1
1
  module Frameit
2
- VERSION = "2.5.1"
2
+ VERSION = "2.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frameit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.1
4
+ version: 2.6.0
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-03-03 00:00:00.000000000 Z
11
+ date: 2016-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane_core
@@ -114,6 +114,20 @@ dependencies:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
116
  version: 3.1.0
117
+ - !ruby/object:Gem::Dependency
118
+ name: rspec_junit_formatter
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 0.2.3
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 0.2.3
117
131
  - !ruby/object:Gem::Dependency
118
132
  name: pry
119
133
  requirement: !ruby/object:Gem::Requirement
@@ -190,14 +204,14 @@ dependencies:
190
204
  requirements:
191
205
  - - "~>"
192
206
  - !ruby/object:Gem::Version
193
- version: 0.35.1
207
+ version: 0.38.0
194
208
  type: :development
195
209
  prerelease: false
196
210
  version_requirements: !ruby/object:Gem::Requirement
197
211
  requirements:
198
212
  - - "~>"
199
213
  - !ruby/object:Gem::Version
200
- version: 0.35.1
214
+ version: 0.38.0
201
215
  description: Quickly put your screenshots into the right device frames
202
216
  email:
203
217
  - frameit@krausefx.com
@@ -218,6 +232,7 @@ files:
218
232
  - lib/frameit/frame_converter.rb
219
233
  - lib/frameit/mac_editor.rb
220
234
  - lib/frameit/offsets.rb
235
+ - lib/frameit/options.rb
221
236
  - lib/frameit/runner.rb
222
237
  - lib/frameit/screenshot.rb
223
238
  - lib/frameit/strings_parser.rb
@@ -243,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
258
  version: '0'
244
259
  requirements: []
245
260
  rubyforge_project:
246
- rubygems_version: 2.4.6
261
+ rubygems_version: 2.6.2
247
262
  signing_key:
248
263
  specification_version: 4
249
264
  summary: Quickly put your screenshots into the right device frames