combat 0.8.6 → 0.9.1

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.
data/Readme.md CHANGED
@@ -15,12 +15,16 @@ In your mobile applications directory run
15
15
 
16
16
  combat setup
17
17
 
18
- This creates a new <tt>config.yml</tt>.
18
+ This creates a new <tt>combat.yml</tt>.
19
19
 
20
20
  To run a new deploy type
21
21
 
22
22
  combat deploy
23
23
 
24
+ To open the deploy page run
25
+
26
+ combat open
27
+
24
28
  # Configuration
25
29
 
26
30
  Create a <tt>~/.combatrc</tt> with default configuration for all combat projects, like this example:
@@ -34,4 +38,11 @@ Create a <tt>~/.combatrc</tt> with default configuration for all combat projects
34
38
 
35
39
  Todo stuff:
36
40
 
37
- * Test Android support
41
+ * Slicker ui, better design
42
+ * Dynamic behaviour: when you start the download process the button should turn to "Downloading in progress"
43
+ * Refactor code
44
+ * Support for private deploys (via .htaccess or some other password scheme)
45
+
46
+ # Author
47
+
48
+ Copyright © 2011 Tomislav Car, [Infinum](http://www.infinumdigital.com)
@@ -1,6 +1,10 @@
1
1
  class Combat < Thor
2
2
  include Thor::Actions
3
3
 
4
+ map '-s' => 'setup'
5
+ map '-d' => 'deploy'
6
+ map '-o' => 'open'
7
+
4
8
  desc "setup", "Setup a new mobile project for deploying"
5
9
  def setup
6
10
  defaults = load_defaults
@@ -51,6 +55,9 @@ class Combat < Thor
51
55
  load_config
52
56
 
53
57
  if @config.valid?
58
+ deploy_html_file = 'combat_deployed_page.html'
59
+
60
+ @config.deployed_at = Time.now
54
61
  system "ssh #{@config.user_and_host} 'mkdir -p #{@config.path}'"
55
62
  system "ssh #{@config.user_and_host} 'rm -fr #{@config.path}/*'"
56
63
 
@@ -61,18 +68,24 @@ class Combat < Thor
61
68
  else
62
69
  system "scp bin/*.apk #{@config.user_and_host}:#{@config.path}"
63
70
  end
71
+
72
+ system "scp '#{@config.icon_source_path}' #{@config.user_and_host}:#{@config.path}/#{@config.icon_path}"
64
73
 
65
- File.open('deployed/index.html', 'w+'){|x|
66
- x.puts generate_html_file
67
- }
68
- system "scp deployed/index.html #{@config.user_and_host}:#{@config.path}"
69
- remove_file 'deployed/index.html'
74
+ File.open(deploy_html_file, 'w+'){|x| x.puts generate_html_file }
75
+ system "scp #{deploy_html_file} #{@config.user_and_host}:#{@config.path}/index.html"
76
+ remove_file deploy_html_file
70
77
 
71
78
  say "Successfully deployed to #{@config.url}"
72
79
  else
73
80
  say "Config not valid, please check"
74
81
  end
75
82
  end
83
+
84
+ desc "open", "Open the deploy page in the browser (Mac OS only)"
85
+ def open
86
+ load_config
87
+ %x{open #{@config.url}}
88
+ end
76
89
 
77
90
  no_tasks do
78
91
  def load_defaults
@@ -1,5 +1,6 @@
1
1
  class Settings
2
2
  attr_accessor :name, :url, :path, :filename, :plist_file, :provision_file_name, :remote_user, :host, :type, :template_file, :ipa_file
3
+ attr_accessor :deployed_at, :icon_source_path, :icon_path
3
4
 
4
5
  def initialize(options)
5
6
  @name = options[:name]
@@ -16,12 +17,17 @@ class Settings
16
17
  @ipa_file = "#{@filename}.ipa"
17
18
  @plist_file_url = "#{@url}#{@plist_file}"
18
19
  @template_file = options[:template] || "#{COMBAT_ROOT}/templates/template.erb"
20
+ @deployer = %x(whoami).strip
19
21
 
20
22
  if (type == 'android')
21
- @qrcode = "http://qrcode.kaywa.com/img.php?s=8&d=#{ERB::Util.url_encode(@url)}#{@filename}.apk"
23
+ @icon_source_path = "res/drawable-hdpi/icon.png"
24
+ # @qrcode = "http://qrcode.kaywa.com/img.php?s=6&d=#{ERB::Util.url_encode(@url)}#{@filename}.apk"
22
25
  else
23
- @qrcode = "http://qrcode.kaywa.com/img.php?s=8&d=#{ERB::Util.url_encode(@url)}"
26
+ @icon_source_path = "Icon@2x.png"
24
27
  end
28
+ @qrcode = "http://qrcode.kaywa.com/img.php?s=6&d=#{ERB::Util.url_encode(@url)}"
29
+
30
+ @icon_path = "icon.png"
25
31
  end
26
32
 
27
33
  def user_and_host
@@ -1,3 +1,3 @@
1
1
  module Combat
2
- VERSION = '0.8.6'
2
+ VERSION = '0.9.1'
3
3
  end
@@ -4,7 +4,7 @@
4
4
  <title><%= @name %></title>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
6
6
  <style type="text/css" media="screen">
7
- @media only screen and (max-device-width: 480px) {
7
+ @media only screen and (max-device-width: 640px) {
8
8
  .desktop_only {
9
9
  display:none;
10
10
  }
@@ -13,14 +13,20 @@
13
13
  font-family: Helvetica;
14
14
  }
15
15
  h1{
16
- text-align: center;
16
+ padding-left: 10px;
17
+ margin-bottom: 5px;
17
18
  }
18
19
  p{
19
- text-align: center;
20
+ padding-left: 10px;
21
+ margin-top: 0px;
22
+ }
23
+ table{
24
+ margin-bottom: 10px;
20
25
  }
21
26
  #container{
22
27
  width: 100%;
23
28
  max-width: 300px;
29
+ width: 300px;
24
30
  margin: 10px auto;
25
31
  }
26
32
  a{
@@ -41,16 +47,49 @@
41
47
  li{
42
48
  margin-bottom: 20px;
43
49
  }
50
+ .date{
51
+ font-size: 0.8em;
52
+ color: #666;
53
+ text-align: right;
54
+ font-style: italic;
55
+ }
56
+ .instructions{
57
+ font-size: 0.8em;
58
+ }
59
+ .icon{
60
+ margin-top: 10px;
61
+ }
62
+ .text_center{
63
+ text-align: center;
64
+ }
44
65
  </style>
45
66
  </head>
46
67
  <body>
47
68
  <div id="container">
48
- <h1><%= @name %></h1>
49
- <p>
50
- <% if @type == 'iphone' %>
51
- To install <%= @name %> take 2 steps on your iPhone or iPad device:
52
- <% else %>
53
- To install just click on the following link on your Android device:
69
+ <table>
70
+ <tr>
71
+ <% if @icon_path %>
72
+ <td valign="top">
73
+ <img class="icon" src="<%= @icon_path %>" width="72" height="72" />
74
+ </td>
75
+ <% end %>
76
+
77
+ <td>
78
+ <h1><%= @name %></h1>
79
+ <p class="instructions">
80
+ <% if @type == 'iphone' %>
81
+ To install <%= @name %> take two steps on your iPhone or iPad device:
82
+ <% else %>
83
+ To install just click the following link on your Android device:
84
+ <% end %>
85
+ </p>
86
+ </td>
87
+ </tr>
88
+ </table>
89
+ <p class="date">
90
+ Deployed <%= @deployed_at.strftime("%B %d, %Y at %I:%M") %>
91
+ <% if @deployer %>
92
+ by <%= @deployer %>
54
93
  <% end %>
55
94
  </p>
56
95
  <ol>
@@ -74,7 +113,7 @@
74
113
  </li>
75
114
  <% end %>
76
115
  </ol>
77
- <p class="desktop_only">
116
+ <p class="desktop_only text_center">
78
117
  <% if @type == 'android' %>
79
118
  Use QR code to install APK
80
119
  <img src="<%= @qrcode %>" />
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: combat
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.8.6
5
+ version: 0.9.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tomislav Car
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-08-05 00:00:00 Z
13
+ date: 2011-10-25 00:00:00 Z
14
14
  dependencies: []
15
15
 
16
16
  description: Deploy your iPhone and Android apps to clients with ease. It's like Capistrano, only for mobile apps.