railshoster 0.0.2 → 0.0.3
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 +6 -0
- data/CHANGELOG.markdown +7 -0
- data/README.markdown +33 -3
- data/ROADMAP.markdown +2 -1
- data/Rakefile +5 -0
- data/bin/railshoster +33 -14
- data/gemfiles/Gemfile.ci +14 -0
- data/lib/railshoster/bad_application_json_hash_error.rb +5 -0
- data/lib/railshoster/bad_appliction_token_error.rb +5 -0
- data/lib/railshoster/capify_project_failed_error.rb +5 -0
- data/lib/railshoster/command.rb +1 -1
- data/lib/railshoster/deploy_command.rb +1 -1
- data/lib/railshoster/error.rb +7 -0
- data/lib/railshoster/init_command.rb +22 -31
- data/lib/railshoster/possibly_not_a_git_repo_error.rb +5 -0
- data/lib/railshoster/unsupported_application_type_error.rb +5 -0
- data/lib/railshoster/utilities.rb +25 -0
- data/lib/railshoster/version.rb +1 -1
- data/lib/railshoster.rb +7 -1
- data/railshoster.gemspec +3 -0
- data/spec/lib/railshoster/command_spec.rb +19 -0
- data/spec/lib/railshoster/init_command_spec.rb +49 -0
- data/spec/lib/railshoster/utilities_spec.rb +49 -0
- data/spec/spec_helper.rb +15 -0
- metadata +50 -6
data/.travis.yml
ADDED
data/CHANGELOG.markdown
CHANGED
@@ -11,3 +11,10 @@ h2. 0.0.2
|
|
11
11
|
|
12
12
|
* deploy.rb now creates a symlink to database.yml with -f (force) and overwrites an eventually existing database.yml from the customer's repository.
|
13
13
|
|
14
|
+
h3. 0.0.3
|
15
|
+
|
16
|
+
* Added travis testing meta data.
|
17
|
+
* Added RSpec tests for basic functionality.
|
18
|
+
* Fixed a Ruby 1.9.x issue.
|
19
|
+
* Enhanced error messages for invalid application tokens.
|
20
|
+
* Initial README.
|
data/README.markdown
CHANGED
@@ -1,11 +1,41 @@
|
|
1
1
|
h1. RailsHoster Deployment Suite
|
2
2
|
|
3
|
-
|
3
|
+
The RailsHoster Deployment gem helps you to easily get your Rails app runing at RailsHoster.com. Check it out.
|
4
|
+
|
5
|
+
h2. Travis Status of the current dev branch
|
6
|
+
|
7
|
+
[](http://travis-ci.org/[railshoster]/[railshoster])
|
8
|
+
|
9
|
+
h2. Requirements
|
10
|
+
|
11
|
+
This is what you need on your client to run the RailsHoster gem to deploy your app:
|
12
|
+
|
13
|
+
* Ruby
|
14
|
+
* Ruby gems
|
15
|
+
* Shell (e.g. Bash)
|
16
|
+
* SSH Shell
|
17
|
+
* Git
|
4
18
|
|
5
19
|
h2. Installation
|
6
20
|
|
7
|
-
|
21
|
+
gem install railshoster
|
8
22
|
|
9
23
|
h2. Usage
|
24
|
+
|
25
|
+
Simply go to your project's git folder and invoke the following command to initialize your app and *make it deployment ready*.
|
26
|
+
|
27
|
+
railshoster init -a 'your application token' .
|
28
|
+
|
29
|
+
Regarding to your *application token* please refer to your account information you have received after signing up at [RailsHoster.com](http://www.railshoster.com/).
|
30
|
+
|
31
|
+
You can then either use *capistrano* to deploy or invoke
|
32
|
+
|
33
|
+
railshoster deploy
|
34
|
+
|
35
|
+
It's as easy as this. Refer to the RailsHoster.com Support if any problems raise. We are happy to help you.
|
36
|
+
|
37
|
+
h2. Debug
|
38
|
+
|
39
|
+
In order to receive full stack traces when exceptions occure just pass a environment variable like this
|
10
40
|
|
11
|
-
|
41
|
+
RAILSHOSTER_DEV=1 railshoster
|
data/ROADMAP.markdown
CHANGED
@@ -11,4 +11,5 @@ h2. 2.0.0
|
|
11
11
|
|
12
12
|
h3. General TODOs
|
13
13
|
|
14
|
-
* Railshoster::InitCommand - Check wether it is possible to replace "system" call with a pure ruby version possibly by using the capistrano gem directly via ruby.
|
14
|
+
* Railshoster::InitCommand - Check wether it is possible to replace "system" call with a pure ruby version possibly by using the capistrano gem directly via ruby.
|
15
|
+
* Test bin/railshoster
|
data/Rakefile
CHANGED
data/bin/railshoster
CHANGED
@@ -7,10 +7,10 @@ gem "json"
|
|
7
7
|
gem "git"
|
8
8
|
gem 'erubis'
|
9
9
|
gem "gli"
|
10
|
-
|
11
|
-
require File.join(File.dirname(__FILE__), '..', 'lib', 'railshoster')
|
12
10
|
require 'fileutils'
|
13
11
|
|
12
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'railshoster'))
|
13
|
+
|
14
14
|
require 'gli'
|
15
15
|
include GLI
|
16
16
|
|
@@ -26,14 +26,15 @@ command [:init] do |c|
|
|
26
26
|
c.desc "Use the RailsHoster application_token pass your account credentials."
|
27
27
|
c.flag [:a, :apptoken]
|
28
28
|
|
29
|
-
c.action do |global_options,options,args|
|
30
|
-
|
31
|
-
raise "
|
32
|
-
|
33
|
-
|
34
|
-
|
29
|
+
c.action do |global_options,options,args|
|
30
|
+
|
31
|
+
raise "Option '-a' or '--apptoken' is require for the 'init' command. How else should I know where you want to deploy to?" unless options[:a]
|
32
|
+
|
33
|
+
cwd = FileUtils.pwd
|
34
|
+
ask_for_project_dir(cwd) if args.empty?
|
35
|
+
project_git_dir_name = args[0] || cwd
|
35
36
|
|
36
|
-
init_command =
|
37
|
+
init_command = Railshoster::InitCommand.new(project_git_dir_name)
|
37
38
|
init_command.run_by_application_token(options[:a])
|
38
39
|
end
|
39
40
|
end
|
@@ -44,7 +45,7 @@ long_desc "Use this command to deploy your application to RailsHoster.com after
|
|
44
45
|
command [:deploy] do |c|
|
45
46
|
c.action do |global_options,options,args|
|
46
47
|
project_git_dir_name = args[0] || FileUtils.pwd
|
47
|
-
|
48
|
+
Railshoster::DeployCommand.new(project_git_dir_name).deploy
|
48
49
|
end
|
49
50
|
end
|
50
51
|
|
@@ -59,7 +60,18 @@ post do |global,command,options,args|
|
|
59
60
|
# Post logic here
|
60
61
|
end
|
61
62
|
|
62
|
-
|
63
|
+
# Invoke the app like this RAILSHOSTER_DEV=1 ~/git/railshoster/bin/railshoster
|
64
|
+
# in order to receive a full stack trace in case of errors.
|
65
|
+
on_error do |exception|
|
66
|
+
ret = true
|
67
|
+
ret = print_error(exception) if ENV["RAILSHOSTER_DEV"]
|
68
|
+
ret
|
69
|
+
end
|
70
|
+
|
71
|
+
#### Helper methods
|
72
|
+
|
73
|
+
def print_error(exception)
|
74
|
+
|
63
75
|
puts "\n"
|
64
76
|
puts "-" * 50
|
65
77
|
puts "Sorry. An Exception has occured. Don't worry I try to explain what happened:"
|
@@ -73,10 +85,17 @@ on_error do |exception|
|
|
73
85
|
puts "-" * 50
|
74
86
|
puts "If this does not help write to support@railshoster.com."
|
75
87
|
puts "Please provide the command you invoked, in which directory as well as information about your runtime environment (Ruby Version, OS, ...)."
|
76
|
-
|
77
|
-
# Error logic here
|
78
|
-
# return false to skip default error handling
|
79
88
|
false
|
80
89
|
end
|
81
90
|
|
91
|
+
def ask_for_project_dir(current_working_dir)
|
92
|
+
puts "You have not specified your local project folder to be deployed.\n" +
|
93
|
+
"I assume you want to use your current working directory: #{current_working_dir}.\n"
|
94
|
+
print "Correct? (y/n) [n]: "
|
95
|
+
decision = STDIN.getc
|
96
|
+
if decision !~ /y/i then
|
97
|
+
exit_now!("Initialization aborted.", -1)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
82
101
|
exit GLI.run(ARGV)
|
data/gemfiles/Gemfile.ci
ADDED
data/lib/railshoster/command.rb
CHANGED
@@ -3,9 +3,9 @@ require 'json'
|
|
3
3
|
require 'git'
|
4
4
|
require 'fileutils'
|
5
5
|
|
6
|
-
require File.join(File.dirname(__FILE__), '/capistrano/h')
|
6
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '/capistrano/h'))
|
7
7
|
|
8
|
-
module
|
8
|
+
module Railshoster
|
9
9
|
|
10
10
|
# This action class helps to setup a new rails applicaton
|
11
11
|
class InitCommand < Command
|
@@ -16,7 +16,16 @@ module RailsHoster
|
|
16
16
|
|
17
17
|
def run_by_application_token(application_token)
|
18
18
|
decoded_token = decode_token(application_token)
|
19
|
-
|
19
|
+
|
20
|
+
begin
|
21
|
+
run_by_application_hash(decoded_token)
|
22
|
+
rescue BadApplicationJSONHashError => e
|
23
|
+
msg = "Please verify your application_token. It did not decode to a valid application hash.\n" +
|
24
|
+
"This is how your application token looked like:\n\n#{application_token.inspect}\n\n" +
|
25
|
+
"Please compare your application token char by char with your account information mail and try again!\n" +
|
26
|
+
"Here is what the application hash parser said:\n\n"
|
27
|
+
raise BadApplicationTokenError.new(msg + e.message)
|
28
|
+
end
|
20
29
|
end
|
21
30
|
|
22
31
|
def run_by_application_hash(application_hash_as_json_string)
|
@@ -47,18 +56,23 @@ module RailsHoster
|
|
47
56
|
|
48
57
|
# Decodoes token to get the JSON hash back.
|
49
58
|
# gQkUSMakKRPhm0EIaer => {"key":"value"}
|
50
|
-
def decode_token(token)
|
59
|
+
def decode_token(token)
|
51
60
|
Base64.decode64(token)
|
52
61
|
end
|
53
62
|
|
54
63
|
def parse_application_json_hash(app_hash_as_json_string)
|
55
|
-
|
64
|
+
begin
|
65
|
+
ruby_app_hash = ::JSON.parse(app_hash_as_json_string)
|
66
|
+
rescue JSON::ParserError => e
|
67
|
+
msg = "The application hash you have passed is malformed. It could not be parsed as regular JSON. It looked like this:\n\n #{app_hash_as_json_string.inspect}\n"
|
68
|
+
raise BadApplicationJSONHashError.new(msg + "\nHere is what the JSON parse said:\n\n" + e.message)
|
69
|
+
end
|
56
70
|
end
|
57
71
|
|
58
72
|
def get_git_remote_url_from_git_config
|
59
73
|
|
60
74
|
#TODO Error management: what if there is not remote url (local repo)?
|
61
|
-
@git.config
|
75
|
+
@git.config['remote.origin.url']
|
62
76
|
end
|
63
77
|
|
64
78
|
def write_deploy_rb(deployrb_str)
|
@@ -66,26 +80,12 @@ module RailsHoster
|
|
66
80
|
FileUtils.mkdir_p(deployrb_basepath)
|
67
81
|
|
68
82
|
deployrb_path = File.join(deployrb_basepath, "deploy.rb")
|
69
|
-
backup_file(deployrb_path) if File.exists?(deployrb_path)
|
83
|
+
Railshoster::Utilities.backup_file(deployrb_path) if File.exists?(deployrb_path)
|
70
84
|
|
71
85
|
File.open(deployrb_path, "w+") do |f|
|
72
86
|
f << deployrb_str
|
73
87
|
end
|
74
|
-
end
|
75
|
-
|
76
|
-
# Creates a backup of a file.
|
77
|
-
# If there is already a backup
|
78
|
-
#TODO Test
|
79
|
-
def backup_file(path)
|
80
|
-
backup_path = path + ".bak"
|
81
|
-
|
82
|
-
if File.exists?(backup_path) then
|
83
|
-
# There is already a backup, so we need to backup the backup first.
|
84
|
-
backup_file(backup_path)
|
85
|
-
end
|
86
|
-
|
87
|
-
FileUtils.cp(path, backup_path)
|
88
|
-
end
|
88
|
+
end
|
89
89
|
|
90
90
|
def capify_project
|
91
91
|
puts "\n\tWarning: You are initializing a project with an existing Capfile.\n" if capfile_exists?
|
@@ -99,13 +99,4 @@ module RailsHoster
|
|
99
99
|
puts "Alternatively, you can use capistrano commands such as 'cap deploy' and 'cap shell'."
|
100
100
|
end
|
101
101
|
end
|
102
|
-
|
103
|
-
class PossiblyNotAGitRepoError < ArgumentError
|
104
|
-
end
|
105
|
-
|
106
|
-
class UnsupportedApplicationTypeError < StandardError
|
107
|
-
end
|
108
|
-
|
109
|
-
class CapifyProjectFailedError < StandardError
|
110
|
-
end
|
111
102
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module Railshoster
|
4
|
+
class Utilities
|
5
|
+
|
6
|
+
# Creates a backup of a file.
|
7
|
+
# Since this is a recursive method you'll never loose a file. it also creates backups of backups of ...
|
8
|
+
# == Examples
|
9
|
+
# myfile -> myfile.bak
|
10
|
+
# if there is already a myfile.bak:
|
11
|
+
# myfile.bak -> myfile.bak.bak
|
12
|
+
# myfile -> myfile.bak
|
13
|
+
# ...
|
14
|
+
def self.backup_file(path)
|
15
|
+
backup_path = path + ".bak"
|
16
|
+
|
17
|
+
if File.exists?(backup_path) then
|
18
|
+
# There is already a backup, so we need to backup the backup first.
|
19
|
+
backup_file(backup_path)
|
20
|
+
end
|
21
|
+
|
22
|
+
FileUtils.cp(path, backup_path)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/railshoster/version.rb
CHANGED
data/lib/railshoster.rb
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), 'railshoster/version')
|
2
|
+
require File.join(File.dirname(__FILE__), 'railshoster/error')
|
3
|
+
require File.join(File.dirname(__FILE__), 'railshoster/utilities')
|
2
4
|
require File.join(File.dirname(__FILE__), 'railshoster/command')
|
5
|
+
require File.join(File.dirname(__FILE__), 'railshoster/possibly_not_a_git_repo_error')
|
6
|
+
require File.join(File.dirname(__FILE__), 'railshoster/unsupported_application_type_error')
|
7
|
+
require File.join(File.dirname(__FILE__), 'railshoster/capify_project_failed_error')
|
8
|
+
require File.join(File.dirname(__FILE__), 'railshoster/bad_application_json_hash_error')
|
9
|
+
require File.join(File.dirname(__FILE__), 'railshoster/bad_appliction_token_error')
|
3
10
|
require File.join(File.dirname(__FILE__), 'railshoster/init_command')
|
4
11
|
require File.join(File.dirname(__FILE__), 'railshoster/deploy_command')
|
5
12
|
|
6
13
|
module Railshoster
|
7
|
-
# Your code goes here...
|
8
14
|
end
|
data/railshoster.gemspec
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "..", "spec_helper.rb")
|
2
|
+
|
3
|
+
describe Railshoster::Command do
|
4
|
+
describe "#Basics" do
|
5
|
+
it "should instanciate a Command instance also initializing the project git repo" do
|
6
|
+
|
7
|
+
# We use the gem's dir as this should be a valid git repo
|
8
|
+
git_dir = File.join(File.dirname(__FILE__), "..", "..", "..")
|
9
|
+
expect { c = Railshoster::Command.new(git_dir) }.to_not raise_error(Railshoster::PossiblyNotAGitRepoError)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should fail to instanciate a Command for a non-git project dir" do
|
13
|
+
|
14
|
+
# The spec folder is part of a but not a git repo
|
15
|
+
non_git_dir = File.dirname(__FILE__)
|
16
|
+
expect { c = Railshoster::Command.new(non_git_dir) }.to raise_error(Railshoster::PossiblyNotAGitRepoError)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "spec_helper.rb"))
|
2
|
+
|
3
|
+
describe Railshoster::InitCommand do
|
4
|
+
|
5
|
+
before do
|
6
|
+
# We use the gem's dir as this should be a valid git repo
|
7
|
+
git_dir = File.join(File.dirname(__FILE__), "..", "..", "..")
|
8
|
+
@init = Railshoster::InitCommand.new(git_dir)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "#Git" do
|
12
|
+
it "should read the git repo url" do
|
13
|
+
@init.send(:get_git_remote_url_from_git_config).should =~ /railshoster/
|
14
|
+
end
|
15
|
+
|
16
|
+
#TODO
|
17
|
+
it "should do sth useful if the given project dir has no remote url" do
|
18
|
+
pending("handle this situation in code an spec.")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#run_by_application_hash" do
|
23
|
+
it "should create a deploy rb and capify the project" do
|
24
|
+
pending("use fakefs to test this.")
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should deny to run for a non-git project dir" do
|
28
|
+
pending("not git -> no repo url -> no deploy rb -> fail")
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should gracefully die for a git project dir without a remote origin" do
|
32
|
+
pending("no remote origin -> no repo url -> no deploy rb -> fail")
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should raise an BadApplicationJSONHashError error for an invalid incoming JSON hash" do
|
36
|
+
expect { @init.send(:parse_application_json_hash, "") }.to raise_error(Railshoster::BadApplicationJSONHashError)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#run_by_application_token" do
|
41
|
+
it "should create a deploy rb and capify the project" do
|
42
|
+
pending("use fakefs to test this.")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should raise an BadApplicationTokenError error for an invalid incoming application token" do
|
46
|
+
expect { @init.send(:run_by_application_token, "abab") }.to raise_error(Railshoster::BadApplicationTokenError)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "..", "spec_helper.rb")
|
2
|
+
|
3
|
+
describe Railshoster::Utilities do
|
4
|
+
|
5
|
+
before do
|
6
|
+
FakeFS.activate!
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#Backup" do
|
10
|
+
include FakeFS::SpecHelpers
|
11
|
+
|
12
|
+
it "should create a backup file" do
|
13
|
+
File.new("myfile.txt", "w+")
|
14
|
+
File.exists?("myfile.txt").should be_true
|
15
|
+
expect { Railshoster::Utilities.backup_file("myfile.txt") }.to_not raise_error
|
16
|
+
File.exists?("myfile.txt").should be_true
|
17
|
+
File.exists?("myfile.txt.bak").should be_true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should create a backup of a backup file and then backup the file" do
|
21
|
+
|
22
|
+
# File to be backed up
|
23
|
+
File.open("myfile.txt", "w+") do |f|
|
24
|
+
f << "1"
|
25
|
+
end
|
26
|
+
|
27
|
+
# We assume there is already an older backup
|
28
|
+
File.open("myfile.txt.bak", "w+") do |f|
|
29
|
+
f << "2"
|
30
|
+
end
|
31
|
+
expect { Railshoster::Utilities.backup_file("myfile.txt") }.to_not raise_error
|
32
|
+
File.exists?("myfile.txt").should be_true
|
33
|
+
File.exists?("myfile.txt.bak").should be_true
|
34
|
+
File.exists?("myfile.txt.bak.bak").should be_true
|
35
|
+
|
36
|
+
File.open("myfile.txt").read.should eql("1")
|
37
|
+
|
38
|
+
# .bak after backing up is the newest backup
|
39
|
+
File.open("myfile.txt.bak").read.should eql("1")
|
40
|
+
|
41
|
+
# But the old backup is still there - being moved to .bak.bak.
|
42
|
+
File.open("myfile.txt.bak.bak").read.should eql("2")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
after do
|
47
|
+
FakeFS.deactivate!
|
48
|
+
end
|
49
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'fakefs/safe'
|
3
|
+
require 'fakefs/spec_helpers'
|
4
|
+
|
5
|
+
# https://github.com/defunkt/fakefs
|
6
|
+
# Turn FakeFS on and off in a given example group
|
7
|
+
# describe "my spec" do
|
8
|
+
# include FakeFS::SpecHelpers
|
9
|
+
# end
|
10
|
+
|
11
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'railshoster')
|
12
|
+
|
13
|
+
#RSpec.configure do |c|
|
14
|
+
# c.mock_with :rspec
|
15
|
+
#end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: railshoster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Julian Fischer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-11-
|
18
|
+
date: 2011-11-05 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: capistrano
|
@@ -103,6 +103,34 @@ dependencies:
|
|
103
103
|
version: "0"
|
104
104
|
type: :runtime
|
105
105
|
version_requirements: *id006
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: rspec
|
108
|
+
prerelease: false
|
109
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 3
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
version: "0"
|
118
|
+
type: :development
|
119
|
+
version_requirements: *id007
|
120
|
+
- !ruby/object:Gem::Dependency
|
121
|
+
name: fakefs
|
122
|
+
prerelease: false
|
123
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
124
|
+
none: false
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
hash: 3
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
version: "0"
|
132
|
+
type: :development
|
133
|
+
version_requirements: *id008
|
106
134
|
description: Easily deploy your Rails app to RailsHoster.com by using this gem.
|
107
135
|
email:
|
108
136
|
- fischer@enterprise-rails.de
|
@@ -114,6 +142,7 @@ extra_rdoc_files: []
|
|
114
142
|
|
115
143
|
files:
|
116
144
|
- .gitignore
|
145
|
+
- .travis.yml
|
117
146
|
- CHANGELOG.markdown
|
118
147
|
- CONTRIB.txt
|
119
148
|
- LICENSE
|
@@ -121,14 +150,26 @@ files:
|
|
121
150
|
- ROADMAP.markdown
|
122
151
|
- Rakefile
|
123
152
|
- bin/railshoster
|
153
|
+
- gemfiles/Gemfile.ci
|
124
154
|
- lib/railshoster.rb
|
155
|
+
- lib/railshoster/bad_application_json_hash_error.rb
|
156
|
+
- lib/railshoster/bad_appliction_token_error.rb
|
157
|
+
- lib/railshoster/capify_project_failed_error.rb
|
125
158
|
- lib/railshoster/capistrano/h.rb
|
126
159
|
- lib/railshoster/capistrano/v.rb
|
127
160
|
- lib/railshoster/command.rb
|
128
161
|
- lib/railshoster/deploy_command.rb
|
162
|
+
- lib/railshoster/error.rb
|
129
163
|
- lib/railshoster/init_command.rb
|
164
|
+
- lib/railshoster/possibly_not_a_git_repo_error.rb
|
165
|
+
- lib/railshoster/unsupported_application_type_error.rb
|
166
|
+
- lib/railshoster/utilities.rb
|
130
167
|
- lib/railshoster/version.rb
|
131
168
|
- railshoster.gemspec
|
169
|
+
- spec/lib/railshoster/command_spec.rb
|
170
|
+
- spec/lib/railshoster/init_command_spec.rb
|
171
|
+
- spec/lib/railshoster/utilities_spec.rb
|
172
|
+
- spec/spec_helper.rb
|
132
173
|
- templates/h/deploy.rb.erb
|
133
174
|
homepage: http://www.railshoster.com
|
134
175
|
licenses: []
|
@@ -163,5 +204,8 @@ rubygems_version: 1.8.6
|
|
163
204
|
signing_key:
|
164
205
|
specification_version: 3
|
165
206
|
summary: RailsHoster Applicatoin Deployment Suite
|
166
|
-
test_files:
|
167
|
-
|
207
|
+
test_files:
|
208
|
+
- spec/lib/railshoster/command_spec.rb
|
209
|
+
- spec/lib/railshoster/init_command_spec.rb
|
210
|
+
- spec/lib/railshoster/utilities_spec.rb
|
211
|
+
- spec/spec_helper.rb
|