railshoster 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://secure.travis-ci.org/[railshoster]/[railshoster].png)](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
|