nuvado 1.0.0.rc1
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 +7 -0
- data/.gitignore +23 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +22 -0
- data/README.md +69 -0
- data/Rakefile +33 -0
- data/bin/nuvado +12 -0
- data/lib/nuvado/apps.rb +76 -0
- data/lib/nuvado/backend/app.rb +6 -0
- data/lib/nuvado/backend/authenticated_resource.rb +25 -0
- data/lib/nuvado/backend/basic_resource.rb +12 -0
- data/lib/nuvado/backend/build.rb +7 -0
- data/lib/nuvado/backend/git.rb +23 -0
- data/lib/nuvado/backend/key.rb +9 -0
- data/lib/nuvado/backend/local_key.rb +50 -0
- data/lib/nuvado/backend/session.rb +6 -0
- data/lib/nuvado/backend/token_store.rb +26 -0
- data/lib/nuvado/backend/user.rb +6 -0
- data/lib/nuvado/backend.rb +15 -0
- data/lib/nuvado/base_command.rb +41 -0
- data/lib/nuvado/exceptions.rb +17 -0
- data/lib/nuvado/generate.rb +39 -0
- data/lib/nuvado/keys.rb +57 -0
- data/lib/nuvado/nuvado.rb +33 -0
- data/lib/nuvado/os.rb +22 -0
- data/lib/nuvado/templates/empty_project/%product_name%/%product_name%-Info.plist.tt +45 -0
- data/lib/nuvado/templates/empty_project/%product_name%/%product_name%-Prefix.pch.tt +14 -0
- data/lib/nuvado/templates/empty_project/%product_name%/AppDelegate.h.tt +15 -0
- data/lib/nuvado/templates/empty_project/%product_name%/AppDelegate.m.tt +49 -0
- data/lib/nuvado/templates/empty_project/%product_name%/Default-568h@2x.png +0 -0
- data/lib/nuvado/templates/empty_project/%product_name%/Default.png +0 -0
- data/lib/nuvado/templates/empty_project/%product_name%/Default@2x.png +0 -0
- data/lib/nuvado/templates/empty_project/%product_name%/en.lproj/InfoPlist.strings +2 -0
- data/lib/nuvado/templates/empty_project/%product_name%/main.m.tt +18 -0
- data/lib/nuvado/templates/empty_project/%product_name%.xcodeproj/project.pbxproj.tt +452 -0
- data/lib/nuvado/templates/empty_project/%product_name%.xcodeproj/project.xcworkspace/contents.xcworkspacedata.tt +7 -0
- data/lib/nuvado/templates/empty_project/%product_name%Tests/%product_name%Tests-Info.plist.tt +22 -0
- data/lib/nuvado/templates/empty_project/%product_name%Tests/%product_name%Tests.h.tt +13 -0
- data/lib/nuvado/templates/empty_project/%product_name%Tests/%product_name%Tests.m.tt +32 -0
- data/lib/nuvado/templates/empty_project/%product_name%Tests/en.lproj/InfoPlist.strings +2 -0
- data/lib/nuvado/version.rb +3 -0
- data/lib/nuvado.rb +9 -0
- data/nuvado.gemspec +35 -0
- data/post_install.sh +2 -0
- data/test/apps_test.rb +107 -0
- data/test/backend_local_key_test.rb +46 -0
- data/test/keys_test.rb +102 -0
- data/test/login_test.rb +25 -0
- data/test/ssh/jmendoza.pub +1 -0
- data/test/ssh/kramos.pub +1 -0
- data/test/test_helper.rb +24 -0
- metadata +272 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
//
|
2
|
+
// <%= product_name %>Tests.m
|
3
|
+
// <%= product_name %>Tests
|
4
|
+
//
|
5
|
+
// Created by Nuvado on <%= Date.today.to_s %>.
|
6
|
+
// Copyright (c) 2013 <%= organization_name %>. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import "<%= product_name %>Tests.h"
|
10
|
+
|
11
|
+
@implementation <%= product_name %>Tests
|
12
|
+
|
13
|
+
- (void)setUp
|
14
|
+
{
|
15
|
+
[super setUp];
|
16
|
+
|
17
|
+
// Set-up code here.
|
18
|
+
}
|
19
|
+
|
20
|
+
- (void)tearDown
|
21
|
+
{
|
22
|
+
// Tear-down code here.
|
23
|
+
|
24
|
+
[super tearDown];
|
25
|
+
}
|
26
|
+
|
27
|
+
- (void)testExample
|
28
|
+
{
|
29
|
+
STFail(@"Unit tests are not implemented yet in <%= product_name %>Tests");
|
30
|
+
}
|
31
|
+
|
32
|
+
@end
|
data/lib/nuvado.rb
ADDED
data/nuvado.gemspec
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'nuvado/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "nuvado"
|
8
|
+
spec.version = Nuvado::VERSION
|
9
|
+
spec.authors = ["robertomiranda", "lacides"]
|
10
|
+
spec.email = ["rjmaltamar@gmail.com", "lcharris89@gmail.com"]
|
11
|
+
spec.description = %q{Client library and command-line tool to deploy and manage apps on Nuvado.io}
|
12
|
+
spec.summary = %q{Client library and CLI to deploy apps on Nuvado.io}
|
13
|
+
spec.homepage = "http://nuvado.io"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
+
spec.require_paths = ["lib"]
|
21
|
+
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency 'minitest', "~> 4.2"
|
25
|
+
spec.add_development_dependency 'mocha'
|
26
|
+
spec.add_development_dependency 'webmock'
|
27
|
+
spec.add_development_dependency 'pry'
|
28
|
+
|
29
|
+
spec.add_dependency "activeresource", "~> 4.0.0"
|
30
|
+
spec.add_dependency "highline"
|
31
|
+
spec.add_dependency "netrc"
|
32
|
+
spec.add_dependency "thor"
|
33
|
+
spec.add_dependency "uuid"
|
34
|
+
spec.add_dependency "json"
|
35
|
+
end
|
data/post_install.sh
ADDED
data/test/apps_test.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestApps < MiniTest::Unit::TestCase
|
4
|
+
# nuvado apps create superduperappname
|
5
|
+
def test_create_without_saved_token_raises_error
|
6
|
+
stub_token_store
|
7
|
+
assert_raises Nuvado::AuthParamsNotSet do
|
8
|
+
Nuvado::Apps.start(["create", "superduperappname"])
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
# nuvado apps create superduperappname
|
13
|
+
def test_create_with_saved_token_configures_active_resource
|
14
|
+
stub_stdio
|
15
|
+
stub_successful_app_creation
|
16
|
+
Nuvado::Apps.start(["create", "superduperappname"])
|
17
|
+
assert_equal "Basic VEhJU0lTQUZBS0VUT0tFTg==", Nuvado::Backend::AuthenticatedResource.headers['Authorization']
|
18
|
+
end
|
19
|
+
|
20
|
+
# nuvado apps create superduperappname
|
21
|
+
def test_create_creates_app
|
22
|
+
stub_stdio
|
23
|
+
stub_successful_app_creation
|
24
|
+
app = Nuvado::Apps.start(["create", "superduperappname"])
|
25
|
+
assert app.persisted?
|
26
|
+
assert_equal "superduperappname", app.name
|
27
|
+
@output.rewind
|
28
|
+
assert_equal ["superduperappnameremote\n"], @output.readlines
|
29
|
+
end
|
30
|
+
|
31
|
+
# nuvado apps list
|
32
|
+
def test_list_lists_users_apps_names
|
33
|
+
stub_stdio
|
34
|
+
stub_apps_index
|
35
|
+
Nuvado::Apps.start(["list"])
|
36
|
+
@output.rewind
|
37
|
+
assert_equal ["super\n","duper\n"], @output.readlines
|
38
|
+
end
|
39
|
+
|
40
|
+
# nuvado apps delete -n afakeappname
|
41
|
+
def test_delete_not_existant_app_raises_error
|
42
|
+
stub_apps_index
|
43
|
+
assert_raises Nuvado::SystemExitException do
|
44
|
+
Nuvado::Apps.start(["delete", "afakeappname"])
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# nuvado apps delete -n apps
|
49
|
+
def test_delete_not_existant_app_deletes_app
|
50
|
+
stub_apps_index(["a", "fake", "list", "of", "apps"])
|
51
|
+
stub_request :delete, %r{/api/v1/apps/5.json}
|
52
|
+
Nuvado::Apps.start(["delete", "apps"])
|
53
|
+
assert_requested :delete, %r{/api/v1/apps/5.json}
|
54
|
+
end
|
55
|
+
|
56
|
+
# nuvado apps build_status duper
|
57
|
+
def test_build_status
|
58
|
+
stub_stdio
|
59
|
+
stubbed_apps = stub_apps_index(["super", "duper"])
|
60
|
+
stub_builds_index(stubbed_apps)
|
61
|
+
|
62
|
+
Nuvado::Apps.start(["build_status", "duper"])
|
63
|
+
@output.rewind
|
64
|
+
assert_equal ["2 - creation time - finished\n"], @output.readlines
|
65
|
+
end
|
66
|
+
|
67
|
+
# nuvado apps build duper
|
68
|
+
def test_build
|
69
|
+
stub_stdio
|
70
|
+
stubbed_apps = stub_apps_index(["super", "duper"])
|
71
|
+
stub_successful_app_build_enqueue(stubbed_apps.last[:id])
|
72
|
+
|
73
|
+
build = Nuvado::Apps.start(["build", "duper"])
|
74
|
+
@output.rewind
|
75
|
+
|
76
|
+
assert build.persisted?
|
77
|
+
assert_equal ["Build Queued with the job id 1\n"], @output.readlines
|
78
|
+
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
def stub_apps_index(names = ["super", "duper"])
|
83
|
+
stub_token_store("THISISAFAKETOKEN")
|
84
|
+
app_attributes = {:apps => names.each_with_index.map{|name, id| {:name => name, :id => id + 1, :remote => "#{name}remote"}}}
|
85
|
+
stub_request(:get, %r{/api/v1/apps.json}).to_return(:body => app_attributes.to_json)
|
86
|
+
app_attributes[:apps]
|
87
|
+
end
|
88
|
+
|
89
|
+
def stub_builds_index(apps)
|
90
|
+
apps.each_with_index do |app, index|
|
91
|
+
build_attributes = {:builds => [{:id => index + 1, :app_id => app[:id], :created_at => "creation time", :status => "finished"}]}
|
92
|
+
stub_request(:get, %r{/api/v1/apps/#{app[:id]}/builds.json}).to_return(:body => build_attributes.to_json)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def stub_successful_app_creation(name = 'superduperappname')
|
97
|
+
stub_token_store("THISISAFAKETOKEN")
|
98
|
+
app_attributes = {:app => {:name => name, :id => 1, :remote => "#{name}remote"}}.to_json
|
99
|
+
stub_request(:post, %r{/api/v1/apps.json}).to_return(:body => app_attributes)
|
100
|
+
end
|
101
|
+
|
102
|
+
def stub_successful_app_build_enqueue(app_id)
|
103
|
+
stub_token_store("THISISAFAKETOKEN")
|
104
|
+
build_attributes = {:build => {:app_id => app_id, :id => 1}}.to_json
|
105
|
+
stub_request(:post, %r{/api/v1/apps/#{app_id}/builds.json}).to_return(:body => build_attributes)
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestBackendLocalKeyTest < MiniTest::Unit::TestCase
|
4
|
+
KRAMOS_KEY = <<KRAMOS_KEY
|
5
|
+
ssh-rsa wr5nIAGausTqiNhOT00B91x3Yd98qhoJe0Gd6f1eSkzPKdSADFESfiqsVOJrtmTsmoP79ZQKVpZxzF75r59LDmTVd9lxHmrvs30iYxJgWhM8QpbDEL7KrPWz9icb3kxVURXTVzSQSyT2zJ0tCi0xGP3g7TJw0XkZpzVjGdTTgUodN0H4xsTJfBZYHkJRG449u9R9awIx4V47x5oNiddAVlYvjQU4gULXwkCZC8Ho0pGoo7xZ2XYW4BWNPjrl24bXH7hVf6lJLy40ZxRhjnMsVwWxBS5tKMBNu9G8m3xkDLbdf93GI7tfNIfAdqzLvEA0V4oU95UO0O4juxtjr28KGis6ttdEjgGgTzdHICOfSdjMEMFEWxMR kramos@demimbu.info
|
6
|
+
KRAMOS_KEY
|
7
|
+
|
8
|
+
def test_get_all_keys
|
9
|
+
assert_equal 2, Nuvado::Backend::LocalKey.all.count
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_get_all_keys_filenames
|
13
|
+
assert_equal ["jmendoza.pub", "kramos.pub"], Nuvado::Backend::LocalKey.all.map(&:filename)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_get_keys_content
|
17
|
+
key = Nuvado::Backend::LocalKey.all.last
|
18
|
+
assert_equal KRAMOS_KEY, key.blob
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_find_by_name_finds
|
22
|
+
key = Nuvado::Backend::LocalKey.find_by_name("kramos.pub")
|
23
|
+
assert_equal "kramos.pub", key.filename
|
24
|
+
assert_equal KRAMOS_KEY, key.blob
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_find_by_name_doesnt_find
|
28
|
+
assert_nil Nuvado::Backend::LocalKey.find_by_name("fakename.pub")
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_generate_existing_key_raises_error
|
32
|
+
assert_raises Nuvado::SystemExitException do
|
33
|
+
Nuvado::Backend::LocalKey.generate("kramos")
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_generate_new_key_creates_file
|
38
|
+
key = Nuvado::Backend::LocalKey.generate("gollum")
|
39
|
+
assert_equal "gollum.pub", key.filename
|
40
|
+
key_parts = key.blob.split
|
41
|
+
assert_equal 3, key_parts.length
|
42
|
+
assert "ssh-rsa", key_parts.first
|
43
|
+
File.delete key.filepath
|
44
|
+
File.delete key.filepath.chomp(".pub")
|
45
|
+
end
|
46
|
+
end
|
data/test/keys_test.rb
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestKeys < MiniTest::Unit::TestCase
|
4
|
+
# nuvado keys list --source local
|
5
|
+
def test_list_local_lists_local_ssh_keys
|
6
|
+
stub_stdio
|
7
|
+
Nuvado::Keys.start(["list", "--source", "local"])
|
8
|
+
@output.rewind
|
9
|
+
assert_equal ["jmendoza.pub\n","kramos.pub\n"], @output.readlines
|
10
|
+
end
|
11
|
+
|
12
|
+
# nuvado keys list --source remote
|
13
|
+
def test_list_remote_lists_remote_ssh_keys
|
14
|
+
stub_stdio
|
15
|
+
stub_keys_index
|
16
|
+
Nuvado::Keys.start(["list", "--source", "remote"])
|
17
|
+
@output.rewind
|
18
|
+
assert_equal ["laptop\n","desktop\n"], @output.readlines
|
19
|
+
end
|
20
|
+
|
21
|
+
# nuvado keys add laptop
|
22
|
+
def test_add_without_local_ssh_keys_dont_want_to_create_one
|
23
|
+
stub_stdio
|
24
|
+
stub_keys_index
|
25
|
+
Nuvado::Backend::LocalKey.stubs(:all).returns []
|
26
|
+
@input << "n" << "\n"
|
27
|
+
@input.rewind
|
28
|
+
Nuvado::Keys.start(["add", "laptop"])
|
29
|
+
@output.rewind
|
30
|
+
assert_equal "Could not find a existing public key. Do you want me to create one? [Yn]\n", @output.readline
|
31
|
+
assert_equal "Ok, remember that you'll need one if you want to upload code\n", @output.readline
|
32
|
+
end
|
33
|
+
|
34
|
+
# nuvado keys add aptop
|
35
|
+
def test_add_without_local_ssh_keys_creates_one
|
36
|
+
expected_private_key = File.join(Nuvado::KEY_FOLDER, 'id_rsa')
|
37
|
+
expected_public_key = "#{expected_private_key}.pub"
|
38
|
+
|
39
|
+
stub_successful_key_creation
|
40
|
+
stub_stdio
|
41
|
+
|
42
|
+
Nuvado::Backend::LocalKey.stubs(:all).returns []
|
43
|
+
@input << "Y" << "\n"
|
44
|
+
@input << "laptop" << "\n"
|
45
|
+
@input.rewind
|
46
|
+
Nuvado::Keys.start(["add", "laptop"])
|
47
|
+
@output.rewind
|
48
|
+
|
49
|
+
assert_equal "Could not find a existing public key. Do you want me to create one? [Yn]\n", @output.readline
|
50
|
+
|
51
|
+
assert File.exist?(expected_private_key), "Private key was not created"
|
52
|
+
assert File.exist?(expected_public_key), "Public key was not created"
|
53
|
+
|
54
|
+
key_attributes = {:key => {:title => "laptop", :content => File.read(expected_public_key)}}
|
55
|
+
assert_requested :post, %r{/api/v1/keys.json}, :body => key_attributes
|
56
|
+
ensure
|
57
|
+
File.delete(expected_private_key)
|
58
|
+
File.delete(expected_public_key)
|
59
|
+
end
|
60
|
+
|
61
|
+
# nuvado keys add laptop
|
62
|
+
def test_add_finds_one_local_ssh_key
|
63
|
+
stub_successful_key_creation
|
64
|
+
stub_stdio
|
65
|
+
Nuvado::Backend::LocalKey.stubs(:all_filepaths).returns ["ssh/kramos.pub"]
|
66
|
+
Nuvado::Keys.start(["add", "laptop"])
|
67
|
+
@output.rewind
|
68
|
+
assert_equal "Found a existing key: ssh/kramos.pub\n", @output.readline
|
69
|
+
|
70
|
+
key_attributes = {:key => {:title => "laptop", :content => File.read("ssh/kramos.pub")}}
|
71
|
+
assert_requested :post, %r{/api/v1/keys.json}, :body => key_attributes
|
72
|
+
end
|
73
|
+
|
74
|
+
# nuvado keys add laptop
|
75
|
+
def test_add_finds_many_local_sshkeys
|
76
|
+
stub_successful_key_creation
|
77
|
+
stub_stdio
|
78
|
+
@input << "1" << "\n"
|
79
|
+
@input.rewind
|
80
|
+
command = Nuvado::Keys.start(["add", "laptop"])
|
81
|
+
@output.rewind
|
82
|
+
assert_equal "Found these keys:\n", @output.readline
|
83
|
+
assert_equal "1. jmendoza.pub\n", @output.readline
|
84
|
+
assert_equal "2. kramos.pub\n", @output.readline
|
85
|
+
assert_equal "Please choose the one you want to use:\n", @output.readline
|
86
|
+
|
87
|
+
key_attributes = {:key => {:title => "laptop", :content => File.read("ssh/jmendoza.pub")}}
|
88
|
+
assert_requested :post, %r{/api/v1/keys.json}, :body => key_attributes
|
89
|
+
end
|
90
|
+
|
91
|
+
private
|
92
|
+
def stub_successful_key_creation
|
93
|
+
stub_token_store("THISISAFAKETOKEN")
|
94
|
+
stub_request(:post, %r{/api/v1/keys.json})
|
95
|
+
end
|
96
|
+
|
97
|
+
def stub_keys_index(titles = ["laptop", "desktop"])
|
98
|
+
stub_token_store("THISISAFAKETOKEN")
|
99
|
+
key_attributes = {:keys => titles.each_with_index.map{|title, id| {:title => title, :id => id + 1}}}.to_json
|
100
|
+
stub_request(:get, %r{/api/v1/keys.json}).to_return(:body => key_attributes)
|
101
|
+
end
|
102
|
+
end
|
data/test/login_test.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestLogin < MiniTest::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
stub_token_store
|
6
|
+
end
|
7
|
+
|
8
|
+
# nuvado login
|
9
|
+
def test_run_sucessful_login_returns_token
|
10
|
+
mock_sucessful_login
|
11
|
+
Nuvado::Backend::TokenStore.expects(:write_token).with("auser", "sometoken")
|
12
|
+
Nuvado::Keys.expects(:start).with(["add"])
|
13
|
+
result = Nuvado::Nuvado.start(["login"])
|
14
|
+
assert_equal "sometoken", result
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
def mock_sucessful_login(token = "sometoken", user = "auser", password = "apass")
|
19
|
+
stub_stdio
|
20
|
+
@input << user << "\n"
|
21
|
+
@input << password << "\n"
|
22
|
+
@input.rewind
|
23
|
+
Nuvado::Backend::Session.stubs(:create).returns mock(:authentication_token => token)
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa lyUzyDBZFnX0IPfXRx99A72TYbZIcw9vPGUqu8eec6Ffl66CQITCRLbbQvQwPzx9hidrwUnpFrYGkLgz4LKcCCSxkL43PSiBXWRc7DNIx2NCX4yxyq8KTtFTuJgmOYQdAW3DmYh7JQQD32xTRRD4DIAZ4ge4hzypRVSthzdqxxSFtpGiPNgCye7o6kOx7KH1OUh5gDjAQoLNu4Vwgs67oZdkACB0SYM1q8exHScl8bvqhnVHNJcIEZhgMT6OYGLfWRH6H3hhPMAsTLyzOhUkuCV1t1CoAobAI3Prv9eGnak1PRHFCdRuzLZFD4DDVW7NiDA7WuCkiNGyYLja7wVNONafNlu0PE6PrkHh0O81BXmPynKyCyrd jmendoza@pixoboo.mil
|
data/test/ssh/kramos.pub
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa wr5nIAGausTqiNhOT00B91x3Yd98qhoJe0Gd6f1eSkzPKdSADFESfiqsVOJrtmTsmoP79ZQKVpZxzF75r59LDmTVd9lxHmrvs30iYxJgWhM8QpbDEL7KrPWz9icb3kxVURXTVzSQSyT2zJ0tCi0xGP3g7TJw0XkZpzVjGdTTgUodN0H4xsTJfBZYHkJRG449u9R9awIx4V47x5oNiddAVlYvjQU4gULXwkCZC8Ho0pGoo7xZ2XYW4BWNPjrl24bXH7hVf6lJLy40ZxRhjnMsVwWxBS5tKMBNu9G8m3xkDLbdf93GI7tfNIfAdqzLvEA0V4oU95UO0O4juxtjr28KGis6ttdEjgGgTzdHICOfSdjMEMFEWxMR kramos@demimbu.info
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'nuvado'
|
3
|
+
require 'mocha/setup'
|
4
|
+
require 'webmock/minitest'
|
5
|
+
|
6
|
+
class MiniTest::Unit::TestCase
|
7
|
+
|
8
|
+
private
|
9
|
+
def stub_token_store(token = nil)
|
10
|
+
Nuvado::Backend::TokenStore.stubs(:read_token).returns token
|
11
|
+
Nuvado::Backend::TokenStore.stubs(:write_token)
|
12
|
+
end
|
13
|
+
|
14
|
+
def stub_stdio
|
15
|
+
@input = StringIO.new
|
16
|
+
@output = StringIO.new
|
17
|
+
@terminal = HighLine.new @input, @output
|
18
|
+
HighLine.stubs(:new).returns @terminal
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
silence_warnings do
|
23
|
+
Nuvado::KEY_FOLDER = 'ssh'
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,272 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nuvado
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0.rc1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- robertomiranda
|
8
|
+
- lacides
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-07-12 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ~>
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.3'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.3'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: minitest
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '4.2'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '4.2'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: mocha
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: webmock
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: pry
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: activeresource
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 4.0.0
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 4.0.0
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: highline
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: netrc
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :runtime
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: thor
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - '>='
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :runtime
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: uuid
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - '>='
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :runtime
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - '>='
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: json
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - '>='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
type: :runtime
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
description: Client library and command-line tool to deploy and manage apps on Nuvado.io
|
183
|
+
email:
|
184
|
+
- rjmaltamar@gmail.com
|
185
|
+
- lcharris89@gmail.com
|
186
|
+
executables:
|
187
|
+
- nuvado
|
188
|
+
extensions: []
|
189
|
+
extra_rdoc_files: []
|
190
|
+
files:
|
191
|
+
- .gitignore
|
192
|
+
- Gemfile
|
193
|
+
- LICENSE.txt
|
194
|
+
- README.md
|
195
|
+
- Rakefile
|
196
|
+
- bin/nuvado
|
197
|
+
- lib/nuvado.rb
|
198
|
+
- lib/nuvado/apps.rb
|
199
|
+
- lib/nuvado/backend.rb
|
200
|
+
- lib/nuvado/backend/app.rb
|
201
|
+
- lib/nuvado/backend/authenticated_resource.rb
|
202
|
+
- lib/nuvado/backend/basic_resource.rb
|
203
|
+
- lib/nuvado/backend/build.rb
|
204
|
+
- lib/nuvado/backend/git.rb
|
205
|
+
- lib/nuvado/backend/key.rb
|
206
|
+
- lib/nuvado/backend/local_key.rb
|
207
|
+
- lib/nuvado/backend/session.rb
|
208
|
+
- lib/nuvado/backend/token_store.rb
|
209
|
+
- lib/nuvado/backend/user.rb
|
210
|
+
- lib/nuvado/base_command.rb
|
211
|
+
- lib/nuvado/exceptions.rb
|
212
|
+
- lib/nuvado/generate.rb
|
213
|
+
- lib/nuvado/keys.rb
|
214
|
+
- lib/nuvado/nuvado.rb
|
215
|
+
- lib/nuvado/os.rb
|
216
|
+
- lib/nuvado/templates/empty_project/%product_name%.xcodeproj/project.pbxproj.tt
|
217
|
+
- lib/nuvado/templates/empty_project/%product_name%.xcodeproj/project.xcworkspace/contents.xcworkspacedata.tt
|
218
|
+
- lib/nuvado/templates/empty_project/%product_name%/%product_name%-Info.plist.tt
|
219
|
+
- lib/nuvado/templates/empty_project/%product_name%/%product_name%-Prefix.pch.tt
|
220
|
+
- lib/nuvado/templates/empty_project/%product_name%/AppDelegate.h.tt
|
221
|
+
- lib/nuvado/templates/empty_project/%product_name%/AppDelegate.m.tt
|
222
|
+
- lib/nuvado/templates/empty_project/%product_name%/Default-568h@2x.png
|
223
|
+
- lib/nuvado/templates/empty_project/%product_name%/Default.png
|
224
|
+
- lib/nuvado/templates/empty_project/%product_name%/Default@2x.png
|
225
|
+
- lib/nuvado/templates/empty_project/%product_name%/en.lproj/InfoPlist.strings
|
226
|
+
- lib/nuvado/templates/empty_project/%product_name%/main.m.tt
|
227
|
+
- lib/nuvado/templates/empty_project/%product_name%Tests/%product_name%Tests-Info.plist.tt
|
228
|
+
- lib/nuvado/templates/empty_project/%product_name%Tests/%product_name%Tests.h.tt
|
229
|
+
- lib/nuvado/templates/empty_project/%product_name%Tests/%product_name%Tests.m.tt
|
230
|
+
- lib/nuvado/templates/empty_project/%product_name%Tests/en.lproj/InfoPlist.strings
|
231
|
+
- lib/nuvado/version.rb
|
232
|
+
- nuvado.gemspec
|
233
|
+
- post_install.sh
|
234
|
+
- test/apps_test.rb
|
235
|
+
- test/backend_local_key_test.rb
|
236
|
+
- test/keys_test.rb
|
237
|
+
- test/login_test.rb
|
238
|
+
- test/ssh/jmendoza.pub
|
239
|
+
- test/ssh/kramos.pub
|
240
|
+
- test/test_helper.rb
|
241
|
+
homepage: http://nuvado.io
|
242
|
+
licenses:
|
243
|
+
- MIT
|
244
|
+
metadata: {}
|
245
|
+
post_install_message:
|
246
|
+
rdoc_options: []
|
247
|
+
require_paths:
|
248
|
+
- lib
|
249
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
250
|
+
requirements:
|
251
|
+
- - '>='
|
252
|
+
- !ruby/object:Gem::Version
|
253
|
+
version: '0'
|
254
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
|
+
requirements:
|
256
|
+
- - '>'
|
257
|
+
- !ruby/object:Gem::Version
|
258
|
+
version: 1.3.1
|
259
|
+
requirements: []
|
260
|
+
rubyforge_project:
|
261
|
+
rubygems_version: 2.0.2
|
262
|
+
signing_key:
|
263
|
+
specification_version: 4
|
264
|
+
summary: Client library and CLI to deploy apps on Nuvado.io
|
265
|
+
test_files:
|
266
|
+
- test/apps_test.rb
|
267
|
+
- test/backend_local_key_test.rb
|
268
|
+
- test/keys_test.rb
|
269
|
+
- test/login_test.rb
|
270
|
+
- test/ssh/jmendoza.pub
|
271
|
+
- test/ssh/kramos.pub
|
272
|
+
- test/test_helper.rb
|