shelly 0.0.21.pre → 0.0.21.pre2
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/.travis.yml +2 -1
- data/bin/shelly +3 -2
- data/lib/shelly.rb +1 -5
- data/lib/shelly/app.rb +2 -1
- data/lib/shelly/cli/command.rb +13 -0
- data/lib/shelly/cli/main.rb +10 -11
- data/lib/shelly/cli/runner.rb +26 -0
- data/lib/shelly/cli/user.rb +17 -12
- data/lib/shelly/cloudfile.rb +2 -2
- data/lib/shelly/helpers.rb +1 -0
- data/lib/shelly/{base.rb → model.rb} +1 -1
- data/lib/shelly/user.rb +1 -1
- data/lib/shelly/version.rb +1 -1
- data/shelly.gemspec +1 -1
- data/spec/shelly/cli/main_spec.rb +9 -6
- data/spec/shelly/cli/runner_spec.rb +57 -0
- data/spec/shelly/cli/user_spec.rb +3 -3
- data/spec/shelly/{base_spec.rb → model_spec.rb} +2 -2
- metadata +36 -32
data/.travis.yml
CHANGED
data/bin/shelly
CHANGED
data/lib/shelly.rb
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
require "rubygems"
|
|
2
|
-
require "thor"
|
|
3
2
|
require "core_ext/object"
|
|
4
3
|
require "core_ext/hash"
|
|
5
4
|
require "shelly/helpers"
|
|
6
|
-
require "shelly/
|
|
7
|
-
require "thor/options"
|
|
8
|
-
require "thor/arguments"
|
|
5
|
+
require "shelly/model"
|
|
9
6
|
|
|
10
7
|
module Shelly
|
|
11
8
|
autoload :App, "shelly/app"
|
|
@@ -14,4 +11,3 @@ module Shelly
|
|
|
14
11
|
autoload :User, "shelly/user"
|
|
15
12
|
autoload :VERSION, "shelly/version"
|
|
16
13
|
end
|
|
17
|
-
|
data/lib/shelly/app.rb
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require "shelly"
|
|
2
|
+
require "thor"
|
|
3
|
+
require "thor/group"
|
|
4
|
+
require "thor/options"
|
|
5
|
+
require "thor/arguments"
|
|
6
|
+
|
|
7
|
+
module Shelly
|
|
8
|
+
module CLI
|
|
9
|
+
class Command < Thor
|
|
10
|
+
class_option :debug, :type => :boolean, :desc => "Show debug information"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
data/lib/shelly/cli/main.rb
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
require "shelly"
|
|
2
|
-
require "thor/group"
|
|
1
|
+
require "shelly/cli/command"
|
|
3
2
|
require "shelly/cli/user"
|
|
4
3
|
|
|
5
4
|
module Shelly
|
|
6
5
|
module CLI
|
|
7
|
-
class Main <
|
|
6
|
+
class Main < Command
|
|
8
7
|
include Thor::Actions
|
|
9
8
|
include Helpers
|
|
10
|
-
register(User, "user", "user <command>", "Manages users using this
|
|
9
|
+
register(User, "user", "user <command>", "Manages users using this cloud")
|
|
11
10
|
check_unknown_options!
|
|
12
11
|
|
|
13
12
|
map %w(-v --version) => :version
|
|
@@ -50,7 +49,7 @@ module Shelly
|
|
|
50
49
|
say "Login successful"
|
|
51
50
|
say "Uploading your public SSH key"
|
|
52
51
|
user.upload_ssh_key
|
|
53
|
-
say "You have following
|
|
52
|
+
say "You have following clouds available:", :green
|
|
54
53
|
user.apps.each do |app|
|
|
55
54
|
say " #{app["code_name"]}"
|
|
56
55
|
end
|
|
@@ -68,14 +67,14 @@ module Shelly
|
|
|
68
67
|
end
|
|
69
68
|
|
|
70
69
|
method_option "code-name", :type => :string, :aliases => "-c",
|
|
71
|
-
:desc => "Unique
|
|
70
|
+
:desc => "Unique code-name of your cloud"
|
|
72
71
|
method_option :databases, :type => :array, :aliases => "-d",
|
|
73
|
-
:banner =>
|
|
72
|
+
:banner => Shelly::App::DATABASE_KINDS.join(', '),
|
|
74
73
|
:desc => "Array of databases of your choice"
|
|
75
74
|
method_option :domains, :type => :array,
|
|
76
75
|
:banner => "CODE-NAME.shellyapp.com, YOUR-DOMAIN.com",
|
|
77
76
|
:desc => "Array of your domains"
|
|
78
|
-
desc "add", "Adds new
|
|
77
|
+
desc "add", "Adds new cloud to Shelly Cloud"
|
|
79
78
|
def add
|
|
80
79
|
say_error "Must be run inside your project git repository" unless App.inside_git_repository?
|
|
81
80
|
check_options(options)
|
|
@@ -99,9 +98,9 @@ module Shelly
|
|
|
99
98
|
|
|
100
99
|
rescue Client::APIError => e
|
|
101
100
|
if e.validation?
|
|
102
|
-
e.each_error { |error| say_error
|
|
101
|
+
e.each_error { |error| say_error error, :with_exit => false }
|
|
103
102
|
say_new_line
|
|
104
|
-
say_error "Fix erros in the below command and type it again to create your
|
|
103
|
+
say_error "Fix erros in the below command and type it again to create your cloud" , :with_exit => false
|
|
105
104
|
say_error "shelly add --code-name=#{@app.code_name} --databases=#{@app.databases.join} --domains=#{@app.code_name}.shellyapp.com"
|
|
106
105
|
end
|
|
107
106
|
end
|
|
@@ -144,7 +143,7 @@ module Shelly
|
|
|
144
143
|
|
|
145
144
|
def ask_for_code_name
|
|
146
145
|
default_code_name = "#{Shelly::App.guess_code_name}-production"
|
|
147
|
-
code_name = ask("
|
|
146
|
+
code_name = ask("Cloud code name (#{default_code_name} - default):")
|
|
148
147
|
code_name.blank? ? default_code_name : code_name
|
|
149
148
|
end
|
|
150
149
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require "shelly/cli/main"
|
|
2
|
+
|
|
3
|
+
module Shelly
|
|
4
|
+
module CLI
|
|
5
|
+
class Runner < Thor::Shell::Basic
|
|
6
|
+
include Helpers
|
|
7
|
+
attr_accessor :args
|
|
8
|
+
|
|
9
|
+
def initialize(args)
|
|
10
|
+
super()
|
|
11
|
+
@args = args
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def debug?
|
|
15
|
+
args.include?("--debug")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def start
|
|
19
|
+
Shelly::CLI::Main.start(args)
|
|
20
|
+
rescue => e
|
|
21
|
+
raise e if debug?
|
|
22
|
+
say_error "Unknown error, to see debug information run command with --debug"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
data/lib/shelly/cli/user.rb
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
require "yaml"
|
|
2
|
-
require "shelly/user"
|
|
3
|
-
require "shelly/cloudfile"
|
|
4
|
-
|
|
5
1
|
module Shelly
|
|
6
2
|
module CLI
|
|
7
|
-
class User <
|
|
3
|
+
class User < Command
|
|
8
4
|
namespace :user
|
|
9
5
|
include Helpers
|
|
10
6
|
|
|
@@ -33,14 +29,21 @@ module Shelly
|
|
|
33
29
|
@cloudfile, @user = check_clouds
|
|
34
30
|
user_email = email || ask_for_email({:guess_email => false})
|
|
35
31
|
@cloudfile.clouds.each do |cloud|
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
begin
|
|
33
|
+
@user.send_invitation(cloud, user_email)
|
|
34
|
+
rescue Client::APIError => e
|
|
35
|
+
if e.validation? && e.errors.include?(["email", "#{email} has already been taken"])
|
|
36
|
+
say_error "User #{email} is already in the cloud #{cloud}", :with_exit => false
|
|
37
|
+
elsif e.validation?
|
|
38
|
+
e.each_error { |error| say_error error, :with_exit => false }
|
|
39
|
+
exit 1
|
|
40
|
+
end
|
|
41
|
+
else
|
|
42
|
+
say "Sending invitation to #{user_email} to work on #{cloud}", :green
|
|
43
|
+
end
|
|
38
44
|
end
|
|
39
45
|
rescue Client::APIError => e
|
|
40
|
-
if e.
|
|
41
|
-
e.each_error { |error| say_error error =~ /already in the project/ ? error.gsub("Email", "User") : error, :with_exit => false }
|
|
42
|
-
exit 1
|
|
43
|
-
elsif e.unauthorized?
|
|
46
|
+
if e.unauthorized?
|
|
44
47
|
e.errors.each { |error| say_error error, :with_exit => false}
|
|
45
48
|
exit 1
|
|
46
49
|
end
|
|
@@ -52,7 +55,9 @@ module Shelly
|
|
|
52
55
|
@user = Shelly::User.new
|
|
53
56
|
user_apps = @user.apps.map { |cloud| cloud['code_name'] }
|
|
54
57
|
unless @cloudfile.clouds.all? { |cloud| user_apps.include?(cloud) }
|
|
55
|
-
errors = (@cloudfile.clouds - user_apps).map
|
|
58
|
+
errors = (@cloudfile.clouds - user_apps).map do |cloud|
|
|
59
|
+
"You have no access to '#{cloud}' cloud defined in Cloudfile"
|
|
60
|
+
end
|
|
56
61
|
raise Shelly::Client::APIError.new({:message => "Unauthorized",
|
|
57
62
|
:errors => errors}.to_json)
|
|
58
63
|
end
|
data/lib/shelly/cloudfile.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Shelly
|
|
2
|
-
class Cloudfile <
|
|
2
|
+
class Cloudfile < Model
|
|
3
3
|
attr_accessor :content
|
|
4
4
|
|
|
5
5
|
def self.present?
|
|
@@ -39,7 +39,7 @@ module Shelly
|
|
|
39
39
|
response = shelly.apps_users(clouds)
|
|
40
40
|
response.inject({}) do |result, app|
|
|
41
41
|
result[app['code_name']] = app['users'].map do |user|
|
|
42
|
-
"#{user['email']} (#{user['name']})"
|
|
42
|
+
user['name'] ? "#{user['email']} (#{user['name']})" : user['email']
|
|
43
43
|
end
|
|
44
44
|
result
|
|
45
45
|
end
|
data/lib/shelly/helpers.rb
CHANGED
data/lib/shelly/user.rb
CHANGED
data/lib/shelly/version.rb
CHANGED
data/shelly.gemspec
CHANGED
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
|
22
22
|
end
|
|
23
23
|
s.add_development_dependency "fakefs"
|
|
24
24
|
s.add_development_dependency "fakeweb"
|
|
25
|
-
s.add_runtime_dependency "thor"
|
|
25
|
+
s.add_runtime_dependency "wijet-thor", "~> 0.14.7"
|
|
26
26
|
s.add_runtime_dependency "rest-client"
|
|
27
27
|
s.add_runtime_dependency "json"
|
|
28
28
|
s.add_runtime_dependency "wijet-launchy"
|
|
@@ -23,12 +23,15 @@ describe Shelly::CLI::Main do
|
|
|
23
23
|
it "should display available commands" do
|
|
24
24
|
expected = <<-OUT
|
|
25
25
|
Tasks:
|
|
26
|
-
shelly add # Adds new
|
|
26
|
+
shelly add # Adds new cloud to Shelly Cloud
|
|
27
27
|
shelly help [TASK] # Describe available tasks or one specific task
|
|
28
28
|
shelly login [EMAIL] # Logs user in to Shelly Cloud
|
|
29
29
|
shelly register [EMAIL] # Registers new user account on Shelly Cloud
|
|
30
|
-
shelly user <command> # Manages users using this
|
|
30
|
+
shelly user <command> # Manages users using this cloud
|
|
31
31
|
shelly version # Displays shelly version
|
|
32
|
+
|
|
33
|
+
Options:
|
|
34
|
+
[--debug] # Show debug information
|
|
32
35
|
OUT
|
|
33
36
|
out = IO.popen("bin/shelly").read.strip
|
|
34
37
|
out.should == expected.strip
|
|
@@ -189,7 +192,7 @@ OUT
|
|
|
189
192
|
end
|
|
190
193
|
|
|
191
194
|
it "should display list of applications to which user has access" do
|
|
192
|
-
$stdout.should_receive(:puts).with("\e[32mYou have following
|
|
195
|
+
$stdout.should_receive(:puts).with("\e[32mYou have following clouds available:\e[0m")
|
|
193
196
|
$stdout.should_receive(:puts).with(" abc")
|
|
194
197
|
$stdout.should_receive(:puts).with(" fooo")
|
|
195
198
|
fake_stdin(["megan@example.com", "secret"]) do
|
|
@@ -277,7 +280,7 @@ OUT
|
|
|
277
280
|
end
|
|
278
281
|
|
|
279
282
|
it "should use code name provided by user" do
|
|
280
|
-
$stdout.should_receive(:print).with("
|
|
283
|
+
$stdout.should_receive(:print).with("Cloud code name (foo-production - default): ")
|
|
281
284
|
@app.should_receive(:code_name=).with("mycodename")
|
|
282
285
|
fake_stdin(["mycodename", ""]) do
|
|
283
286
|
@main.add
|
|
@@ -286,7 +289,7 @@ OUT
|
|
|
286
289
|
|
|
287
290
|
context "when user provided empty code name" do
|
|
288
291
|
it "should use 'current_dirname-purpose' as default" do
|
|
289
|
-
$stdout.should_receive(:print).with("
|
|
292
|
+
$stdout.should_receive(:print).with("Cloud code name (foo-production - default): ")
|
|
290
293
|
@app.should_receive(:code_name=).with("foo-production")
|
|
291
294
|
fake_stdin(["", ""]) do
|
|
292
295
|
@main.add
|
|
@@ -331,7 +334,7 @@ OUT
|
|
|
331
334
|
exception = Shelly::Client::APIError.new(response.to_json)
|
|
332
335
|
@app.should_receive(:create).and_raise(exception)
|
|
333
336
|
$stdout.should_receive(:puts).with("\e[31mCode name has been already taken\e[0m")
|
|
334
|
-
$stdout.should_receive(:puts).with("\e[31mFix erros in the below command and type it again to create your
|
|
337
|
+
$stdout.should_receive(:puts).with("\e[31mFix erros in the below command and type it again to create your cloud\e[0m")
|
|
335
338
|
$stdout.should_receive(:puts).with("\e[31mshelly add --code-name=foo-production --databases=postgresql --domains=foo-production.shellyapp.com\e[0m")
|
|
336
339
|
lambda {
|
|
337
340
|
fake_stdin(["", ""]) do
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "shelly/cli/runner"
|
|
3
|
+
|
|
4
|
+
describe Shelly::CLI::Runner do
|
|
5
|
+
before do
|
|
6
|
+
@runner = Shelly::CLI::Runner.new(%w(version --debug))
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe "#initialize" do
|
|
10
|
+
it "should initialize parent class" do
|
|
11
|
+
@runner.should be_kind_of(Thor::Shell::Basic)
|
|
12
|
+
@runner.should respond_to(:say) # if responds to parent class method
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should assign args" do
|
|
16
|
+
@runner.args.should == %w(version --debug)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe "#debug?" do
|
|
21
|
+
it "should be true if args include --debug option" do
|
|
22
|
+
@runner.should be_debug
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should be failse if args doesn't include --debug option" do
|
|
26
|
+
runner = Shelly::CLI::Runner.new(%w(version))
|
|
27
|
+
runner.should_not be_debug
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
describe "#start" do
|
|
32
|
+
it "should start main CLI with given args" do
|
|
33
|
+
Shelly::CLI::Main.should_receive(:start).with(%w(version --debug))
|
|
34
|
+
@runner.start
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
context "with --debug option (debug mode)" do
|
|
38
|
+
it "should re-raise caught exception to the console" do
|
|
39
|
+
Shelly::CLI::Main.stub(:start).and_raise(RuntimeError.new)
|
|
40
|
+
lambda {
|
|
41
|
+
@runner.start
|
|
42
|
+
}.should raise_error(RuntimeError)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
context "without --debug option (normal mode)" do
|
|
47
|
+
it "should rescue exception and display generic error message" do
|
|
48
|
+
Shelly::CLI::Main.stub(:start).and_raise(RuntimeError.new)
|
|
49
|
+
runner = Shelly::CLI::Runner.new(%w(version))
|
|
50
|
+
$stdout.should_receive(:puts).with("Unknown error, to see debug information run command with --debug")
|
|
51
|
+
lambda {
|
|
52
|
+
runner.start
|
|
53
|
+
}.should raise_error(SystemExit)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -16,7 +16,7 @@ describe Shelly::CLI::User do
|
|
|
16
16
|
it "should show help" do
|
|
17
17
|
$stdout.should_receive(:puts).with("Tasks:")
|
|
18
18
|
$stdout.should_receive(:puts).with(/add \[EMAIL\]\s+# Add new developer to clouds defined in Cloudfile/)
|
|
19
|
-
|
|
19
|
+
$stdout.should_receive(:puts).with(/list\s+# List users with access to clouds defined in Cloudfile/)
|
|
20
20
|
@cli_user.help
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -56,7 +56,7 @@ describe Shelly::CLI::User do
|
|
|
56
56
|
@client.should_receive(:apps).and_return([{"code_name" => "foo-production"}, {"code_name" => "foo-staging"}])
|
|
57
57
|
@client.stub(:apps_users).and_return(response)
|
|
58
58
|
$stdout.should_receive(:puts).with("Cloud foo-production:")
|
|
59
|
-
$stdout.should_receive(:puts).with(" user@example.com
|
|
59
|
+
$stdout.should_receive(:puts).with(" user@example.com")
|
|
60
60
|
$stdout.should_receive(:puts).with("Cloud foo-staging:")
|
|
61
61
|
$stdout.should_receive(:puts).with(" user2@example.com (username2)")
|
|
62
62
|
@cli_user.list
|
|
@@ -64,7 +64,7 @@ describe Shelly::CLI::User do
|
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
def response
|
|
67
|
-
[{'code_name' => 'foo-production', 'users' => [{'
|
|
67
|
+
[{'code_name' => 'foo-production', 'users' => [{'email' => 'user@example.com'}]},
|
|
68
68
|
{'code_name' => 'foo-staging', 'users' => [{'name' => 'username2','email' => 'user2@example.com'}]}]
|
|
69
69
|
end
|
|
70
70
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
describe Shelly::
|
|
3
|
+
describe Shelly::Model do
|
|
4
4
|
before do
|
|
5
5
|
config_dir = File.expand_path("~/.shelly")
|
|
6
6
|
FileUtils.mkdir_p(config_dir)
|
|
@@ -9,7 +9,7 @@ describe Shelly::Base do
|
|
|
9
9
|
describe "#current_user" do
|
|
10
10
|
it "should return user with loaded credentials" do
|
|
11
11
|
File.open(File.join("~/.shelly/credentials"), "w") { |f| f << "superman@example.com\nthe-kal-el" }
|
|
12
|
-
base = Shelly::
|
|
12
|
+
base = Shelly::Model.new
|
|
13
13
|
user = base.current_user
|
|
14
14
|
user.email.should == "superman@example.com"
|
|
15
15
|
user.password.should == "the-kal-el"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shelly
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.21.
|
|
4
|
+
version: 0.0.21.pre2
|
|
5
5
|
prerelease: 7
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2011-11-
|
|
12
|
+
date: 2011-11-21 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &2156497740 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *2156497740
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rake
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &2156497220 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '0'
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *2156497220
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: guard
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &2156496760 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :development
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *2156496760
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: guard-rspec
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &2156496320 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ! '>='
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: '0'
|
|
55
55
|
type: :development
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *2156496320
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: growl_notify
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &2156495760 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ! '>='
|
|
@@ -65,10 +65,10 @@ dependencies:
|
|
|
65
65
|
version: '0'
|
|
66
66
|
type: :development
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *2156495760
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: rb-fsevent
|
|
71
|
-
requirement: &
|
|
71
|
+
requirement: &2156495020 !ruby/object:Gem::Requirement
|
|
72
72
|
none: false
|
|
73
73
|
requirements:
|
|
74
74
|
- - ! '>='
|
|
@@ -76,10 +76,10 @@ dependencies:
|
|
|
76
76
|
version: '0'
|
|
77
77
|
type: :development
|
|
78
78
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *2156495020
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: fakefs
|
|
82
|
-
requirement: &
|
|
82
|
+
requirement: &2156494560 !ruby/object:Gem::Requirement
|
|
83
83
|
none: false
|
|
84
84
|
requirements:
|
|
85
85
|
- - ! '>='
|
|
@@ -87,10 +87,10 @@ dependencies:
|
|
|
87
87
|
version: '0'
|
|
88
88
|
type: :development
|
|
89
89
|
prerelease: false
|
|
90
|
-
version_requirements: *
|
|
90
|
+
version_requirements: *2156494560
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: fakeweb
|
|
93
|
-
requirement: &
|
|
93
|
+
requirement: &2156493960 !ruby/object:Gem::Requirement
|
|
94
94
|
none: false
|
|
95
95
|
requirements:
|
|
96
96
|
- - ! '>='
|
|
@@ -98,21 +98,21 @@ dependencies:
|
|
|
98
98
|
version: '0'
|
|
99
99
|
type: :development
|
|
100
100
|
prerelease: false
|
|
101
|
-
version_requirements: *
|
|
101
|
+
version_requirements: *2156493960
|
|
102
102
|
- !ruby/object:Gem::Dependency
|
|
103
|
-
name: thor
|
|
104
|
-
requirement: &
|
|
103
|
+
name: wijet-thor
|
|
104
|
+
requirement: &2156493440 !ruby/object:Gem::Requirement
|
|
105
105
|
none: false
|
|
106
106
|
requirements:
|
|
107
|
-
- -
|
|
107
|
+
- - ~>
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version:
|
|
109
|
+
version: 0.14.7
|
|
110
110
|
type: :runtime
|
|
111
111
|
prerelease: false
|
|
112
|
-
version_requirements: *
|
|
112
|
+
version_requirements: *2156493440
|
|
113
113
|
- !ruby/object:Gem::Dependency
|
|
114
114
|
name: rest-client
|
|
115
|
-
requirement: &
|
|
115
|
+
requirement: &2156493000 !ruby/object:Gem::Requirement
|
|
116
116
|
none: false
|
|
117
117
|
requirements:
|
|
118
118
|
- - ! '>='
|
|
@@ -120,10 +120,10 @@ dependencies:
|
|
|
120
120
|
version: '0'
|
|
121
121
|
type: :runtime
|
|
122
122
|
prerelease: false
|
|
123
|
-
version_requirements: *
|
|
123
|
+
version_requirements: *2156493000
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: json
|
|
126
|
-
requirement: &
|
|
126
|
+
requirement: &2156492380 !ruby/object:Gem::Requirement
|
|
127
127
|
none: false
|
|
128
128
|
requirements:
|
|
129
129
|
- - ! '>='
|
|
@@ -131,10 +131,10 @@ dependencies:
|
|
|
131
131
|
version: '0'
|
|
132
132
|
type: :runtime
|
|
133
133
|
prerelease: false
|
|
134
|
-
version_requirements: *
|
|
134
|
+
version_requirements: *2156492380
|
|
135
135
|
- !ruby/object:Gem::Dependency
|
|
136
136
|
name: wijet-launchy
|
|
137
|
-
requirement: &
|
|
137
|
+
requirement: &2156491660 !ruby/object:Gem::Requirement
|
|
138
138
|
none: false
|
|
139
139
|
requirements:
|
|
140
140
|
- - ! '>='
|
|
@@ -142,7 +142,7 @@ dependencies:
|
|
|
142
142
|
version: '0'
|
|
143
143
|
type: :runtime
|
|
144
144
|
prerelease: false
|
|
145
|
-
version_requirements: *
|
|
145
|
+
version_requirements: *2156491660
|
|
146
146
|
description: Tool for managing applications and clouds at shellycloud.com
|
|
147
147
|
email:
|
|
148
148
|
- support@shellycloud.com
|
|
@@ -162,12 +162,14 @@ files:
|
|
|
162
162
|
- lib/core_ext/object.rb
|
|
163
163
|
- lib/shelly.rb
|
|
164
164
|
- lib/shelly/app.rb
|
|
165
|
-
- lib/shelly/
|
|
165
|
+
- lib/shelly/cli/command.rb
|
|
166
166
|
- lib/shelly/cli/main.rb
|
|
167
|
+
- lib/shelly/cli/runner.rb
|
|
167
168
|
- lib/shelly/cli/user.rb
|
|
168
169
|
- lib/shelly/client.rb
|
|
169
170
|
- lib/shelly/cloudfile.rb
|
|
170
171
|
- lib/shelly/helpers.rb
|
|
172
|
+
- lib/shelly/model.rb
|
|
171
173
|
- lib/shelly/templates/Cloudfile.erb
|
|
172
174
|
- lib/shelly/user.rb
|
|
173
175
|
- lib/shelly/version.rb
|
|
@@ -177,11 +179,12 @@ files:
|
|
|
177
179
|
- spec/helpers.rb
|
|
178
180
|
- spec/input_faker.rb
|
|
179
181
|
- spec/shelly/app_spec.rb
|
|
180
|
-
- spec/shelly/base_spec.rb
|
|
181
182
|
- spec/shelly/cli/main_spec.rb
|
|
183
|
+
- spec/shelly/cli/runner_spec.rb
|
|
182
184
|
- spec/shelly/cli/user_spec.rb
|
|
183
185
|
- spec/shelly/client_spec.rb
|
|
184
186
|
- spec/shelly/cloudfile_spec.rb
|
|
187
|
+
- spec/shelly/model_spec.rb
|
|
185
188
|
- spec/shelly/user_spec.rb
|
|
186
189
|
- spec/spec_helper.rb
|
|
187
190
|
- spec/thor/options_spec.rb
|
|
@@ -213,11 +216,12 @@ test_files:
|
|
|
213
216
|
- spec/helpers.rb
|
|
214
217
|
- spec/input_faker.rb
|
|
215
218
|
- spec/shelly/app_spec.rb
|
|
216
|
-
- spec/shelly/base_spec.rb
|
|
217
219
|
- spec/shelly/cli/main_spec.rb
|
|
220
|
+
- spec/shelly/cli/runner_spec.rb
|
|
218
221
|
- spec/shelly/cli/user_spec.rb
|
|
219
222
|
- spec/shelly/client_spec.rb
|
|
220
223
|
- spec/shelly/cloudfile_spec.rb
|
|
224
|
+
- spec/shelly/model_spec.rb
|
|
221
225
|
- spec/shelly/user_spec.rb
|
|
222
226
|
- spec/spec_helper.rb
|
|
223
227
|
- spec/thor/options_spec.rb
|