hugo 0.1.0
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/.DS_Store +0 -0
- data/.gitignore +12 -0
- data/Gemfile +7 -0
- data/Rakefile +17 -0
- data/VERSION +1 -0
- data/config/hugo.yml.example +0 -0
- data/example/myhugo.rb +25 -0
- data/lib/.DS_Store +0 -0
- data/lib/hugo.old +123 -0
- data/lib/hugo.rb +39 -0
- data/lib/hugo/.DS_Store +0 -0
- data/lib/hugo/app.rb +230 -0
- data/lib/hugo/aws/ec2.rb +112 -0
- data/lib/hugo/aws/elb.rb +101 -0
- data/lib/hugo/aws/rds.rb +120 -0
- data/lib/hugo/balancer.rb +59 -0
- data/lib/hugo/cloud.rb +113 -0
- data/lib/hugo/database.rb +58 -0
- data/lib/hugo/mixin/params_validate.rb +197 -0
- data/readme.md +83 -0
- data/spec/.DS_Store +0 -0
- data/spec/lib/hugo/app_spec.rb +64 -0
- data/spec/lib/hugo/aws/ec2_spec.rb +55 -0
- data/spec/lib/hugo/aws/elb_spec.rb +36 -0
- data/spec/lib/hugo/aws/rds_spec.rb +44 -0
- data/spec/lib/hugo/balancer_spec.rb +37 -0
- data/spec/lib/hugo/database_spec.rb +66 -0
- data/spec/lib/hugo_spec.rb +54 -0
- data/spec/spec.opts +4 -0
- data/spec/spec_helper.rb +116 -0
- data/vendor/gems/cache/amazon-ec2-0.7.9.gem +0 -0
- data/vendor/gems/cache/json-1.2.0.gem +0 -0
- data/vendor/gems/cache/net-ssh-2.0.17.gem +0 -0
- data/vendor/gems/cache/rspec-1.2.9.gem +0 -0
- data/vendor/gems/cache/xml-simple-1.0.12.gem +0 -0
- metadata +110 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
describe Hugo::Aws::Elb do
|
4
|
+
before(:each) do
|
5
|
+
mock_ec2
|
6
|
+
mock_elb
|
7
|
+
mock_rds
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should create a new instance" do
|
12
|
+
@hugo_elb = Hugo::Aws::Elb.new(:name => "myserver").should be_true
|
13
|
+
@hugo_elb.save.should be_true
|
14
|
+
end
|
15
|
+
#
|
16
|
+
it "should return all" do
|
17
|
+
Hugo::Aws::Elb.all.length.should == 1
|
18
|
+
end
|
19
|
+
# #
|
20
|
+
it "should find elb instance" do
|
21
|
+
Hugo::Aws::Elb.find('test').should_not be_nil
|
22
|
+
end
|
23
|
+
#
|
24
|
+
it "should delete elb instance" do
|
25
|
+
Hugo::Aws::Elb.find('test').destroy.should_not be_nil
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should add ec2 intance" do
|
29
|
+
Hugo::Aws::Elb.find('test').add('i-12345678').instances.length.should == 1
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should remove ec2 instance" do
|
33
|
+
Hugo::Aws::Elb.find('test').remove('i-12345678').instances.length.should == 0
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
2
|
+
|
3
|
+
describe Hugo::Aws::Rds do
|
4
|
+
before(:each) do
|
5
|
+
mock_ec2
|
6
|
+
mock_elb
|
7
|
+
mock_rds
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should create a new instance" do
|
11
|
+
@hugo_rds = Hugo::Aws::Rds.new(:name => "myserver", :db => "mydb", :user => "user", :password => "password").should be_true
|
12
|
+
@hugo_rds.save.should be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return all" do
|
16
|
+
Hugo::Aws::Rds.all.length.should == 1
|
17
|
+
end
|
18
|
+
#
|
19
|
+
it "should find rds instance" do
|
20
|
+
Hugo::Aws::Rds.find('test').should_not be_nil
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should delete rds instance" do
|
24
|
+
Hugo::Aws::Rds.find('test').destroy
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should provide uri" do
|
28
|
+
Hugo::Aws::Rds.find('test').uri.should_not be_nil
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should find or create db security group" do
|
32
|
+
@rds = Hugo::Aws::Rds.find('i-12345678')
|
33
|
+
@rds.find_or_create_db_security_group('test', 'test description').should_not be_empty
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should destroy a db security group" do
|
37
|
+
Hugo::Aws::Rds.find('i-12345678').destroy_db_security_group('test').should be_true
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should authorize a ec2 security group" do
|
41
|
+
@rds = Hugo::Aws::Rds.find('i-12345678')
|
42
|
+
@rds.authorize_security_group('test', 'test', '12334').should_not be_empty
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe "Hugo Balancer" do
|
4
|
+
before(:each) do
|
5
|
+
mocks
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should be valid" do
|
9
|
+
block = lambda do
|
10
|
+
cloud "my_cloud" do
|
11
|
+
balancer
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
lambda do
|
16
|
+
Hugo &block
|
17
|
+
end.should_not raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should raise error for balancer block not wrapped in cloud block" do
|
21
|
+
block = lambda do
|
22
|
+
balancer "error" do end
|
23
|
+
end
|
24
|
+
|
25
|
+
lambda do
|
26
|
+
Hugo &block
|
27
|
+
end.should raise_error
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should find or create balancer" do
|
31
|
+
lb = Hugo::Balancer.instance
|
32
|
+
lb.name "myserver"
|
33
|
+
lb.deploy.should be_a_kind_of(Hugo::Aws::Elb)
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe "Hugo Database" do
|
4
|
+
before(:each) do
|
5
|
+
mocks
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should be valid" do
|
9
|
+
|
10
|
+
block = lambda do
|
11
|
+
cloud "my_cloud" do
|
12
|
+
database "testapp" do
|
13
|
+
server "serverx"
|
14
|
+
user "test_user"
|
15
|
+
password "test_password"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
lambda do
|
21
|
+
Hugo &block
|
22
|
+
end.should_not raise_error
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should raise error for database block not wrapped in cloud block" do
|
26
|
+
block = lambda do
|
27
|
+
database "mydb" do end
|
28
|
+
end
|
29
|
+
|
30
|
+
lambda do
|
31
|
+
Hugo &block
|
32
|
+
end.should raise_error
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should not raise error for database block wrapped in cloud block" do
|
36
|
+
block = lambda do
|
37
|
+
cloud "mycloud" do
|
38
|
+
database "mydb" do end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
lambda do
|
43
|
+
Hugo &block
|
44
|
+
end.should be_true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe Hugo::Database do
|
49
|
+
before(:each) do
|
50
|
+
mocks
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
it "should create a new rds instance" do
|
55
|
+
|
56
|
+
db = Hugo::Database.instance
|
57
|
+
db.server "myserver"
|
58
|
+
db.name "mydb"
|
59
|
+
db.user "admin"
|
60
|
+
db.password "test"
|
61
|
+
db.deploy.should be_a_kind_of(Hugo::Aws::Rds)
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
end
|
66
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe "Hugo DSL" do
|
4
|
+
before(:each) do
|
5
|
+
mocks
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should be valid" do
|
9
|
+
block = lambda {|a,b|}
|
10
|
+
lambda do
|
11
|
+
Hugo &block
|
12
|
+
end.should be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
it "should be_true with cloud block" do
|
17
|
+
block = lambda do
|
18
|
+
cloud "my_cloud" do end
|
19
|
+
end
|
20
|
+
|
21
|
+
lambda do
|
22
|
+
Hugo &block
|
23
|
+
end.should be_true
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
it "should deploy infrastructure" do
|
29
|
+
block = lambda do
|
30
|
+
|
31
|
+
cloud "gmms" do
|
32
|
+
balancer
|
33
|
+
|
34
|
+
database "sentinel" do
|
35
|
+
server "jackhq"
|
36
|
+
user "admin"
|
37
|
+
password "mypassword"
|
38
|
+
end
|
39
|
+
|
40
|
+
app "sentinel" do
|
41
|
+
gem_list = [{:name => "rack"}]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
lambda do
|
47
|
+
Hugo &block
|
48
|
+
end.should_not raise_error
|
49
|
+
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../lib/hugo")
|
2
|
+
|
3
|
+
Bundler.require_env(:test) # get rspec and webrat in here
|
4
|
+
|
5
|
+
|
6
|
+
# require 'rubygems'
|
7
|
+
# require 'sinatra'
|
8
|
+
#require 'rack/test'
|
9
|
+
require 'spec'
|
10
|
+
require 'spec/autorun'
|
11
|
+
require 'spec/interop/test'
|
12
|
+
|
13
|
+
def mock_ssh
|
14
|
+
@mock_ssh = mock('Net::SSH')
|
15
|
+
Net::SSH.stub!(:start).and_return(@mock_ssh)
|
16
|
+
@mock_ssh.stub!(:exec).and_return("Works!")
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
def mock_ec2
|
21
|
+
@mock_ec2 = mock('AWS::EC2::Base')
|
22
|
+
instance = {"requestId"=>"e280b5aa-9b60-458f-b16f-96f97eb5e628", "reservationSet"=>
|
23
|
+
{"item"=>[{"reservationId"=>"r-ff5d8797", "groupSet"=>{"item"=>[{"groupId"=>"default"}]},
|
24
|
+
"instancesSet"=>{"item"=>[{"privateIpAddress"=>"10.210.43.6", "keyName"=>"ec2-keypair", "ramdiskId"=>"ari-0915f660", "productCodes"=>nil, "ipAddress"=>"174.129.63.98", "kernelId"=>"aki-5f15f636", "launchTime"=>"2009-11-29T13:20:48.000Z", "amiLaunchIndex"=>"0",
|
25
|
+
"imageId"=>"ami-1515f67c", "instanceType"=>"m1.small", "reason"=>nil, "placement"=>{"availabilityZone"=>"us-east-1c"},
|
26
|
+
"instanceId"=>"i-12345678", "privateDnsName"=>"domU-XXXX.compute-1.internal",
|
27
|
+
"dnsName"=>"ec2-XXX.compute-1.amazonaws.com", "monitoring"=>{"state"=>"enabled"},
|
28
|
+
"instanceState"=>{"name"=>"running", "code"=>"16"}}]}, "ownerId"=>"398217953086"}]}, "xmlns"=>"http://ec2.amazonaws.com/doc/2009-07-15/"}
|
29
|
+
|
30
|
+
@mock_ec2.stub!(:run_instances).and_return(instance)
|
31
|
+
@mock_ec2.stub!(:describe_instances).and_return(instance)
|
32
|
+
@mock_ec2.stub!(:terminate_instances).and_return(instance)
|
33
|
+
|
34
|
+
security_group = {"group_name"=>"test", "group_description"=>"test description"}
|
35
|
+
@mock_ec2.stub!(:create_security_groups).and_return(security_group)
|
36
|
+
@mock_ec2.stub!(:describe_security_groups).and_return(security_group)
|
37
|
+
@mock_ec2.stub!(:delete_security_group).and_return(security_group)
|
38
|
+
|
39
|
+
AWS::EC2::Base.stub!(:new).and_return(@mock_ec2)
|
40
|
+
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
def mock_elb
|
45
|
+
@mock_elb = mock('AWS::ELB::Base')
|
46
|
+
instance = {"DescribeLoadBalancersResult"=>
|
47
|
+
{"LoadBalancerDescriptions"=>
|
48
|
+
{"member"=>[
|
49
|
+
{"CreatedTime"=>"2009-11-27T17:23:31.890Z", "Listeners"=>
|
50
|
+
{"member"=>[
|
51
|
+
{"InstancePort"=>"8080", "Protocol"=>"HTTP", "LoadBalancerPort"=>"80"},
|
52
|
+
{"InstancePort"=>"8443", "Protocol"=>"TCP", "LoadBalancerPort"=>"443"}]},
|
53
|
+
"HealthCheck"=>{"HealthyThreshold"=>"10", "Timeout"=>"5", "UnhealthyThreshold"=>"2", "Interval"=>"30", "Target"=>"TCP:8080"},
|
54
|
+
"AvailabilityZones"=>{"member"=>["us-east-1c"]},
|
55
|
+
"DNSName"=>"test-611935247.us-east-1.elb.amazonaws.com",
|
56
|
+
"LoadBalancerName"=>"test",
|
57
|
+
"Instances"=>{"member"=>[]}}]}},
|
58
|
+
"ResponseMetadata"=>{"RequestId"=>"0ada795e-e1df-11de-950d-c1b3b9142192"}, "xmlns"=>"http://elasticloadbalancing.amazonaws.com/doc/2009-05-15/"}
|
59
|
+
|
60
|
+
@mock_elb.stub!(:create_load_balancer).and_return(instance)
|
61
|
+
@mock_elb.stub!(:describe_load_balancers).and_return(instance)
|
62
|
+
@mock_elb.stub!(:delete_load_balancer).and_return(instance)
|
63
|
+
@mock_elb.stub!(:register_instances_with_load_balancer).and_return(instance)
|
64
|
+
@mock_elb.stub!(:deregister_instances_from_load_balancer).and_return(instance)
|
65
|
+
|
66
|
+
AWS::ELB::Base.stub!(:new).and_return(@mock_elb)
|
67
|
+
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
def mock_rds
|
72
|
+
@mock_rds = mock('AWS::RDS::Base')
|
73
|
+
instance = { "DescribeDBInstancesResult" =>
|
74
|
+
{ "DBInstances" =>
|
75
|
+
{ "DBInstance" =>
|
76
|
+
{ "InstanceCreateTime"=>"2009-11-08T15:01:32.490Z", "Endpoint"=> { "Port"=>"3306", "Address"=>"test.cwrzj6lxowfj.us-east-1.rds.amazonaws.com"},
|
77
|
+
"PreferredMaintenanceWindow"=>"sun:05:00-sun:09:00",
|
78
|
+
"DBName"=>"mydb",
|
79
|
+
"Engine"=>"mysql5.1", "MasterUsername"=>"user",
|
80
|
+
"DBInstanceClass"=>"db.m1.small", "DBInstanceStatus"=>"available",
|
81
|
+
"BackupRetentionPeriod"=>"1", "LatestRestorableTime"=>"2009-12-05T18:19:59Z",
|
82
|
+
"DBInstanceIdentifier"=>"myserver", "AllocatedStorage"=>"5",
|
83
|
+
"AvailabilityZone"=>"us-east-1c",
|
84
|
+
"DBSecurityGroups"=>{ "DBSecurityGroup"=>{"Status"=>"active", "DBSecurityGroupName"=>"default"}}, "DBParameterGroups"=>{"DBParameterGroup"=>{"DBParameterGroupName"=>"default.mysql5.1", "ParameterApplyStatus"=>"in-sync"}}, "PreferredBackupWindow"=>"03:00-05:00"
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
create_db_security_group = {"CreateDBSecurityGroupResult"=>{"DBSecurityGroup"=>{"OwnerId"=>"XXXXXXXXXXXXXXX", "DBSecurityGroupName"=>"beer", "IPRanges"=>nil, "DBSecurityGroupDescription"=>"A light beverage", "EC2SecurityGroups"=>nil}}, "ResponseMetadata"=>{"RequestId"=>"cc934f2f-f4a9-11de-ba6b-0ba63aeeddfe"}, "xmlns"=>"http://rds.amazonaws.com/admin/2009-10-16/"}
|
91
|
+
describe_db_security_groups = {"DescribeDBSecurityGroupsResult"=>{"DBSecurityGroups"=>{"DBSecurityGroup"=>{"OwnerId"=>"XXXXXXXXXXXX", "DBSecurityGroupName"=>"beer", "IPRanges"=>nil, "DBSecurityGroupDescription"=>"A light beverage", "EC2SecurityGroups"=>{"EC2SecurityGroup"=>{"Status"=>"authorized", "EC2SecurityGroupName"=>"default", "EC2SecurityGroupOwnerId"=>"XXXXXXXXXXXX"}}}}}, "ResponseMetadata"=>{"RequestId"=>"XXXXXXXXX"}, "xmlns"=>"http://rds.amazonaws.com/admin/2009-10-16/"}
|
92
|
+
db_authorize_security_group = {"AuthorizeDBSecurityGroupIngressResult"=>{"DBSecurityGroup"=>{"OwnerId"=>"XXXXXXXXXXXXXX", "DBSecurityGroupName"=>"beer", "IPRanges"=>nil, "DBSecurityGroupDescription"=>"A light beverage", "EC2SecurityGroups"=>{"EC2SecurityGroup"=>{"Status"=>"authorizing", "EC2SecurityGroupName"=>"default", "EC2SecurityGroupOwnerId"=>"XXXXXXXXXX"}}}}, "ResponseMetadata"=>{"RequestId"=>"5920e8b0-f4aa-11de-8dc1-73435d6ae588"}, "xmlns"=>"http://rds.amazonaws.com/admin/2009-10-16/"}
|
93
|
+
delete_db_security_group = {"ResponseMetadata"=>{"RequestId"=>"2e4f133b-f4ac-11de-bce4-4f8690d51058"}, "xmlns"=>"http://rds.amazonaws.com/admin/2009-10-16/"}
|
94
|
+
|
95
|
+
@mock_rds.stub!(:create_db_instance).and_return(instance)
|
96
|
+
@mock_rds.stub!(:describe_db_instances).and_return(instance)
|
97
|
+
@mock_rds.stub!(:delete_db_instance).and_return(instance)
|
98
|
+
@mock_rds.stub!(:create_db_security_group).and_return(create_db_security_group)
|
99
|
+
@mock_rds.stub!(:authorize_db_security_group).and_return(db_authorize_security_group)
|
100
|
+
@mock_rds.stub!(:delete_db_security_group).and_return(delete_db_security_group)
|
101
|
+
@mock_rds.stub!(:describe_db_security_groups).and_return(describe_db_security_groups)
|
102
|
+
|
103
|
+
AWS::RDS::Base.stub!(:new).and_return(@mock_rds)
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
def mocks
|
108
|
+
mock_ssh
|
109
|
+
mock_ec2
|
110
|
+
mock_rds
|
111
|
+
mock_elb
|
112
|
+
end
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hugo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tom Wilson
|
8
|
+
- Barrett Little
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2010-01-27 00:00:00 -05:00
|
14
|
+
default_executable:
|
15
|
+
dependencies: []
|
16
|
+
|
17
|
+
description: A easy to understand DSL that makes it dirt simple to deploy to the cloud.
|
18
|
+
email: tom@jackhq.com
|
19
|
+
executables:
|
20
|
+
- autospec
|
21
|
+
- ec2-gem-example.rb
|
22
|
+
- ec2-gem-profile.rb
|
23
|
+
- ec2sh
|
24
|
+
- edit_json.rb
|
25
|
+
- prettify_json.rb
|
26
|
+
- setup.rb
|
27
|
+
- spec
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files: []
|
31
|
+
|
32
|
+
files:
|
33
|
+
- .DS_Store
|
34
|
+
- .gitignore
|
35
|
+
- Gemfile
|
36
|
+
- Rakefile
|
37
|
+
- VERSION
|
38
|
+
- bin/autospec
|
39
|
+
- bin/ec2-gem-example.rb
|
40
|
+
- bin/ec2-gem-profile.rb
|
41
|
+
- bin/ec2sh
|
42
|
+
- bin/setup.rb
|
43
|
+
- bin/spec
|
44
|
+
- config/hugo.yml.example
|
45
|
+
- example/myhugo.rb
|
46
|
+
- lib/.DS_Store
|
47
|
+
- lib/hugo.old
|
48
|
+
- lib/hugo.rb
|
49
|
+
- lib/hugo/.DS_Store
|
50
|
+
- lib/hugo/app.rb
|
51
|
+
- lib/hugo/aws/ec2.rb
|
52
|
+
- lib/hugo/aws/elb.rb
|
53
|
+
- lib/hugo/aws/rds.rb
|
54
|
+
- lib/hugo/balancer.rb
|
55
|
+
- lib/hugo/cloud.rb
|
56
|
+
- lib/hugo/database.rb
|
57
|
+
- lib/hugo/mixin/params_validate.rb
|
58
|
+
- readme.md
|
59
|
+
- spec/.DS_Store
|
60
|
+
- spec/lib/hugo/app_spec.rb
|
61
|
+
- spec/lib/hugo/aws/ec2_spec.rb
|
62
|
+
- spec/lib/hugo/aws/elb_spec.rb
|
63
|
+
- spec/lib/hugo/aws/rds_spec.rb
|
64
|
+
- spec/lib/hugo/balancer_spec.rb
|
65
|
+
- spec/lib/hugo/database_spec.rb
|
66
|
+
- spec/lib/hugo_spec.rb
|
67
|
+
- spec/spec.opts
|
68
|
+
- spec/spec_helper.rb
|
69
|
+
- vendor/gems/cache/amazon-ec2-0.7.9.gem
|
70
|
+
- vendor/gems/cache/json-1.2.0.gem
|
71
|
+
- vendor/gems/cache/net-ssh-2.0.17.gem
|
72
|
+
- vendor/gems/cache/rspec-1.2.9.gem
|
73
|
+
- vendor/gems/cache/xml-simple-1.0.12.gem
|
74
|
+
has_rdoc: true
|
75
|
+
homepage: http://github.com/twilson63/hugo
|
76
|
+
licenses: []
|
77
|
+
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options:
|
80
|
+
- --charset=UTF-8
|
81
|
+
require_paths:
|
82
|
+
- lib
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: "0"
|
88
|
+
version:
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: "0"
|
94
|
+
version:
|
95
|
+
requirements: []
|
96
|
+
|
97
|
+
rubyforge_project:
|
98
|
+
rubygems_version: 1.3.5
|
99
|
+
signing_key:
|
100
|
+
specification_version: 3
|
101
|
+
summary: Deploy Your Rack Apps to Cloud
|
102
|
+
test_files:
|
103
|
+
- spec/lib/hugo/app_spec.rb
|
104
|
+
- spec/lib/hugo/aws/ec2_spec.rb
|
105
|
+
- spec/lib/hugo/aws/elb_spec.rb
|
106
|
+
- spec/lib/hugo/aws/rds_spec.rb
|
107
|
+
- spec/lib/hugo/balancer_spec.rb
|
108
|
+
- spec/lib/hugo/database_spec.rb
|
109
|
+
- spec/lib/hugo_spec.rb
|
110
|
+
- spec/spec_helper.rb
|