badge 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -10
- data/assets/alpha_badge_dark.png +0 -0
- data/assets/alpha_badge_light.png +0 -0
- data/bin/badge +4 -1
- data/lib/badge/base.rb +15 -3
- data/lib/badge/runner.rb +26 -8
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5471e4b0fee8baf9b8e99c1e891044e33433f50f
|
4
|
+
data.tar.gz: 11de942104fe046d5b25e684ba5eb01770cef749
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef726a36b21c52e2559e78193d19bf9253e7fa1fda9d64cc6428a5d12141044560edfc800bb1121a9cd1ae3e8240a6f9863807a05ecbd050f839671522c0654c
|
7
|
+
data.tar.gz: 3688b3a0572c3724fd697391a63a13ac37b27f76372b01622e83110f4b4877d0076f2fd8e3e78830f44e80d740da492f4c841ecefcfbca31ace691a997ea35d4
|
data/README.md
CHANGED
@@ -14,19 +14,23 @@ It's built to easily integrate with [fastlane](https://github.com/fastlane/fastl
|
|
14
14
|
|
15
15
|
![assets/icon175x175.png](assets/icon175x175.png?raw=1) ![assets/icon175x175_fitrack.png](assets/icon175x175_fitrack.png?raw=1)
|
16
16
|
|
17
|
-
|
17
|
+
badge
|
18
18
|
|
19
19
|
![assets/icon175x175_light_badged.png](assets/icon175x175_light_badged.png?raw=1) ![assets/icon175x175_fitrack_light_badged.png](assets/icon175x175_fitrack_light_badged.png?raw=1)
|
20
20
|
|
21
|
-
|
21
|
+
badge --dark
|
22
22
|
|
23
23
|
![assets/icon175x175_dark_badged.png](assets/icon175x175_dark_badged.png?raw=1) ![assets/icon175x175_fitrack_dark_badged.png](assets/icon175x175_fitrack_dark_badged.png?raw=1)
|
24
24
|
|
25
|
-
|
25
|
+
badge --alpha
|
26
|
+
|
27
|
+
![assets/icon175x175_alpha_light_badged.png](assets/icon175x175_alpha_light_badged.png?raw=1) ![assets/icon175x175_fitrack_alpha_light_badged.png](assets/icon175x175_fitrack_alpha_light_badged.png?raw=1)
|
28
|
+
|
29
|
+
badge --shield="1.2-2031-orange" --no_badge
|
26
30
|
|
27
31
|
![assets/icon175x175_shield_1.2-2031-orange.png](assets/icon175x175_shield_1.2-2031-orange.png?raw=1) ![assets/icon175x175_fitrack_shield_1.2-2031-orange.png](assets/icon175x175_fitrack_shield_1.2-2031-orange.png?raw=1)
|
28
32
|
|
29
|
-
|
33
|
+
badge --shield="Version-0.0.3-blue" --dark
|
30
34
|
|
31
35
|
![assets/icon175x175_shield_Version-0.0.3-blue.png](assets/icon175x175_shield_Version-0.0.3-blue.png?raw=1) ![assets/icon175x175_fitrack_shield_Version-0.0.3-blue.png](assets/icon175x175_fitrack_shield_Version-0.0.3-blue.png?raw=1)
|
32
36
|
|
@@ -45,7 +49,7 @@ Call ```badge``` in your iOS projects root folder
|
|
45
49
|
It will search all subfolders for your asset catalog app icon set and add the badge to the icon.
|
46
50
|
*Be careful, it actually overwrites the icon files because this gem is meant to be used in and automated build environment.*
|
47
51
|
|
48
|
-
Here is the dark option:
|
52
|
+
Here is the dark option (also available in combination with ```--alpha```):
|
49
53
|
|
50
54
|
badge --dark
|
51
55
|
|
@@ -65,11 +69,11 @@ Add ```--no_badge``` as an option to hide the beta badge completely if you just
|
|
65
69
|
lane :appstore do
|
66
70
|
increment_build_number
|
67
71
|
cocoapods
|
68
|
-
|
69
|
-
|
70
|
-
#badge(
|
71
|
-
#badge(custom: "/Users/HazA/Desktop/badge.png")
|
72
|
-
#badge(shield: "Version-0.0.3-blue", no_badge: true)
|
72
|
+
|
73
|
+
badge(dark: true) #or
|
74
|
+
#badge(alpha: true) #or
|
75
|
+
#badge(custom: "/Users/HazA/Desktop/badge.png") #or
|
76
|
+
#badge(shield: "Version-0.0.3-blue", no_badge: true)
|
73
77
|
|
74
78
|
xctool
|
75
79
|
snapshot
|
Binary file
|
Binary file
|
data/bin/badge
CHANGED
@@ -18,6 +18,8 @@ class BadgeApplication
|
|
18
18
|
program :help, 'GitHub', 'https://github.com/HazAT/badge'
|
19
19
|
program :help_formatter, :compact
|
20
20
|
|
21
|
+
global_option('--verbose', 'Shows a more verbose output') { $verbose = true }
|
22
|
+
|
21
23
|
always_trace!
|
22
24
|
|
23
25
|
default_command :existing_project
|
@@ -26,12 +28,13 @@ class BadgeApplication
|
|
26
28
|
c.syntax = 'badge'
|
27
29
|
c.description = "adds a beta badge to your app icon"
|
28
30
|
c.option '--dark', 'adds a dark badge instead of the white'
|
31
|
+
c.option '--alpha', 'uses the word alpha instead of beta'
|
29
32
|
c.option '--custom STRING', String, 'overlay a custom image on your icon'
|
30
33
|
c.option '--no_badge', 'removes the beta badge'
|
31
34
|
c.option '--shield STRING', String, 'overlay a shield from shield.io on your icon, eg: Version-1.2-green'
|
32
35
|
|
33
36
|
c.action do |args, options|
|
34
|
-
Badge::Runner.new.run('.', options.dark, options.custom, options.no_badge, options.shield)
|
37
|
+
Badge::Runner.new.run('.', options.dark, options.custom, options.no_badge, options.shield, options.alpha)
|
35
38
|
end
|
36
39
|
end
|
37
40
|
|
data/lib/badge/base.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Badge
|
2
2
|
|
3
|
-
VERSION = "0.0.
|
3
|
+
VERSION = "0.0.5"
|
4
4
|
DESCRIPTION = "Add a badge overlay to your app icon"
|
5
5
|
|
6
6
|
def self.root
|
@@ -11,14 +11,22 @@ module Badge
|
|
11
11
|
File.join root, 'assets'
|
12
12
|
end
|
13
13
|
|
14
|
-
def self.
|
14
|
+
def self.beta_light_badge
|
15
15
|
File.join assets, 'beta_badge_light.png'
|
16
16
|
end
|
17
17
|
|
18
|
-
def self.
|
18
|
+
def self.beta_dark_badge
|
19
19
|
File.join assets, 'beta_badge_dark.png'
|
20
20
|
end
|
21
21
|
|
22
|
+
def self.alpha_light_badge
|
23
|
+
File.join assets, 'alpha_badge_light.png'
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.alpha_dark_badge
|
27
|
+
File.join assets, 'alpha_badge_dark.png'
|
28
|
+
end
|
29
|
+
|
22
30
|
def self.shield_base_url
|
23
31
|
'https://img.shields.io'
|
24
32
|
end
|
@@ -27,4 +35,8 @@ module Badge
|
|
27
35
|
'/badge/'
|
28
36
|
end
|
29
37
|
|
38
|
+
def self.shield_io_timeout
|
39
|
+
10
|
40
|
+
end
|
41
|
+
|
30
42
|
end
|
data/lib/badge/runner.rb
CHANGED
@@ -1,16 +1,26 @@
|
|
1
1
|
require 'fastimage'
|
2
|
+
require 'timeout'
|
2
3
|
require 'mini_magick'
|
3
4
|
|
4
5
|
module Badge
|
5
6
|
class Runner
|
6
7
|
|
7
|
-
def run(path, dark_badge, custom_badge, no_badge, shield_string)
|
8
|
+
def run(path, dark_badge, custom_badge, no_badge, shield_string, alpha_badge)
|
8
9
|
app_icons = Dir.glob("#{path}/**/*.appiconset/*.{png,PNG}")
|
9
10
|
|
11
|
+
Helper.log.info "Verbose active...".blue unless not $verbose
|
12
|
+
|
10
13
|
if app_icons.count > 0
|
11
14
|
Helper.log.info "Start adding badges...".green
|
12
15
|
|
13
|
-
shield =
|
16
|
+
shield = nil
|
17
|
+
begin
|
18
|
+
Timeout.timeout(Badge.shield_io_timeout) do
|
19
|
+
shield = load_shield(shield_string) unless not shield_string
|
20
|
+
end
|
21
|
+
rescue Timeout::Error
|
22
|
+
Helper.log.error "Error loading image from shield.io timeout reached. Skipping Shield. Use --verbose for more info".red
|
23
|
+
end
|
14
24
|
|
15
25
|
app_icons.each do |full_path|
|
16
26
|
Helper.log.info "'#{full_path}'"
|
@@ -18,9 +28,9 @@ module Badge
|
|
18
28
|
icon = MiniMagick::Image.new(full_path)
|
19
29
|
|
20
30
|
result = MiniMagick::Image.new(full_path)
|
21
|
-
result =
|
31
|
+
result = add_badge(custom_badge, dark_badge, icon, alpha_badge) unless no_badge
|
22
32
|
|
23
|
-
result = add_shield(icon, result, shield) unless not
|
33
|
+
result = add_shield(icon, result, shield) unless not shield
|
24
34
|
|
25
35
|
result.format "png"
|
26
36
|
result.write full_path
|
@@ -33,6 +43,8 @@ module Badge
|
|
33
43
|
end
|
34
44
|
|
35
45
|
def add_shield(icon, result, shield)
|
46
|
+
Helper.log.info "Adding shield.io image ontop of icon".blue unless not $verbose
|
47
|
+
|
36
48
|
current_shield = MiniMagick::Image.open(shield.path)
|
37
49
|
current_shield.resize "#{icon.width}x#{icon.height}>"
|
38
50
|
result = result.composite(current_shield) do |c|
|
@@ -45,20 +57,26 @@ module Badge
|
|
45
57
|
url = Badge.shield_base_url + Badge.shield_path + shield_string + ".png"
|
46
58
|
file_name = shield_string + ".png"
|
47
59
|
|
60
|
+
Helper.log.info "Trying to load image from shield.io. Timeout: ".blue unless not $verbose
|
61
|
+
Helper.log.info "URL: #{url}".blue unless not $verbose
|
62
|
+
|
48
63
|
shield = Tempfile.new(file_name).tap do |file|
|
49
64
|
file.binmode
|
50
65
|
file.write(open(url).read)
|
51
66
|
file.close
|
52
67
|
end
|
53
|
-
|
54
|
-
shield
|
55
68
|
end
|
56
69
|
|
57
|
-
def
|
70
|
+
def add_badge(custom_badge, dark_badge, icon, alpha_badge)
|
71
|
+
Helper.log.info "Adding beta badge image ontop of icon".blue unless not $verbose
|
58
72
|
if custom_badge && File.exist?(custom_badge) # check if custom image is provided
|
59
73
|
badge = MiniMagick::Image.open(custom_badge)
|
60
74
|
else
|
61
|
-
|
75
|
+
if alpha_badge
|
76
|
+
badge = MiniMagick::Image.open(dark_badge ? Badge.alpha_dark_badge : Badge.alpha_light_badge)
|
77
|
+
else
|
78
|
+
badge = MiniMagick::Image.open(dark_badge ? Badge.beta_dark_badge : Badge.beta_light_badge)
|
79
|
+
end
|
62
80
|
end
|
63
81
|
|
64
82
|
badge.resize "#{icon.width}x#{icon.height}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: badge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Griesser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fastlane_core
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
- - ~>
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: 4.0.2
|
61
|
-
description: 0.0.
|
61
|
+
description: 0.0.5
|
62
62
|
email:
|
63
63
|
- daniel.griesser.86@gmail.com
|
64
64
|
executables:
|
@@ -74,6 +74,8 @@ files:
|
|
74
74
|
- LICENSE
|
75
75
|
- assets/beta_badge_dark.png
|
76
76
|
- assets/beta_badge_light.png
|
77
|
+
- assets/alpha_badge_dark.png
|
78
|
+
- assets/alpha_badge_light.png
|
77
79
|
homepage: https://github.com/HazAT/badge
|
78
80
|
licenses:
|
79
81
|
- MIT
|