motion-rubberstamp 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -9
- data/lib/motion/project/rubberstamp.rb +67 -26
- data/lib/motion/project/scripts/close_simulator.applescript +15 -0
- data/lib/rubberstamp/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 348217ce8090219bffa05a868cdde6444c52c0f5
|
4
|
+
data.tar.gz: ecd308178bdf0f6d2a4a8257680b11db2d2f1ba1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b1c82428177a42e8e6acba426e47c965909462efe7c8c032336e337b86e7eff965a2cb726e9e2c6fc395072c8bd8d37f21f5daebaee7a75cfe2abcbe8b84ebc
|
7
|
+
data.tar.gz: b7db682ff1966a7ecbaf826fb1aef8b8a811afd7bb2ebaee9b1beb3eb572e296bdb95dccdbe62f103df231f3cbbd120cda2c08538459880271efe6b0649d45ae
|
data/README.md
CHANGED
@@ -62,15 +62,10 @@ Or to remove the overlays and restore your original icons, you can run
|
|
62
62
|
|
63
63
|
## Notes
|
64
64
|
|
65
|
-
The iOS Simulator
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
appear to update on your simulator. Deleting the app on your simulator
|
70
|
-
before building will invoke the refresh but is a non-optimal solution. I
|
71
|
-
hope to have this solved in the next release.
|
72
|
-
|
73
|
-
Motion-rubberstamp also currently only checks for app icons in the `/resources`
|
65
|
+
The iOS Simulator is trying to cache your app icons. For this reason we've put in a significant refresh step!
|
66
|
+
Your app data and simulator are restarted on restamp. It's a small but notable necessary evil.
|
67
|
+
|
68
|
+
Motion-rubberstamp _currently_ only checks for app icons in the `/resources`
|
74
69
|
path, regardless of what your Rakefile is configured for.
|
75
70
|
|
76
71
|
## Uninstalling
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'pathname'
|
2
2
|
require 'fileutils'
|
3
|
+
require 'motion/project/app'
|
4
|
+
require 'motion/project/config'
|
3
5
|
|
4
6
|
# Gratuitously lifted from Laurent Sansonetti's motion-testflight.
|
5
7
|
unless defined?(Motion::Project::Config)
|
@@ -9,20 +11,22 @@ end
|
|
9
11
|
namespace :rubberstamp do
|
10
12
|
desc "Stamp iOS app icons with version and git information"
|
11
13
|
def process_icon(icon_name, caption)
|
12
|
-
# There's probably a better way to get this info, I'm not terribly familiar with Ruby's filesystem libs
|
13
|
-
|
14
14
|
# Resolve icon's full path
|
15
15
|
pwd = Pathname.pwd
|
16
16
|
filename = "#{pwd.realdirpath.to_s}/#{icon_name}"
|
17
17
|
|
18
18
|
if File.exist? filename
|
19
|
-
width= `identify -format '%w' #{filename}
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
width= `identify -format '%w' #{filename}`
|
20
|
+
height = (width.to_i * 0.4).to_i
|
21
|
+
width = (width.to_i)
|
22
|
+
if width >= 57
|
23
|
+
new_filename = filename.gsub('_base', '')
|
24
|
+
status = `convert -background '#0008' -fill white -gravity center -size #{width.to_i}x#{height} \
|
25
|
+
caption:'#{caption}' \
|
26
|
+
#{filename} +swap -gravity south -composite #{new_filename}`
|
27
|
+
end
|
24
28
|
else
|
25
|
-
|
29
|
+
App.info "motion-rubberstamp", "File does not exist, you broke it."
|
26
30
|
end
|
27
31
|
end
|
28
32
|
|
@@ -32,25 +36,52 @@ namespace :rubberstamp do
|
|
32
36
|
prexisting_base_icons.include?(true)
|
33
37
|
end
|
34
38
|
|
39
|
+
# stub to check if the app needs to be restamped or not.
|
40
|
+
def updated?
|
41
|
+
true
|
42
|
+
end
|
43
|
+
|
44
|
+
# delete old app!
|
45
|
+
def wipe
|
46
|
+
app = App.config.app_bundle('iPhoneSimulator')
|
47
|
+
target = ENV['target'] || App.config.sdk_version
|
48
|
+
sim_apps = File.expand_path("~/Library/Application Support/iPhone Simulator/#{target}/Applications")
|
49
|
+
Dir.glob("#{sim_apps}/**/*.app").each do |app_bundle|
|
50
|
+
if File.basename(app_bundle) == File.basename(app)
|
51
|
+
p "Deleting #{app_bundle}"
|
52
|
+
rm_rf File.dirname(app_bundle)
|
53
|
+
break
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
35
58
|
task :run do
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
process_icon(
|
59
|
+
|
60
|
+
if updated?
|
61
|
+
# Clean old out the simulator
|
62
|
+
Rake::Task["rubberstamp:sim_clean"].execute
|
63
|
+
# Automatically run install on first run
|
64
|
+
Rake::Task["rubberstamp:install"].execute unless installed?
|
65
|
+
|
66
|
+
# piggyback on RubyMotion's own app config tool
|
67
|
+
project_config_vars = Motion::Project::App.config.variables
|
68
|
+
app_version = project_config_vars['version']
|
69
|
+
# execute shell commands to get git info
|
70
|
+
git_commit = `git rev-parse --short HEAD`
|
71
|
+
git_branch = `git rev-parse --abbrev-ref HEAD`
|
72
|
+
|
73
|
+
caption = "v#{app_version} #{git_commit.strip} #{git_branch.strip}"
|
74
|
+
# process_icon("Icon_base.png", caption)
|
75
|
+
# process_icon("Icon@2x_base.png", caption)
|
76
|
+
# process_icon("Icon-72_base.png", caption)
|
77
|
+
# process_icon("Icon-72@2x_base.png", caption)
|
78
|
+
App.info "motion-rubberstamp", "Rubberstamping icons..."
|
79
|
+
Dir.glob('resources/*_base.png').each do |icon|
|
80
|
+
process_icon(icon, caption)
|
81
|
+
end
|
82
|
+
|
83
|
+
else
|
84
|
+
App.info "motion-rubberstamp", "No change detected"
|
54
85
|
end
|
55
86
|
end
|
56
87
|
|
@@ -76,6 +107,16 @@ namespace :rubberstamp do
|
|
76
107
|
end
|
77
108
|
end
|
78
109
|
|
110
|
+
desc "Deletes app and kills the simulator (for cache reasons)"
|
111
|
+
task :sim_clean do
|
112
|
+
App.info "motion-rubberstamp", "Deleting App from simulator for new icons."
|
113
|
+
wipe
|
114
|
+
scripts_dir = File.join(File.dirname(__FILE__), "scripts")
|
115
|
+
close_script = File.expand_path(File.join(scripts_dir, "close_simulator.applescript"))
|
116
|
+
|
117
|
+
system("osascript #{close_script}")
|
118
|
+
end
|
119
|
+
|
79
120
|
end
|
80
121
|
|
81
122
|
# Make rubberstamp run before any build
|
@@ -0,0 +1,15 @@
|
|
1
|
+
tell application "iPhone Simulator"
|
2
|
+
activate
|
3
|
+
end tell
|
4
|
+
|
5
|
+
tell application "System Events"
|
6
|
+
tell process "iPhone Simulator"
|
7
|
+
tell menu bar 1
|
8
|
+
tell menu bar item "iOs Simulator"
|
9
|
+
tell menu "iOs Simulator"
|
10
|
+
click menu item "Quit iOS Simulator"
|
11
|
+
end tell
|
12
|
+
end tell
|
13
|
+
end tell
|
14
|
+
end tell
|
15
|
+
end tell
|
data/lib/rubberstamp/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-rubberstamp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Garrison
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- Rakefile
|
53
53
|
- lib/motion-rubberstamp.rb
|
54
54
|
- lib/motion/project/rubberstamp.rb
|
55
|
+
- lib/motion/project/scripts/close_simulator.applescript
|
55
56
|
- lib/rubberstamp/version.rb
|
56
57
|
- motion-rubberstamp.gemspec
|
57
58
|
homepage: http://github.com/iconoclastlabs/motion-rubberstamp
|