appsendr 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest +21 -0
- data/README.rdoc +1 -1
- data/Rakefile +1 -1
- data/appsendr.gemspec +7 -4
- data/lib/appsendr/binary_plist.rb +2 -22
- data/lib/appsendr/client.rb +75 -16
- data/lib/appsendr/commands/app.rb +41 -2
- data/lib/appsendr/commands/base.rb +14 -0
- data/lib/appsendr/commands/build.rb +3 -2
- data/lib/appsendr/commands/collaborators.rb +24 -0
- data/lib/appsendr/commands/deploy.rb +3 -1
- data/lib/appsendr/commands/help.rb +10 -3
- data/lib/appsendr/constants.rb +1 -1
- data/lib/appsendr.rb +24 -0
- data/terms +0 -0
- metadata +22 -5
data/Manifest
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
Manifest
|
2
|
+
README.rdoc
|
3
|
+
Rakefile
|
4
|
+
appsendr.gemspec
|
5
|
+
bin/appsendr
|
6
|
+
lib/appsendr.rb
|
7
|
+
lib/appsendr/binary_plist.rb
|
8
|
+
lib/appsendr/client.rb
|
9
|
+
lib/appsendr/command.rb
|
10
|
+
lib/appsendr/commands/app.rb
|
11
|
+
lib/appsendr/commands/auth.rb
|
12
|
+
lib/appsendr/commands/base.rb
|
13
|
+
lib/appsendr/commands/build.rb
|
14
|
+
lib/appsendr/commands/collaborators.rb
|
15
|
+
lib/appsendr/commands/deploy.rb
|
16
|
+
lib/appsendr/commands/help.rb
|
17
|
+
lib/appsendr/commands/testers.rb
|
18
|
+
lib/appsendr/commands/version.rb
|
19
|
+
lib/appsendr/constants.rb
|
20
|
+
lib/appsendr/helpers.rb
|
21
|
+
terms
|
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -10,7 +10,7 @@ Echoe.new('appsendr', AppSendr::VERSION) do |p|
|
|
10
10
|
p.email = "nolanbrown@gmail.com"
|
11
11
|
p.ignore_pattern = ["tmp/*", "script/*"]
|
12
12
|
p.development_dependencies = []
|
13
|
-
p.runtime_dependencies = ["rest-client >=1.4.0", "rubyzip", "json_pure >=1.2.0"]
|
13
|
+
p.runtime_dependencies = ["rest-client >=1.4.0", "rubyzip", "json_pure >=1.2.0", "aws-s3"]
|
14
14
|
p.has_rdoc = true
|
15
15
|
|
16
16
|
end
|
data/appsendr.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{appsendr}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["AppSendr"]
|
9
|
-
s.date = %q{2010-
|
9
|
+
s.date = %q{2010-12-15}
|
10
10
|
s.default_executable = %q{appsendr}
|
11
11
|
s.description = %q{A gem that will build and distribute an iphone/ipad app to the web for remote install}
|
12
12
|
s.email = %q{nolanbrown@gmail.com}
|
13
13
|
s.executables = ["appsendr"]
|
14
|
-
s.extra_rdoc_files = ["README.rdoc", "bin/appsendr", "lib/appsendr.rb", "lib/appsendr/binary_plist.rb", "lib/appsendr/client.rb", "lib/appsendr/command.rb", "lib/appsendr/commands/app.rb", "lib/appsendr/commands/auth.rb", "lib/appsendr/commands/base.rb", "lib/appsendr/commands/build.rb", "lib/appsendr/commands/deploy.rb", "lib/appsendr/commands/help.rb", "lib/appsendr/commands/testers.rb", "lib/appsendr/commands/version.rb", "lib/appsendr/constants.rb", "lib/appsendr/helpers.rb"]
|
15
|
-
s.files = ["Manifest", "README.rdoc", "Rakefile", "appsendr.gemspec", "bin/appsendr", "lib/appsendr.rb", "lib/appsendr/binary_plist.rb", "lib/appsendr/client.rb", "lib/appsendr/command.rb", "lib/appsendr/commands/app.rb", "lib/appsendr/commands/auth.rb", "lib/appsendr/commands/base.rb", "lib/appsendr/commands/build.rb", "lib/appsendr/commands/deploy.rb", "lib/appsendr/commands/help.rb", "lib/appsendr/commands/testers.rb", "lib/appsendr/commands/version.rb", "lib/appsendr/constants.rb", "lib/appsendr/helpers.rb"]
|
14
|
+
s.extra_rdoc_files = ["README.rdoc", "bin/appsendr", "lib/appsendr.rb", "lib/appsendr/binary_plist.rb", "lib/appsendr/client.rb", "lib/appsendr/command.rb", "lib/appsendr/commands/app.rb", "lib/appsendr/commands/auth.rb", "lib/appsendr/commands/base.rb", "lib/appsendr/commands/build.rb", "lib/appsendr/commands/collaborators.rb", "lib/appsendr/commands/deploy.rb", "lib/appsendr/commands/help.rb", "lib/appsendr/commands/testers.rb", "lib/appsendr/commands/version.rb", "lib/appsendr/constants.rb", "lib/appsendr/helpers.rb"]
|
15
|
+
s.files = ["Manifest", "README.rdoc", "Rakefile", "appsendr.gemspec", "bin/appsendr", "lib/appsendr.rb", "lib/appsendr/binary_plist.rb", "lib/appsendr/client.rb", "lib/appsendr/command.rb", "lib/appsendr/commands/app.rb", "lib/appsendr/commands/auth.rb", "lib/appsendr/commands/base.rb", "lib/appsendr/commands/build.rb", "lib/appsendr/commands/collaborators.rb", "lib/appsendr/commands/deploy.rb", "lib/appsendr/commands/help.rb", "lib/appsendr/commands/testers.rb", "lib/appsendr/commands/version.rb", "lib/appsendr/constants.rb", "lib/appsendr/helpers.rb", "terms"]
|
16
16
|
s.homepage = %q{http://www.appsendr.com/gem}
|
17
17
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Appsendr", "--main", "README.rdoc"]
|
18
18
|
s.require_paths = ["lib"]
|
@@ -28,14 +28,17 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_runtime_dependency(%q<rest-client>, [">= 1.4.0"])
|
29
29
|
s.add_runtime_dependency(%q<rubyzip>, [">= 0"])
|
30
30
|
s.add_runtime_dependency(%q<json_pure>, [">= 1.2.0"])
|
31
|
+
s.add_runtime_dependency(%q<aws-s3>, [">= 0"])
|
31
32
|
else
|
32
33
|
s.add_dependency(%q<rest-client>, [">= 1.4.0"])
|
33
34
|
s.add_dependency(%q<rubyzip>, [">= 0"])
|
34
35
|
s.add_dependency(%q<json_pure>, [">= 1.2.0"])
|
36
|
+
s.add_dependency(%q<aws-s3>, [">= 0"])
|
35
37
|
end
|
36
38
|
else
|
37
39
|
s.add_dependency(%q<rest-client>, [">= 1.4.0"])
|
38
40
|
s.add_dependency(%q<rubyzip>, [">= 0"])
|
39
41
|
s.add_dependency(%q<json_pure>, [">= 1.2.0"])
|
42
|
+
s.add_dependency(%q<aws-s3>, [">= 0"])
|
40
43
|
end
|
41
44
|
end
|
@@ -3,29 +3,9 @@ require "nkf"
|
|
3
3
|
require "set"
|
4
4
|
require "stringio"
|
5
5
|
|
6
|
-
|
7
|
-
#
|
6
|
+
# Binary Plist implementation is from @schlueter
|
7
|
+
# https://github.com/schlueter/Ipa-Reader/blob/master/lib/ipa_reader/plist_binary.rb
|
8
8
|
#
|
9
|
-
# Copyright (c) 2010
|
10
|
-
#
|
11
|
-
# Permission is hereby granted, free of charge, to any person obtaining
|
12
|
-
# a copy of this software and associated documentation files (the
|
13
|
-
# 'Software'), to deal in the Software without restriction, including
|
14
|
-
# without limitation the rights to use, copy, modify, merge, publish,
|
15
|
-
# distribute, sublicense, and/or sell copies of the Software, and to
|
16
|
-
# permit persons to whom the Software is furnished to do so, subject to
|
17
|
-
# the following conditions:
|
18
|
-
#
|
19
|
-
# The above copyright notice and this permission notice shall be
|
20
|
-
# included in all copies or substantial portions of the Software.
|
21
|
-
#
|
22
|
-
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
23
|
-
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
24
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
25
|
-
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
26
|
-
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
27
|
-
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
28
|
-
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
29
9
|
|
30
10
|
module AppSendr
|
31
11
|
module Plist
|
data/lib/appsendr/client.rb
CHANGED
@@ -4,9 +4,8 @@ require 'uri'
|
|
4
4
|
require 'time'
|
5
5
|
require 'appsendr/constants'
|
6
6
|
require 'json/pure' unless {}.respond_to?(:to_json)
|
7
|
-
|
8
|
-
# A Ruby class to call the
|
9
|
-
# manage your Heroku apps from within a Ruby program, such as Capistrano.
|
7
|
+
require 'aws/s3'
|
8
|
+
# A Ruby class to call the AppSendr REST API.
|
10
9
|
#
|
11
10
|
# Example:
|
12
11
|
#
|
@@ -14,6 +13,7 @@ require 'json/pure' unless {}.respond_to?(:to_json)
|
|
14
13
|
# droppr = AppSendr::Client.new('me@example.com', 'mypass')
|
15
14
|
# droppr.create('myapp')
|
16
15
|
#
|
16
|
+
|
17
17
|
class AppSendr::Client
|
18
18
|
def self.version
|
19
19
|
AppSendr::VERSION
|
@@ -53,6 +53,10 @@ class AppSendr::Client
|
|
53
53
|
post('/api/app/link',{:id=>id});
|
54
54
|
end
|
55
55
|
|
56
|
+
def install_url(app_id)
|
57
|
+
JSON.parse(get('/api/app/last_install_url/'+app_id.to_s))
|
58
|
+
end
|
59
|
+
|
56
60
|
def create(name)
|
57
61
|
JSON.parse(post('/api/app/create', {:name=>name}))
|
58
62
|
end
|
@@ -69,6 +73,32 @@ class AppSendr::Client
|
|
69
73
|
delete('/api/app/clear_testers/'+app_id.to_s,{});
|
70
74
|
end
|
71
75
|
|
76
|
+
def add_group(app_id,name)
|
77
|
+
post('/api/app/add_group/'+app_id.to_s,{:name=>name});
|
78
|
+
end
|
79
|
+
|
80
|
+
def remove_group(app_id, name)
|
81
|
+
post('/api/app/remove_group/'+app_id.to_s,{:name=>name});
|
82
|
+
end
|
83
|
+
|
84
|
+
def groups(app_id)
|
85
|
+
JSON.parse(get('/api/app/groups/'+app_id.to_s))
|
86
|
+
end
|
87
|
+
|
88
|
+
### add_collaborator
|
89
|
+
|
90
|
+
def add_collaborator(app_id,emaill)
|
91
|
+
post('/api/app/add_collaborator/'+app_id.to_s,{:email=>email});
|
92
|
+
end
|
93
|
+
|
94
|
+
def remove_collaborator(app_id,email)
|
95
|
+
post('/api/app/remove_collaborator/'+app_id.to_s,{:email=>email});
|
96
|
+
end
|
97
|
+
|
98
|
+
def collaborators(app_id)
|
99
|
+
JSON.parse(get('/api/app/collaborators/'+app_id.to_s))
|
100
|
+
end
|
101
|
+
|
72
102
|
def testers(app_id)
|
73
103
|
JSON.parse(get('/api/app/testers/'+app_id.to_s))
|
74
104
|
end
|
@@ -76,22 +106,51 @@ class AppSendr::Client
|
|
76
106
|
JSON.parse(get('/api/app/notify/'+app_id.to_s))
|
77
107
|
end
|
78
108
|
|
79
|
-
def upload(app_id, ipa,provisioning, notes, bundle_id, icon)
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
109
|
+
def upload(app_id, ipa,provisioning,notify, notes, bundle_id, icon)
|
110
|
+
params = {
|
111
|
+
:profile => File.new(provisioning, 'rb'),
|
112
|
+
:notes=>notes,
|
113
|
+
:bundle_identifier => bundle_id,
|
114
|
+
:built_at=>Time.now,
|
115
|
+
:notify=>notify
|
116
|
+
# :ipa=>
|
117
|
+
}
|
118
|
+
if icon
|
119
|
+
params[:icon] = File.new(icon,'rb')
|
120
|
+
end
|
121
|
+
if(is_file_to_large?(ipa))
|
122
|
+
puts "IPA is too large to upload."
|
123
|
+
else
|
124
|
+
params[:ipa] = File.new(ipa, 'rb')
|
125
|
+
|
126
|
+
post('/api/app/upload/'+app_id.to_s, params)
|
127
|
+
end
|
91
128
|
end
|
92
129
|
|
93
130
|
protected
|
94
|
-
|
131
|
+
def is_file_to_large?(file)
|
132
|
+
in_mb = size_of_file(file).to_f
|
133
|
+
if in_mb > 10
|
134
|
+
return true
|
135
|
+
else
|
136
|
+
return false
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
140
|
+
|
141
|
+
def size_of_file(file)
|
142
|
+
size = File.size(file)
|
143
|
+
mb = 1024.0 * 1024.0
|
144
|
+
in_mb = size / mb
|
145
|
+
|
146
|
+
end
|
147
|
+
|
148
|
+
|
149
|
+
def upload_to_s3_directly
|
150
|
+
@s3_url = "http://appsendr.s3.amazonaws.com/"
|
151
|
+
|
152
|
+
end
|
153
|
+
|
95
154
|
def api_params(params={})
|
96
155
|
params[:api_key] ||= @api_key
|
97
156
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'readline'
|
2
|
-
#require 'launchy'
|
3
2
|
|
4
3
|
module AppSendr::Command
|
5
4
|
class App < Base
|
@@ -36,6 +35,28 @@ module AppSendr::Command
|
|
36
35
|
end
|
37
36
|
end
|
38
37
|
|
38
|
+
def url
|
39
|
+
if in_project_dir?
|
40
|
+
|
41
|
+
resp = appsendr.install_url(get_app_id)
|
42
|
+
if resp["message"].size > 0
|
43
|
+
display "=== Your last install url is:"
|
44
|
+
url = resp["message"]["install_url"]
|
45
|
+
display url
|
46
|
+
do_copy = option_exists?('--copy', false)
|
47
|
+
if do_copy
|
48
|
+
display "Copied URL"
|
49
|
+
IO.popen('pbcopy', 'w') { |clipboard| clipboard.write url }
|
50
|
+
end
|
51
|
+
else
|
52
|
+
display "No versions available"
|
53
|
+
end
|
54
|
+
else
|
55
|
+
error("You are not in a project directory")
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
39
60
|
def link
|
40
61
|
if in_project_dir?
|
41
62
|
error "This app is already linked to an appsendr." unless !has_project_droppr?
|
@@ -50,7 +71,7 @@ module AppSendr::Command
|
|
50
71
|
display "Your app has been linked."
|
51
72
|
|
52
73
|
else
|
53
|
-
error("You are not in a project")
|
74
|
+
error("You are not in a project directory")
|
54
75
|
end
|
55
76
|
end
|
56
77
|
|
@@ -77,6 +98,24 @@ module AppSendr::Command
|
|
77
98
|
end
|
78
99
|
end
|
79
100
|
|
101
|
+
def groups
|
102
|
+
if in_project_dir?
|
103
|
+
|
104
|
+
groups = appsendr.groups(get_app_id)
|
105
|
+
if groups["message"].size > 0
|
106
|
+
display "=== Your groups"
|
107
|
+
i = 0
|
108
|
+
display groups["message"].map {|app, id|
|
109
|
+
"#{i+=1}. #{app['tester_group']['name'].ljust(35)}"
|
110
|
+
}.join("\n")
|
111
|
+
else
|
112
|
+
display "You have no groups."
|
113
|
+
end
|
114
|
+
else
|
115
|
+
error("You are not in a project directory")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
80
119
|
# def info
|
81
120
|
# name = (args.first && !args.first =~ /^\-\-/) ? args.first : extract_app
|
82
121
|
# attrs = appsendr.info(name)
|
@@ -1,5 +1,12 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
|
+
class String
|
4
|
+
def cl_escape
|
5
|
+
self.gsub('&','\\\\&').gsub(" ","\\ ")
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
|
3
10
|
module AppSendr::Command
|
4
11
|
class Base
|
5
12
|
include AppSendr::Helpers
|
@@ -41,6 +48,13 @@ module AppSendr::Command
|
|
41
48
|
app
|
42
49
|
end
|
43
50
|
|
51
|
+
def option_exists?(options, default=true)
|
52
|
+
values = options.is_a?(Array) ? options : [options]
|
53
|
+
return false unless opt_index = args.select { |a| values.include? a }.first
|
54
|
+
return true
|
55
|
+
end
|
56
|
+
|
57
|
+
|
44
58
|
def extract_option(options, default=true)
|
45
59
|
values = options.is_a?(Array) ? options : [options]
|
46
60
|
return unless opt_index = args.select { |a| values.include? a }.first
|
@@ -55,8 +55,9 @@ module AppSendr::Command
|
|
55
55
|
|
56
56
|
FileUtils.rm_rf payload_path
|
57
57
|
Dir.mkdir(payload_path)
|
58
|
-
|
59
|
-
|
58
|
+
#display "#{@app_path.cl_escape} #{payload_path.cl_escape}/#{app_name.cl_escape}"
|
59
|
+
`cp -r #{@app_path.cl_escape} #{payload_path.cl_escape+"/"+app_name.cl_escape}`
|
60
|
+
build_ipa(payload_path.cl_escape,ipa_path.cl_escape)
|
60
61
|
|
61
62
|
FileUtils.rm_rf payload_path
|
62
63
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module AppSendr::Command
|
2
|
+
class Deploy < Build ## Inherhits from Deploy
|
3
|
+
|
4
|
+
def index
|
5
|
+
if in_project_dir?
|
6
|
+
unless has_project_droppr?
|
7
|
+
require_project_droppr
|
8
|
+
return
|
9
|
+
end
|
10
|
+
|
11
|
+
testers = appsendr.collaborators(read_app_id)
|
12
|
+
if testers["message"].size > 0
|
13
|
+
display "=== Your collaborators"
|
14
|
+
i = 0
|
15
|
+
display testers["message"].map {|app, id|
|
16
|
+
"#{i+=1}. #{app['app_user']['name']} - #{app['app_user']['email']}"
|
17
|
+
}.join("\n")
|
18
|
+
else
|
19
|
+
display "You have no collaborators."
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -11,6 +11,7 @@ module AppSendr::Command
|
|
11
11
|
# opts.parse!(args) rescue return false
|
12
12
|
#
|
13
13
|
#
|
14
|
+
|
14
15
|
@configuration = load_configuration
|
15
16
|
if require_project(1,"deploy","your active configuration name",true)
|
16
17
|
@app_dir = path_to_app_dir
|
@@ -22,7 +23,8 @@ module AppSendr::Command
|
|
22
23
|
info = app_info
|
23
24
|
bundle_identifier ||= info['CFBundleIdentifier']
|
24
25
|
icon_path = icon_path(info)
|
25
|
-
|
26
|
+
notify = option_exists?('--notify', false)
|
27
|
+
appsendr.upload(read_app_id,@ipa_path, profile_path,notify,@notes,bundle_identifier,icon_path)
|
26
28
|
FileUtils.rm_rf @ipa_path
|
27
29
|
else
|
28
30
|
error "No .app file was built for the configuration \"#{@configuration}\". Compile your app or use the \"build\" command."
|
@@ -37,17 +37,24 @@ module AppSendr::Command
|
|
37
37
|
group.command 'link', 'link your app with an exsiting one in appsendr'
|
38
38
|
group.command 'create <name>', 'create a new app'
|
39
39
|
group.space
|
40
|
+
group.command 'url', 'get the latest version install url. pass --copy to copy to the clipboard'
|
41
|
+
group.space
|
40
42
|
group.command 'build <active configuration>', 'build your xcode project and deploy'
|
41
43
|
group.command 'build:clean', 'clean your xcode project'
|
42
44
|
group.space
|
43
|
-
group.command 'deploy <active configuration>', 'deploy the current build'
|
45
|
+
group.command 'deploy <active configuration>', 'deploy the current build. pass --notify to send notification to all testers'
|
44
46
|
group.space
|
45
47
|
group.command 'testers', 'list testers'
|
46
48
|
group.command 'testers:add <email> <name>', 'add a tester'
|
47
49
|
group.command 'testers:remove <email> ', 'remove a tester'
|
48
50
|
group.command 'testers:clear', 'remove all testers'
|
49
|
-
group.command 'testers:notify', 'notify testers about the latest build'
|
50
|
-
|
51
|
+
group.command 'testers:notify <group>', 'notify testers about the latest build. group is optional.'
|
52
|
+
group.space
|
53
|
+
group.command 'groups', 'list groups'
|
54
|
+
group.space
|
55
|
+
group.command 'collaborators', 'list collaborators'
|
56
|
+
group.command 'collaborators:add <email>', 'add collaborators'
|
57
|
+
group.command 'collaborators:remove <email>','add collaborators'
|
51
58
|
end
|
52
59
|
|
53
60
|
end
|
data/lib/appsendr/constants.rb
CHANGED
data/lib/appsendr.rb
CHANGED
@@ -1,3 +1,27 @@
|
|
1
1
|
module AppSendr; end
|
2
2
|
|
3
3
|
require 'appsendr/client'
|
4
|
+
|
5
|
+
# (The MIT License)
|
6
|
+
#
|
7
|
+
# Copyright (c) 2010
|
8
|
+
#
|
9
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
10
|
+
# a copy of this software and associated documentation files (the
|
11
|
+
# 'Software'), to deal in the Software without restriction, including
|
12
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
+
# the following conditions:
|
16
|
+
#
|
17
|
+
# The above copyright notice and this permission notice shall be
|
18
|
+
# included in all copies or substantial portions of the Software.
|
19
|
+
#
|
20
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
23
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
24
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
25
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
26
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27
|
+
|
data/terms
ADDED
File without changes
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appsendr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- AppSendr
|
@@ -15,8 +15,8 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
19
|
-
default_executable:
|
18
|
+
date: 2010-12-15 00:00:00 -08:00
|
19
|
+
default_executable: appsendr
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: rest-client
|
@@ -64,6 +64,20 @@ dependencies:
|
|
64
64
|
version: 1.2.0
|
65
65
|
type: :runtime
|
66
66
|
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: aws-s3
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
type: :runtime
|
80
|
+
version_requirements: *id004
|
67
81
|
description: A gem that will build and distribute an iphone/ipad app to the web for remote install
|
68
82
|
email: nolanbrown@gmail.com
|
69
83
|
executables:
|
@@ -81,6 +95,7 @@ extra_rdoc_files:
|
|
81
95
|
- lib/appsendr/commands/auth.rb
|
82
96
|
- lib/appsendr/commands/base.rb
|
83
97
|
- lib/appsendr/commands/build.rb
|
98
|
+
- lib/appsendr/commands/collaborators.rb
|
84
99
|
- lib/appsendr/commands/deploy.rb
|
85
100
|
- lib/appsendr/commands/help.rb
|
86
101
|
- lib/appsendr/commands/testers.rb
|
@@ -101,12 +116,14 @@ files:
|
|
101
116
|
- lib/appsendr/commands/auth.rb
|
102
117
|
- lib/appsendr/commands/base.rb
|
103
118
|
- lib/appsendr/commands/build.rb
|
119
|
+
- lib/appsendr/commands/collaborators.rb
|
104
120
|
- lib/appsendr/commands/deploy.rb
|
105
121
|
- lib/appsendr/commands/help.rb
|
106
122
|
- lib/appsendr/commands/testers.rb
|
107
123
|
- lib/appsendr/commands/version.rb
|
108
124
|
- lib/appsendr/constants.rb
|
109
125
|
- lib/appsendr/helpers.rb
|
126
|
+
- terms
|
110
127
|
has_rdoc: true
|
111
128
|
homepage: http://www.appsendr.com/gem
|
112
129
|
licenses: []
|