fastlane-plugin-appicon 0.6.0 → 0.7.0

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: c0d2778c40b10ae4ddb7fd9381c2a0a6513b2c77
4
- data.tar.gz: d204776ca0b0f21920ce023a9fe6dd7c87cf1799
3
+ metadata.gz: e9ea554d75a2c7d5d1d2dce585ba23d52b166756
4
+ data.tar.gz: 6e8971f28291224730c19ea9d460a4257e15f5b0
5
5
  SHA512:
6
- metadata.gz: fc491962258e317f0077a4e52a0bbdc99065ebaa88a69cc1d24f44893692c430251abd50464b447f2c9d5ad86c19678fbb01ab3b2dc9ad77053ac21e364ad595
7
- data.tar.gz: 5a1a8f58b3547ce3dbb53a9fe1d9b575b6c2f48c7539fcb797a906e0b7f995189a4f00936b20b4f8c5413cfaa05611a7ed15619496db5b0366a1b233f3af0ccb
6
+ metadata.gz: 15f8271515484214a574753a08611d21c5c11ce4554abd7276768bb29894039453945eba33e7232b97a3a3ef603bf37392226b8ebec2ac23f7847b729a1f1d4e
7
+ data.tar.gz: 1cb9392d6e07cd8652666094bbe9023f54e0ca7351413555397e39a8720b5cc920e72f8434e116a2ba87d227ab81c7727a6e533c9db04f5656a292ac15b41da0
@@ -4,7 +4,7 @@ module Fastlane
4
4
  module Appicon
5
5
  # Return all .rb files inside the "actions" directory
6
6
  def self.all_classes
7
- Dir[File.expand_path('**/{actions}/*.rb', File.dirname(__FILE__))]
7
+ Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
8
8
  end
9
9
  end
10
10
  end
@@ -22,25 +22,22 @@ module Fastlane
22
22
  require 'mini_magick'
23
23
  image = MiniMagick::Image.open(fname)
24
24
 
25
- UI.user_error!("Minimum width of input image should be 512") if image.width < 512
26
- UI.user_error!("Minimum height of input image should be 512") if image.height < 512
27
- UI.user_error!("Input image should be square") if image.width != image.height
25
+ Helper::AppiconHelper.check_input_image_size(image, 512)
28
26
 
29
- params[:appicon_devices].each do |device|
30
- self.needed_icons[device].each do |scale, sizes|
31
- sizes.each do |size|
32
- width, height = size.split('x').map { |v| v.to_f }
27
+ # Convert image to png
28
+ image.format 'png'
33
29
 
34
- basepath = Pathname.new("#{params[:appicon_path]}-#{scale}")
35
- FileUtils.mkdir_p(basepath)
36
- filename = "#{params[:appicon_filename]}.png"
30
+ icons = Helper::AppiconHelper.get_needed_icons(params[:appicon_devices], self.needed_icons, true)
31
+ icons.each do |icon|
32
+ width = icon['width']
33
+ height = icon['height']
37
34
 
38
- image = MiniMagick::Image.open(fname)
39
- image.format 'png'
40
- image.resize "#{width}x#{height}"
41
- image.write basepath + filename
42
- end
43
- end
35
+ basepath = Pathname.new("#{params[:appicon_path]}-#{icon['scale']}")
36
+ FileUtils.mkdir_p(basepath)
37
+ filename = "#{params[:appicon_filename]}.png"
38
+
39
+ image.resize "#{width}x#{height}"
40
+ image.write basepath + filename
44
41
  end
45
42
 
46
43
  UI.success("Successfully stored launcher icons at '#{params[:appicon_path]}'")
@@ -22,33 +22,32 @@ module Fastlane
22
22
  require 'mini_magick'
23
23
  image = MiniMagick::Image.open(fname)
24
24
 
25
- UI.user_error!("Minimum width of input image should be 1024") if image.width < 1024
26
- UI.user_error!("Minimum height of input image should be 1024") if image.height < 1024
27
- UI.user_error!("Input image should be square") if image.width != image.height
25
+ Helper::AppiconHelper.check_input_image_size(image, 1024)
28
26
 
27
+ # Convert image to png
28
+ image.format 'png'
29
+
30
+ # Create the base path
29
31
  FileUtils.mkdir_p(basepath)
30
32
 
31
33
  images = []
32
34
 
33
- params[:appicon_devices].each do |device|
34
- self.needed_icons[device].each do |scale, sizes|
35
- sizes.each do |size|
36
- width, height = size.split('x').map { |v| v.to_f * scale.to_i }
37
- filename = "#{basename}-#{width.to_i}x#{height.to_i}.png"
35
+ icons = Helper::AppiconHelper.get_needed_icons(params[:appicon_devices], self.needed_icons, false)
36
+ icons.each do |icon|
37
+ width = icon['width']
38
+ height = icon['height']
39
+ filename = "#{basename}-#{width.to_i}x#{height.to_i}.png"
38
40
 
39
- image = MiniMagick::Image.open(fname)
40
- image.format 'png'
41
- image.resize "#{width}x#{height}"
42
- image.write basepath + filename
41
+ # downsize icon
42
+ image.resize "#{width}x#{height}"
43
+ image.write basepath + filename
43
44
 
44
- images << {
45
- 'size' => size,
46
- 'idiom' => device,
47
- 'filename' => filename,
48
- 'scale' => scale
49
- }
50
- end
51
- end
45
+ images << {
46
+ 'size' => icon['size'],
47
+ 'idiom' => icon['device'],
48
+ 'filename' => filename,
49
+ 'scale' => icon['scale']
50
+ }
52
51
  end
53
52
 
54
53
  contents = {
@@ -0,0 +1,35 @@
1
+ module Fastlane
2
+ module Helper
3
+ class AppiconHelper
4
+ def self.check_input_image_size(image, size)
5
+ UI.user_error!("Minimum width of input image should be #{size}") if image.width < size
6
+ UI.user_error!("Minimum height of input image should be #{size}") if image.height < size
7
+ UI.user_error!("Input image should be square") if image.width != image.height
8
+ end
9
+ def self.get_needed_icons(devices, needed_icons, is_android = false)
10
+ icons = []
11
+ devices.each do |device|
12
+ needed_icons[device].each do |scale, sizes|
13
+ sizes.each do |size|
14
+ if is_android
15
+ width, height = size.split('x').map { |v| v.to_f }
16
+ else
17
+ width, height = size.split('x').map { |v| v.to_f * scale.to_i }
18
+ end
19
+
20
+ icons << {
21
+ 'width' => width,
22
+ 'height' => height,
23
+ 'size' => size,
24
+ 'device' => device,
25
+ 'scale' => scale
26
+ }
27
+ end
28
+ end
29
+ end
30
+ # Sort from the largest to the smallest needed icon
31
+ icons = icons.sort_by {|value| value['width']} .reverse
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Appicon
3
- VERSION = "0.6.0"
3
+ VERSION = "0.7.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-appicon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Bügling
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-09 00:00:00.000000000 Z
11
+ date: 2017-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mini_magick
@@ -133,6 +133,7 @@ files:
133
133
  - lib/fastlane/plugin/appicon.rb
134
134
  - lib/fastlane/plugin/appicon/actions/android_appicon_action.rb
135
135
  - lib/fastlane/plugin/appicon/actions/appicon_action.rb
136
+ - lib/fastlane/plugin/appicon/helper/appicon_helper.rb
136
137
  - lib/fastlane/plugin/appicon/version.rb
137
138
  homepage: https://github.com/neonichu/fastlane-plugin-appicon
138
139
  licenses:
@@ -154,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
155
  version: '0'
155
156
  requirements: []
156
157
  rubyforge_project:
157
- rubygems_version: 2.6.10
158
+ rubygems_version: 2.6.8
158
159
  signing_key:
159
160
  specification_version: 4
160
161
  summary: Generate required icon sizes and iconset from a master application icon.