hostnet 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ desc 'Release the website and new gem version'
2
+ task :deploy => [:check_version, :website, :release] do
3
+ puts "Remember to create SVN tag:"
4
+ puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
+ "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
+ puts "Suggested comment:"
7
+ puts "Tagging release #{CHANGES}"
8
+ end
9
+
10
+ desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
+ task :local_deploy => [:website_generate, :install_gem]
12
+
13
+ task :check_version do
14
+ unless ENV['VERSION']
15
+ puts 'Must pass a VERSION=x.y.z release version'
16
+ exit
17
+ end
18
+ unless ENV['VERSION'] == VERS
19
+ puts "Please update your version.rb to match the release version, currently #{VERS}"
20
+ exit
21
+ end
22
+ end
23
+
24
+ desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
+ task :install_gem_no_doc => [:clean, :package] do
26
+ sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
+ end
28
+
29
+ namespace :manifest do
30
+ desc 'Recreate Manifest.txt to include ALL files'
31
+ task :refresh do
32
+ `rake check_manifest | patch -p0 > Manifest.txt`
33
+ end
34
+ end
@@ -0,0 +1,7 @@
1
+ task :ruby_env do
2
+ RUBY_APP = if RUBY_PLATFORM =~ /java/
3
+ "jruby"
4
+ else
5
+ "ruby"
6
+ end unless defined? RUBY_APP
7
+ end
@@ -0,0 +1,9 @@
1
+ # stubs for the website generation
2
+ # To install the website framework:
3
+ # script/generate website
4
+
5
+ task :website_generate
6
+
7
+ task :website_upload
8
+
9
+ task :website => :publish_docs
@@ -0,0 +1,29 @@
1
+ begin
2
+ require File.dirname(__FILE__) + '/test_helper'
3
+ rescue LoadError
4
+ require 'test/unit'
5
+ end
6
+ require 'fileutils'
7
+
8
+ # Must set before requiring generator libs.
9
+ TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
10
+ PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
11
+ app_root = File.join(TMP_ROOT, PROJECT_NAME)
12
+ if defined?(APP_ROOT)
13
+ APP_ROOT.replace(app_root)
14
+ else
15
+ APP_ROOT = app_root
16
+ end
17
+ if defined?(RAILS_ROOT)
18
+ RAILS_ROOT.replace(app_root)
19
+ else
20
+ RAILS_ROOT = app_root
21
+ end
22
+
23
+ begin
24
+ require 'rubigen'
25
+ rescue LoadError
26
+ require 'rubygems'
27
+ require 'rubigen'
28
+ end
29
+ require 'rubigen/helpers/generator_test_helper'
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/hostnet'
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestHostnet < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def test_truth
9
+ assert true
10
+ end
11
+ end
@@ -0,0 +1,45 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+ require 'rails_generator'
4
+
5
+ class TestHostnetDeployGenerator < Test::Unit::TestCase
6
+ include RubiGen::GeneratorTestHelper
7
+
8
+ def setup
9
+ bare_setup
10
+ end
11
+
12
+ def teardown
13
+ bare_teardown
14
+ end
15
+
16
+ # Some generator-related assertions:
17
+ # assert_generated_file(name, &block) # block passed the file contents
18
+ # assert_directory_exists(name)
19
+ # assert_generated_class(name, &block)
20
+ # assert_generated_module(name, &block)
21
+ # assert_generated_test_for(name, &block)
22
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
23
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
24
+ #
25
+ # Other helper methods are:
26
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
27
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
28
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
29
+
30
+ def test_generator_without_options
31
+ name = "myapp"
32
+ run_generator('hostnet_deploy', [name], sources)
33
+ assert_generated_file("some_file")
34
+ end
35
+
36
+ private
37
+ def sources
38
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
39
+ ]
40
+ end
41
+
42
+ def generator_path
43
+ "rails_generators"
44
+ end
45
+ end
@@ -0,0 +1,45 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+ require 'rails_generator'
4
+
5
+ class TestHostnetEmailGenerator < Test::Unit::TestCase
6
+ include RubiGen::GeneratorTestHelper
7
+
8
+ def setup
9
+ bare_setup
10
+ end
11
+
12
+ def teardown
13
+ bare_teardown
14
+ end
15
+
16
+ # Some generator-related assertions:
17
+ # assert_generated_file(name, &block) # block passed the file contents
18
+ # assert_directory_exists(name)
19
+ # assert_generated_class(name, &block)
20
+ # assert_generated_module(name, &block)
21
+ # assert_generated_test_for(name, &block)
22
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
23
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
24
+ #
25
+ # Other helper methods are:
26
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
27
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
28
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
29
+
30
+ def test_generator_without_options
31
+ name = "myapp"
32
+ run_generator('hostnet_email', [name], sources)
33
+ assert_generated_file("some_file")
34
+ end
35
+
36
+ private
37
+ def sources
38
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
39
+ ]
40
+ end
41
+
42
+ def generator_path
43
+ "rails_generators"
44
+ end
45
+ end
@@ -0,0 +1,94 @@
1
+ Meu primeiro deploy de aplicação Rails para a Hostnet
2
+ =====================================================
3
+
4
+ Este tutorial apresenta um passo-a-passo do seu primeiro deploy de uma aplicação Rails sem utilizar controle de versão. Assumimos aqui que você já possui uma conta Rails na Hostnet e uma aplicação que você desejar colocar no ar. Todos os comandos são executados no diretório raiz do seu projeto.
5
+
6
+ 1. Você deve possuir a gem da Hostnet instalada. Se você não possui, execute:
7
+
8
+ gem install mergulhao-hostnet --source=http://gems.github.com
9
+
10
+ 2. Configure a seção production do seu database.yml com os dados da sua conta Mysql. Exemplo:
11
+
12
+ production:
13
+ adapter: mysql
14
+ database: seu_database
15
+ username: usuario
16
+ password: senha
17
+ host: mysql.dominio.com
18
+
19
+ 3. Agora é necessário criar a receita de deploy através do utilitário da Hostnet. Isso significa executar:
20
+
21
+ hostnet seu_usuario seu_dominio.com
22
+
23
+ 4. É necessário preparar o terreno no servidor para o primeiro deploy. Basta executar:
24
+
25
+ cap deploy:setup
26
+
27
+ 5. Para finalizar:
28
+
29
+ cap deploy
30
+
31
+ Se tudo deu certo a sua aplicação estará no ar.
32
+
33
+ Realizando um novo deploy, após correção de um bug
34
+ ==================================================
35
+
36
+ Supondo que você corrigiu um bug e deseja atualizar a versão no servidor basta executar novamente:
37
+
38
+ cap deploy
39
+
40
+ E as novas modificações estarão no ar!
41
+
42
+ Solução de problemas
43
+ ====================
44
+
45
+ Versão do Rails
46
+ ---------------
47
+
48
+ Se ocorrer durante o deploy um erro como esse:
49
+
50
+ *** [err :: dominio.com] Missing the Rails 2.1.0 gem. Please `gem install
51
+ -v=2.1.0 rails`, update your RAILS_GEM_VERSION setting in
52
+ config/environment.rb for the Rails version you do have installed, or
53
+ comment out RAILS_GEM_VERSION to use the latest version installed.
54
+
55
+ ou esse:
56
+
57
+ *** [err :: dominio.com] Missing the Rails 2.0.2 gem. Please `gem install
58
+ -v=2.0.2 rails`, update your RAILS_GEM_VERSION setting in
59
+ config/environment.rb for the Rails version you do have installed, or
60
+ comment out RAILS_GEM_VERSION to use the latest version installed.
61
+
62
+ Você deve editar o seu arquivo config/enviroment.rb e alterar a linha que diz:
63
+
64
+ RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
65
+
66
+ ou
67
+
68
+ RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION
69
+
70
+ Para:
71
+
72
+ RAILS_GEM_VERSION = '2.1.1' unless defined? RAILS_GEM_VERSION
73
+
74
+ ou
75
+
76
+ RAILS_GEM_VERSION = '2.0.4' unless defined? RAILS_GEM_VERSION
77
+
78
+ Respectivamente.
79
+
80
+ Erro de acesso ao banco de dados
81
+ --------------------------------
82
+
83
+ Se ocorrer durante o deploy um erro como esse:
84
+
85
+ * executing "cd /home/usuario/www/releases/20080916192611 && rake db:migrate RAILS_ENV=production"
86
+ servers: ["dominio.com"]
87
+ [dominio.com] executing command
88
+ *** [err :: dominio.com] rake aborted!
89
+ *** [err :: dominio.com] Access denied for user: 'user@dominio.com' (Using password: YES)
90
+ *** [err :: dominio.com]
91
+ *** [err :: dominio.com] (See full trace by running task with --trace)
92
+ ** [out :: dominio.com] (in /home/usuario/www/releases/20080916192611)
93
+
94
+ Você deve verificar o arquivo config/database.yml e configurar com os dados da sua conta Mysql, como indicado no passo 2.
@@ -0,0 +1,14 @@
1
+ Configurando sua aplicação para enviar e-mails
2
+ ==============================================
3
+
4
+ 1. Você deve possuir a gem da Hostnet instalada. Se você não possui, execute:
5
+
6
+ gem install mergulhao-hostnet --source=http://gems.github.com
7
+
8
+ 2. Crie no seu painel da Hostnet uma conta que será usada pelo ActionMailer do Rails para o envio de e-mails
9
+
10
+ 3. Na raiz do seu projeto execute:
11
+
12
+ hostnet --email mailer_username mailer_password seu_dominio.com
13
+
14
+ Sua aplicação já está configurada para enviar e-mails utilizando smtp da Hostnet!
@@ -0,0 +1,29 @@
1
+ Dicas para administracao e debug de sua aplicacao rails
2
+ =======================================================
3
+
4
+ Todas as dicas supõe que você fez upload de sua aplicação utilizando o Capistrano configurado a partir da gem oficial da Hostnet.
5
+
6
+ * Logs
7
+
8
+ 1. **Meu arquivo de log está ocupando muito espaço da minha hospedagem. O que fazer?**
9
+
10
+ Você deve zerar o seu arquivo de log regularmente para evitar que ele consuma todo o espaço da sua hospedagem. Basta executar o comando:
11
+
12
+ cap log:clean
13
+
14
+ 2. **Como ver o log de produção da minha aplicação?**
15
+
16
+ Para facilitar essa tarefa de debug temos uma task do Capistrano. Basta executar:
17
+
18
+ cap log:tail
19
+
20
+ * Deploy
21
+
22
+ 1. **Preciso fazer o restart da minha aplicação, o que fazer?**
23
+
24
+ cap deploy:restart
25
+
26
+ 2. **Ao subir a minha aplicação, preciso rodar _cap deploy:migrations_ para executar as migrations?**
27
+
28
+ Não. A receita de deploy da Hostnet efetua essa tarefa automaticamente.
29
+
metadata ADDED
@@ -0,0 +1,133 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hostnet
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Sylvestre Mergulhao
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-10-07 00:00:00 -03:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rubigen
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.3.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: capistrano
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.5.0
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: archive-tar-minitar
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.5.2
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: hoe
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.7.0
54
+ version:
55
+ description: "gem oficial para suporte a deploy de aplica\xC3\xA7\xC3\xB5es"
56
+ email:
57
+ - contato@mergulhao.info
58
+ executables:
59
+ - hostnet
60
+ extensions: []
61
+
62
+ extra_rdoc_files:
63
+ - History.txt
64
+ - Manifest.txt
65
+ - README.txt
66
+ files:
67
+ - History.txt
68
+ - LICENSE
69
+ - Manifest.txt
70
+ - README.txt
71
+ - Rakefile
72
+ - TODO
73
+ - bin/hostnet
74
+ - config/hoe.rb
75
+ - config/requirements.rb
76
+ - hostnet.gemspec
77
+ - lib/hostnet.rb
78
+ - lib/hostnet/version.rb
79
+ - rails_generators/hostnet_deploy/USAGE
80
+ - rails_generators/hostnet_deploy/hostnet_deploy_generator.rb
81
+ - rails_generators/hostnet_deploy/templates/Capfile
82
+ - rails_generators/hostnet_deploy/templates/deploy.rb
83
+ - rails_generators/hostnet_email/USAGE
84
+ - rails_generators/hostnet_email/hostnet_email_generator.rb
85
+ - rails_generators/hostnet_email/templates/mail.rb
86
+ - script/console
87
+ - script/destroy
88
+ - script/generate
89
+ - setup.rb
90
+ - tasks/deployment.rake
91
+ - tasks/environment.rake
92
+ - tasks/website.rake
93
+ - test/test_generator_helper.rb
94
+ - test/test_helper.rb
95
+ - test/test_hostnet.rb
96
+ - test/test_hostnet_deploy_generator.rb
97
+ - test/test_hostnet_email_generator.rb
98
+ - tutoriais/001-meu-primeiro-deploy-de-aplicacao-rails-para-a-hostnet/tutorial.mkdn
99
+ - tutoriais/002-configurando-sua-aplicacao-para-enviar-e-mails/tutorial.mkdn
100
+ - tutoriais/003-dicas-para-administracao-e-debug-de-sua-aplicacao-rails/tutorial.mkdn
101
+ has_rdoc: true
102
+ homepage: http://github.com/mergulhao/hostnet
103
+ post_install_message: ""
104
+ rdoc_options:
105
+ - --main
106
+ - README.txt
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: "0"
114
+ version:
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: "0"
120
+ version:
121
+ requirements: []
122
+
123
+ rubyforge_project: hostnet
124
+ rubygems_version: 1.2.0
125
+ signing_key:
126
+ specification_version: 2
127
+ summary: "gem oficial para suporte a deploy de aplica\xC3\xA7\xC3\xB5es"
128
+ test_files:
129
+ - test/test_helper.rb
130
+ - test/test_generator_helper.rb
131
+ - test/test_hostnet.rb
132
+ - test/test_hostnet_deploy_generator.rb
133
+ - test/test_hostnet_email_generator.rb