webbynode 1.0.4 → 1.0.4.2
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.
Potentially problematic release.
This version of webbynode might be problematic. Click here for more details.
- data/Gemfile +20 -0
 - data/Gemfile.lock +69 -0
 - data/Guardfile +5 -0
 - data/Manifest +8 -0
 - data/Rakefile +1 -1
 - data/autotest/discover.rb +2 -0
 - data/lib/webbynode/commands/authorize_root.rb +23 -0
 - data/lib/webbynode/engines/all.rb +1 -0
 - data/lib/webbynode/engines/html.rb +5 -0
 - data/lib/webbynode/engines/rails.rb +9 -0
 - data/lib/webbynode/engines/rails3.rb +7 -0
 - data/lib/webbynode/server.rb +24 -5
 - data/lib/webbynode/ssh_keys.rb +4 -0
 - data/lib/webbynode.rb +3 -1
 - data/spec/spec_helper.rb +2 -2
 - data/spec/webbynode/commands/authorize_root_spec.rb +59 -0
 - data/spec/webbynode/commands/init_spec.rb +1 -1
 - data/spec/webbynode/commands/push_spec.rb +2 -2
 - data/spec/webbynode/engines/html_spec.rb +12 -0
 - data/spec/webbynode/engines/rails3_spec.rb +15 -0
 - data/spec/webbynode/engines/rails_spec.rb +18 -1
 - data/spec/webbynode/server_spec.rb +90 -1
 - data/webbynode.gemspec +4 -4
 - metadata +14 -3
 
    
        data/Gemfile
    ADDED
    
    | 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            source :rubygems
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            gem 'httparty'
         
     | 
| 
      
 4 
     | 
    
         
            +
            gem 'domainatrix'
         
     | 
| 
      
 5 
     | 
    
         
            +
            gem 'net-ssh'
         
     | 
| 
      
 6 
     | 
    
         
            +
            gem 'highline'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            group :development do
         
     | 
| 
      
 9 
     | 
    
         
            +
              gem 'rspec'
         
     | 
| 
      
 10 
     | 
    
         
            +
              gem 'growl'
         
     | 
| 
      
 11 
     | 
    
         
            +
              gem 'guard'
         
     | 
| 
      
 12 
     | 
    
         
            +
              gem 'guard-rspec'
         
     | 
| 
      
 13 
     | 
    
         
            +
              gem 'ZenTest'
         
     | 
| 
      
 14 
     | 
    
         
            +
              gem 'autotest-growl'
         
     | 
| 
      
 15 
     | 
    
         
            +
              gem 'database_cleaner'
         
     | 
| 
      
 16 
     | 
    
         
            +
              gem 'awesome_print'
         
     | 
| 
      
 17 
     | 
    
         
            +
              gem 'fakeweb'
         
     | 
| 
      
 18 
     | 
    
         
            +
              gem 'echoe'
         
     | 
| 
      
 19 
     | 
    
         
            +
              gem 'rcov'
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
    
        data/Gemfile.lock
    ADDED
    
    | 
         @@ -0,0 +1,69 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 2 
     | 
    
         
            +
              remote: http://rubygems.org/
         
     | 
| 
      
 3 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 4 
     | 
    
         
            +
                ZenTest (4.5.0)
         
     | 
| 
      
 5 
     | 
    
         
            +
                addressable (2.2.4)
         
     | 
| 
      
 6 
     | 
    
         
            +
                allison (2.0.3)
         
     | 
| 
      
 7 
     | 
    
         
            +
                autotest-growl (0.2.9)
         
     | 
| 
      
 8 
     | 
    
         
            +
                awesome_print (0.3.2)
         
     | 
| 
      
 9 
     | 
    
         
            +
                configuration (1.2.0)
         
     | 
| 
      
 10 
     | 
    
         
            +
                crack (0.1.8)
         
     | 
| 
      
 11 
     | 
    
         
            +
                database_cleaner (0.6.4)
         
     | 
| 
      
 12 
     | 
    
         
            +
                diff-lcs (1.1.2)
         
     | 
| 
      
 13 
     | 
    
         
            +
                domainatrix (0.0.7)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  addressable
         
     | 
| 
      
 15 
     | 
    
         
            +
                echoe (4.5.1)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  allison
         
     | 
| 
      
 17 
     | 
    
         
            +
                  gemcutter
         
     | 
| 
      
 18 
     | 
    
         
            +
                  rubyforge
         
     | 
| 
      
 19 
     | 
    
         
            +
                fakeweb (1.3.0)
         
     | 
| 
      
 20 
     | 
    
         
            +
                gemcutter (0.6.1)
         
     | 
| 
      
 21 
     | 
    
         
            +
                growl (1.0.3)
         
     | 
| 
      
 22 
     | 
    
         
            +
                guard (0.3.0)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  open_gem (~> 1.4.2)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  thor (~> 0.14.6)
         
     | 
| 
      
 25 
     | 
    
         
            +
                guard-rspec (0.1.9)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  guard (>= 0.2.2)
         
     | 
| 
      
 27 
     | 
    
         
            +
                highline (1.6.1)
         
     | 
| 
      
 28 
     | 
    
         
            +
                httparty (0.7.4)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  crack (= 0.1.8)
         
     | 
| 
      
 30 
     | 
    
         
            +
                json_pure (1.5.1)
         
     | 
| 
      
 31 
     | 
    
         
            +
                launchy (0.3.7)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  configuration (>= 0.0.5)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  rake (>= 0.8.1)
         
     | 
| 
      
 34 
     | 
    
         
            +
                net-ssh (2.1.0)
         
     | 
| 
      
 35 
     | 
    
         
            +
                open_gem (1.4.2)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  launchy (~> 0.3.5)
         
     | 
| 
      
 37 
     | 
    
         
            +
                rake (0.8.7)
         
     | 
| 
      
 38 
     | 
    
         
            +
                rcov (0.9.9)
         
     | 
| 
      
 39 
     | 
    
         
            +
                rspec (2.5.0)
         
     | 
| 
      
 40 
     | 
    
         
            +
                  rspec-core (~> 2.5.0)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  rspec-expectations (~> 2.5.0)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  rspec-mocks (~> 2.5.0)
         
     | 
| 
      
 43 
     | 
    
         
            +
                rspec-core (2.5.1)
         
     | 
| 
      
 44 
     | 
    
         
            +
                rspec-expectations (2.5.0)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  diff-lcs (~> 1.1.2)
         
     | 
| 
      
 46 
     | 
    
         
            +
                rspec-mocks (2.5.0)
         
     | 
| 
      
 47 
     | 
    
         
            +
                rubyforge (2.0.4)
         
     | 
| 
      
 48 
     | 
    
         
            +
                  json_pure (>= 1.1.7)
         
     | 
| 
      
 49 
     | 
    
         
            +
                thor (0.14.6)
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 52 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 55 
     | 
    
         
            +
              ZenTest
         
     | 
| 
      
 56 
     | 
    
         
            +
              autotest-growl
         
     | 
| 
      
 57 
     | 
    
         
            +
              awesome_print
         
     | 
| 
      
 58 
     | 
    
         
            +
              database_cleaner
         
     | 
| 
      
 59 
     | 
    
         
            +
              domainatrix
         
     | 
| 
      
 60 
     | 
    
         
            +
              echoe
         
     | 
| 
      
 61 
     | 
    
         
            +
              fakeweb
         
     | 
| 
      
 62 
     | 
    
         
            +
              growl
         
     | 
| 
      
 63 
     | 
    
         
            +
              guard
         
     | 
| 
      
 64 
     | 
    
         
            +
              guard-rspec
         
     | 
| 
      
 65 
     | 
    
         
            +
              highline
         
     | 
| 
      
 66 
     | 
    
         
            +
              httparty
         
     | 
| 
      
 67 
     | 
    
         
            +
              net-ssh
         
     | 
| 
      
 68 
     | 
    
         
            +
              rcov
         
     | 
| 
      
 69 
     | 
    
         
            +
              rspec
         
     | 
    
        data/Guardfile
    ADDED
    
    
    
        data/Manifest
    CHANGED
    
    | 
         @@ -1,8 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Gemfile
         
     | 
| 
      
 2 
     | 
    
         
            +
            Gemfile.lock
         
     | 
| 
      
 3 
     | 
    
         
            +
            Guardfile
         
     | 
| 
       1 
4 
     | 
    
         
             
            Manifest
         
     | 
| 
       2 
5 
     | 
    
         
             
            PostInstall.txt
         
     | 
| 
       3 
6 
     | 
    
         
             
            README.rdoc
         
     | 
| 
       4 
7 
     | 
    
         
             
            Rakefile
         
     | 
| 
       5 
8 
     | 
    
         
             
            assets/webbynode.png
         
     | 
| 
      
 9 
     | 
    
         
            +
            autotest/discover.rb
         
     | 
| 
       6 
10 
     | 
    
         
             
            bin/webbynode
         
     | 
| 
       7 
11 
     | 
    
         
             
            bin/wn
         
     | 
| 
       8 
12 
     | 
    
         
             
            changelog.rdoc
         
     | 
| 
         @@ -27,6 +31,7 @@ lib/webbynode/commands/add_key.rb 
     | 
|
| 
       27 
31 
     | 
    
         
             
            lib/webbynode/commands/addons.rb
         
     | 
| 
       28 
32 
     | 
    
         
             
            lib/webbynode/commands/alias.rb
         
     | 
| 
       29 
33 
     | 
    
         
             
            lib/webbynode/commands/apps.rb
         
     | 
| 
      
 34 
     | 
    
         
            +
            lib/webbynode/commands/authorize_root.rb
         
     | 
| 
       30 
35 
     | 
    
         
             
            lib/webbynode/commands/change_dns.rb
         
     | 
| 
       31 
36 
     | 
    
         
             
            lib/webbynode/commands/config.rb
         
     | 
| 
       32 
37 
     | 
    
         
             
            lib/webbynode/commands/console.rb
         
     | 
| 
         @@ -48,6 +53,7 @@ lib/webbynode/commands/webbies.rb 
     | 
|
| 
       48 
53 
     | 
    
         
             
            lib/webbynode/engines/all.rb
         
     | 
| 
       49 
54 
     | 
    
         
             
            lib/webbynode/engines/django.rb
         
     | 
| 
       50 
55 
     | 
    
         
             
            lib/webbynode/engines/engine.rb
         
     | 
| 
      
 56 
     | 
    
         
            +
            lib/webbynode/engines/html.rb
         
     | 
| 
       51 
57 
     | 
    
         
             
            lib/webbynode/engines/nodejs.rb
         
     | 
| 
       52 
58 
     | 
    
         
             
            lib/webbynode/engines/php.rb
         
     | 
| 
       53 
59 
     | 
    
         
             
            lib/webbynode/engines/rack.rb
         
     | 
| 
         @@ -104,6 +110,7 @@ spec/webbynode/commands/add_key_spec.rb 
     | 
|
| 
       104 
110 
     | 
    
         
             
            spec/webbynode/commands/addons_spec.rb
         
     | 
| 
       105 
111 
     | 
    
         
             
            spec/webbynode/commands/alias_spec.rb
         
     | 
| 
       106 
112 
     | 
    
         
             
            spec/webbynode/commands/apps_spec.rb
         
     | 
| 
      
 113 
     | 
    
         
            +
            spec/webbynode/commands/authorize_root_spec.rb
         
     | 
| 
       107 
114 
     | 
    
         
             
            spec/webbynode/commands/change_dns_spec.rb
         
     | 
| 
       108 
115 
     | 
    
         
             
            spec/webbynode/commands/config_spec.rb
         
     | 
| 
       109 
116 
     | 
    
         
             
            spec/webbynode/commands/console_spec.rb
         
     | 
| 
         @@ -121,6 +128,7 @@ spec/webbynode/commands/version_spec.rb 
     | 
|
| 
       121 
128 
     | 
    
         
             
            spec/webbynode/commands/webbies_spec.rb
         
     | 
| 
       122 
129 
     | 
    
         
             
            spec/webbynode/engines/django_spec.rb
         
     | 
| 
       123 
130 
     | 
    
         
             
            spec/webbynode/engines/engine_spec.rb
         
     | 
| 
      
 131 
     | 
    
         
            +
            spec/webbynode/engines/html_spec.rb
         
     | 
| 
       124 
132 
     | 
    
         
             
            spec/webbynode/engines/nodejs_spec.rb
         
     | 
| 
       125 
133 
     | 
    
         
             
            spec/webbynode/engines/php_spec.rb
         
     | 
| 
       126 
134 
     | 
    
         
             
            spec/webbynode/engines/rack_spec.rb
         
     | 
    
        data/Rakefile
    CHANGED
    
    
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Webbynode::Commands
         
     | 
| 
      
 2 
     | 
    
         
            +
              class AuthorizeRoot < Webbynode::Command
         
     | 
| 
      
 3 
     | 
    
         
            +
                requires_initialization!
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                summary "Adds your ssh public key to your Webby's root user"
         
     | 
| 
      
 6 
     | 
    
         
            +
                option :passphrase, "If present, passphrase will be used when creating a new SSH key", :take => :words
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                add_alias "authorizeroot"
         
     | 
| 
      
 9 
     | 
    
         
            +
                add_alias "authroot"
         
     | 
| 
      
 10 
     | 
    
         
            +
                
         
     | 
| 
      
 11 
     | 
    
         
            +
                def execute
         
     | 
| 
      
 12 
     | 
    
         
            +
                  server.add_ssh_root_key LocalSshKey, options[:passphrase].value
         
     | 
| 
      
 13 
     | 
    
         
            +
                  io.log "Your local SSH Key has been added to your Webby's root user", :notify
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                rescue Webbynode::InvalidAuthentication
         
     | 
| 
      
 16 
     | 
    
         
            +
                  io.log "Could not connect to webby: invalid authentication.", true
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                rescue Webbynode::PermissionError
         
     | 
| 
      
 19 
     | 
    
         
            +
                  io.log "Could not create an SSH key: permission error.", true
         
     | 
| 
      
 20 
     | 
    
         
            +
                  
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -8,5 +8,14 @@ module Webbynode::Engines 
     | 
|
| 
       8 
8 
     | 
    
         
             
                  io.directory?('app') && io.directory?('app/controllers') &&
         
     | 
| 
       9 
9 
     | 
    
         
             
                  io.file_exists?('config/environment.rb')
         
     | 
| 
       10 
10 
     | 
    
         
             
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
                
         
     | 
| 
      
 12 
     | 
    
         
            +
                def prepare
         
     | 
| 
      
 13 
     | 
    
         
            +
                  contents = io.read_file("config/database.yml")
         
     | 
| 
      
 14 
     | 
    
         
            +
                  if contents =~ /mysql2/
         
     | 
| 
      
 15 
     | 
    
         
            +
                    io.add_setting "rails_adapter", "mysql2"
         
     | 
| 
      
 16 
     | 
    
         
            +
                  else
         
     | 
| 
      
 17 
     | 
    
         
            +
                    io.remove_setting "rails_adapter"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  end
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
       11 
20 
     | 
    
         
             
              end
         
     | 
| 
       12 
21 
     | 
    
         
             
            end
         
     | 
| 
         @@ -17,6 +17,13 @@ module Webbynode::Engines 
     | 
|
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
                def check_gemfile
         
     | 
| 
       19 
19 
     | 
    
         
             
                  return unless gemfile.present?
         
     | 
| 
      
 20 
     | 
    
         
            +
                  
         
     | 
| 
      
 21 
     | 
    
         
            +
                  contents = io.read_file("config/database.yml")
         
     | 
| 
      
 22 
     | 
    
         
            +
                  if contents =~ /mysql2/
         
     | 
| 
      
 23 
     | 
    
         
            +
                    io.add_setting "rails3_adapter", "mysql2"
         
     | 
| 
      
 24 
     | 
    
         
            +
                  else
         
     | 
| 
      
 25 
     | 
    
         
            +
                    io.remove_setting "rails3_adapter"
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
       20 
27 
     | 
    
         | 
| 
       21 
28 
     | 
    
         
             
                  dependencies = gemfile.dependencies(:without => [:development, :test])
         
     | 
| 
       22 
29 
     | 
    
         
             
                  if dependencies.include? 'sqlite3-ruby'
         
     | 
    
        data/lib/webbynode/server.rb
    CHANGED
    
    | 
         @@ -26,16 +26,35 @@ module Webbynode 
     | 
|
| 
       26 
26 
     | 
    
         
             
                end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                def add_ssh_key(key_file, passphrase="")
         
     | 
| 
       29 
     | 
    
         
            -
                   
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                   
     | 
| 
      
 29 
     | 
    
         
            +
                  add_ssh_key_in "~", key_file, passphrase
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
                
         
     | 
| 
      
 32 
     | 
    
         
            +
                def add_ssh_root_key(key_file, passphrase="")
         
     | 
| 
      
 33 
     | 
    
         
            +
                  create_ssh_settings "/root", true
         
     | 
| 
      
 34 
     | 
    
         
            +
                  add_ssh_key_in "/root", key_file, passphrase, true
         
     | 
| 
       34 
35 
     | 
    
         
             
                end
         
     | 
| 
       35 
36 
     | 
    
         | 
| 
       36 
37 
     | 
    
         
             
                def application_pushed?
         
     | 
| 
       37 
38 
     | 
    
         
             
                  return false if remote_executor.exec("cd #{pushand.parse_remote_app_name}") =~ /No such file or directory/
         
     | 
| 
       38 
39 
     | 
    
         
             
                  true
         
     | 
| 
       39 
40 
     | 
    
         
             
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
                
         
     | 
| 
      
 42 
     | 
    
         
            +
                private
         
     | 
| 
      
 43 
     | 
    
         
            +
                
         
     | 
| 
      
 44 
     | 
    
         
            +
                def create_ssh_settings(folder, sudo=false)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  sudo = sudo ? "sudo " : ""
         
     | 
| 
      
 46 
     | 
    
         
            +
                  commands = "#{sudo}bash -c 'test -f #{folder}/.ssh/authorized_keys || (mkdir #{folder}/.ssh 2>/dev/null; chmod 700 #{folder}/.ssh; touch #{folder}/.ssh/authorized_keys; chmod 644 #{folder}/.ssh/authorized_keys)'"
         
     | 
| 
      
 47 
     | 
    
         
            +
                  remote_executor.exec commands
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
                
         
     | 
| 
      
 50 
     | 
    
         
            +
                def add_ssh_key_in(folder, key_file, passphrase, sudo=false)
         
     | 
| 
      
 51 
     | 
    
         
            +
                  io.create_local_key(passphrase) unless io.file_exists?(key_file)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  remote_executor.create_folder("#{folder}/.ssh")
         
     | 
| 
      
 53 
     | 
    
         
            +
                  
         
     | 
| 
      
 54 
     | 
    
         
            +
                  sudo = sudo ? "sudo " : ""
         
     | 
| 
      
 55 
     | 
    
         
            +
                  key_contents = io.read_file(key_file)
         
     | 
| 
      
 56 
     | 
    
         
            +
                  commands = "#{sudo}bash -c 'grep \"#{key_contents}\" #{folder}/.ssh/authorized_keys || (echo \"#{key_contents}\" >> #{folder}/.ssh/authorized_keys; chmod 644 #{folder}/.ssh/authorized_keys)'"
         
     | 
| 
      
 57 
     | 
    
         
            +
                  remote_executor.exec commands
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
       40 
59 
     | 
    
         
             
              end
         
     | 
| 
       41 
60 
     | 
    
         
             
            end
         
     | 
    
        data/lib/webbynode/ssh_keys.rb
    CHANGED
    
    | 
         @@ -6,6 +6,10 @@ module Webbynode 
     | 
|
| 
       6 
6 
     | 
    
         
             
                  run_remote_command "mkdir ~/.ssh 2>/dev/null; chmod 700 ~/.ssh; echo \"#{key}\" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys"
         
     | 
| 
       7 
7 
     | 
    
         
             
                end
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
                def add_key_to_remote_user(key, folder)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  run_remote_command "mkdir #{folder}/.ssh 2>/dev/null; chmod 700 #{folder}/.ssh; echo \"#{key}\" >> #{folder}/.ssh/authorized_keys; chmod 644 #{folder}/.ssh/authorized_keys"
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
                
         
     | 
| 
       9 
13 
     | 
    
         
             
                # lists all authorized keys on the remote server
         
     | 
| 
       10 
14 
     | 
    
         
             
                def remote_authorized_keys
         
     | 
| 
       11 
15 
     | 
    
         
             
                  run_remote_command "cat \$HOME/.ssh/authorized_keys"
         
     | 
    
        data/lib/webbynode.rb
    CHANGED
    
    | 
         @@ -33,6 +33,7 @@ require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'django') 
     | 
|
| 
       33 
33 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'php')
         
     | 
| 
       34 
34 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'nodejs')
         
     | 
| 
       35 
35 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'wsgi')
         
     | 
| 
      
 36 
     | 
    
         
            +
            require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'html')
         
     | 
| 
       36 
37 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'all')
         
     | 
| 
       37 
38 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'apps')
         
     | 
| 
       38 
39 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'addons')
         
     | 
| 
         @@ -55,12 +56,13 @@ require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'webbies') 
     | 
|
| 
       55 
56 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'version')
         
     | 
| 
       56 
57 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'user')
         
     | 
| 
       57 
58 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'settings')
         
     | 
| 
      
 59 
     | 
    
         
            +
            require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'authorize_root')
         
     | 
| 
       58 
60 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'console')
         
     | 
| 
       59 
61 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'logs')
         
     | 
| 
       60 
62 
     | 
    
         
             
            require File.join(File.dirname(__FILE__), 'webbynode', 'application')
         
     | 
| 
       61 
63 
     | 
    
         | 
| 
       62 
64 
     | 
    
         
             
            module Webbynode
         
     | 
| 
       63 
     | 
    
         
            -
              VERSION = '1.0.4'
         
     | 
| 
      
 65 
     | 
    
         
            +
              VERSION = '1.0.4.2'
         
     | 
| 
       64 
66 
     | 
    
         
             
            end
         
     | 
| 
       65 
67 
     | 
    
         | 
| 
       66 
68 
     | 
    
         
             
            class Array
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Require RSpec
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'rubygems'
         
     | 
| 
       3 
     | 
    
         
            -
            require ' 
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rspec'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'pp'
         
     | 
| 
       5 
5 
     | 
    
         
             
            begin
         
     | 
| 
       6 
6 
     | 
    
         
             
              require 'fakeweb'
         
     | 
| 
         @@ -44,7 +44,7 @@ module Kernel 
     | 
|
| 
       44 
44 
     | 
    
         
             
              def ppd(x); $stderr.puts x.pretty_inspect; end
         
     | 
| 
       45 
45 
     | 
    
         
             
            end
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 47 
     | 
    
         
            +
            RSpec.configure do |config|
         
     | 
| 
       48 
48 
     | 
    
         
             
              config.include Webbynode::IoStub
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
50 
     | 
    
         
             
              config.before(:each) do
         
     | 
| 
         @@ -0,0 +1,59 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Load Spec Helper
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'spec_helper')
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe Webbynode::Commands::AuthorizeRoot do
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:server) { double("server") }
         
     | 
| 
      
 6 
     | 
    
         
            +
              
         
     | 
| 
      
 7 
     | 
    
         
            +
              it "is aliased to authorizeroot" do
         
     | 
| 
      
 8 
     | 
    
         
            +
                Webbynode::Commands.should_receive(:const_get).with("AuthorizeRoot")
         
     | 
| 
      
 9 
     | 
    
         
            +
                Webbynode::Command.for("authorizeroot")
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
              
         
     | 
| 
      
 12 
     | 
    
         
            +
              it "is aliased to authroot" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                Webbynode::Commands.should_receive(:const_get).with("AuthorizeRoot")
         
     | 
| 
      
 14 
     | 
    
         
            +
                Webbynode::Command.for("authroot")
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
              
         
     | 
| 
      
 17 
     | 
    
         
            +
              context "when successful" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                it "uploads the local ssh key into the server's root folder" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  server.should_receive(:add_ssh_root_key).with(LocalSshKey, nil)
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  cmd = Webbynode::Commands::AuthorizeRoot.new
         
     | 
| 
      
 22 
     | 
    
         
            +
                  cmd.should_receive(:server).any_number_of_times.and_return(server)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  cmd.execute
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                it "should create an ssh key with a provided passphrase" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  server.should_receive(:add_ssh_root_key).with(LocalSshKey, "my_passphrase")
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  cmd = Webbynode::Commands::AuthorizeRoot.new("--passphrase=my_passphrase")
         
     | 
| 
      
 30 
     | 
    
         
            +
                  cmd.should_receive(:server).any_number_of_times.and_return(server)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  cmd.execute
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              context "when unsuccessful" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                let(:cmd) { Webbynode::Commands::AuthorizeRoot.new }
         
     | 
| 
      
 37 
     | 
    
         
            +
                let(:io)  { double("Io").as_null_object }  
         
     | 
| 
      
 38 
     | 
    
         
            +
                
         
     | 
| 
      
 39 
     | 
    
         
            +
                before(:each) do
         
     | 
| 
      
 40 
     | 
    
         
            +
                  cmd.should_receive(:io).any_number_of_times.and_return(io)
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
                
         
     | 
| 
      
 43 
     | 
    
         
            +
                it "reports an error if the ssh key could not be added due to invalid authentication" do
         
     | 
| 
      
 44 
     | 
    
         
            +
                  server.should_receive(:add_ssh_root_key).and_raise(Webbynode::InvalidAuthentication)
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  cmd.should_receive(:server).any_number_of_times.and_return(server)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  io.should_receive(:log).with("Could not connect to webby: invalid authentication.", true)
         
     | 
| 
      
 48 
     | 
    
         
            +
                  cmd.execute
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                it "should report an error if the ssh key could not be added due to a permission error" do
         
     | 
| 
      
 52 
     | 
    
         
            +
                  server.should_receive(:add_ssh_root_key).and_raise(Webbynode::PermissionError)
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  cmd.should_receive(:server).any_number_of_times.and_return(server)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  io.should_receive(:log).with("Could not create an SSH key: permission error.", true)
         
     | 
| 
      
 56 
     | 
    
         
            +
                  cmd.execute
         
     | 
| 
      
 57 
     | 
    
         
            +
                end
         
     | 
| 
      
 58 
     | 
    
         
            +
              end
         
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -267,7 +267,7 @@ describe Webbynode::Commands::Init do 
     | 
|
| 
       267 
267 
     | 
    
         
             
                  io.stub(:file_exists?).with("script/rails").and_return(false)
         
     | 
| 
       268 
268 
     | 
    
         
             
                  io.stub(:directory?).with('app').and_return(true)
         
     | 
| 
       269 
269 
     | 
    
         
             
                  io.stub(:directory?).with('app/controllers').and_return(true)
         
     | 
| 
       270 
     | 
    
         
            -
                  io.stub(:file_exists?).with('config/ 
     | 
| 
      
 270 
     | 
    
         
            +
                  io.stub(:file_exists?).with('config/environment.rb').and_return(true)
         
     | 
| 
       271 
271 
     | 
    
         | 
| 
       272 
272 
     | 
    
         
             
                  Webbynode::Io.stub(:new).and_return(io)
         
     | 
| 
       273 
273 
     | 
    
         
             
                  Webbynode::Git.stub(:new).and_return(git_handler)
         
     | 
| 
         @@ -163,7 +163,7 @@ describe Webbynode::Commands::Push do 
     | 
|
| 
       163 
163 
     | 
    
         
             
                describe "#perform_before_tasks" do
         
     | 
| 
       164 
164 
     | 
    
         
             
                  before(:each) do
         
     | 
| 
       165 
165 
     | 
    
         
             
                    push.before_tasks.stub!(:has_tasks?).and_return(true)
         
     | 
| 
       166 
     | 
    
         
            -
                    io.stub!(:exec).with("git push webbynode master")
         
     | 
| 
      
 166 
     | 
    
         
            +
                    io.stub!(:exec).with("git push webbynode +HEAD:master", false)
         
     | 
| 
       167 
167 
     | 
    
         
             
                  end
         
     | 
| 
       168 
168 
     | 
    
         | 
| 
       169 
169 
     | 
    
         
             
                  it "should provide feedback to the user that it's going to perform the tasks" do
         
     | 
| 
         @@ -182,7 +182,7 @@ describe Webbynode::Commands::Push do 
     | 
|
| 
       182 
182 
     | 
    
         
             
                describe "#perform_after_tasks" do
         
     | 
| 
       183 
183 
     | 
    
         
             
                  before(:each) do
         
     | 
| 
       184 
184 
     | 
    
         
             
                    push.after_tasks.stub!(:has_tasks?).and_return(true)
         
     | 
| 
       185 
     | 
    
         
            -
                    io.stub!(:exec).with("git push webbynode master")
         
     | 
| 
      
 185 
     | 
    
         
            +
                    io.stub!(:exec).with("git push webbynode +HEAD:master", false)
         
     | 
| 
       186 
186 
     | 
    
         
             
                  end
         
     | 
| 
       187 
187 
     | 
    
         | 
| 
       188 
188 
     | 
    
         
             
                  it "should provide feedback to the user that it's going to perform the tasks" do
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Load Spec Helper
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'spec_helper')
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            describe Webbynode::Engines::Html do
         
     | 
| 
      
 5 
     | 
    
         
            +
              describe 'class methods' do
         
     | 
| 
      
 6 
     | 
    
         
            +
                subject { Webbynode::Engines::Html }
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                its(:engine_id)    { should == 'html' }
         
     | 
| 
      
 9 
     | 
    
         
            +
                its(:engine_name)  { should == 'HTML' }
         
     | 
| 
      
 10 
     | 
    
         
            +
                its(:git_excluded) { should be_empty }
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -28,6 +28,21 @@ describe Webbynode::Engines::Rails3 do 
     | 
|
| 
       28 
28 
     | 
    
         
             
                  subject.stub!(:gemfile).and_return(gemfile)
         
     | 
| 
       29 
29 
     | 
    
         
             
                  lambda { subject.prepare }.should raise_error(Webbynode::Command::CommandError)
         
     | 
| 
       30 
30 
     | 
    
         
             
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                it "adds a rails3_adapter setting when mysql2 is used on the database.yml" do
         
     | 
| 
      
 33 
     | 
    
         
            +
                  io.should_receive(:read_file).with("config/database.yml").and_return("mysql2")
         
     | 
| 
      
 34 
     | 
    
         
            +
                  io.should_receive(:add_setting).with('rails3_adapter', 'mysql2')
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  subject.prepare
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
                
         
     | 
| 
      
 39 
     | 
    
         
            +
                it "doesn't add a rails3_adapter otherwise" do
         
     | 
| 
      
 40 
     | 
    
         
            +
                  io.should_receive(:read_file).with("config/database.yml").and_return("mysql")
         
     | 
| 
      
 41 
     | 
    
         
            +
                  io.should_receive(:add_setting).with('rails3_adapter', 'mysql2').never
         
     | 
| 
      
 42 
     | 
    
         
            +
                  io.should_receive(:remove_setting).with('rails3_adapter')
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  subject.prepare
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
       31 
46 
     | 
    
         
             
              end
         
     | 
| 
       32 
47 
     | 
    
         | 
| 
       33 
48 
     | 
    
         
             
              describe '#detect' do
         
     | 
| 
         @@ -22,7 +22,7 @@ describe Webbynode::Engines::Rails do 
     | 
|
| 
       22 
22 
     | 
    
         
             
                it "returns true if app app/controllers and config/environent.rb are found" do
         
     | 
| 
       23 
23 
     | 
    
         
             
                  io.stub!(:directory?).with('app').and_return(true)
         
     | 
| 
       24 
24 
     | 
    
         
             
                  io.stub!(:directory?).with('app/controllers').and_return(true)
         
     | 
| 
       25 
     | 
    
         
            -
                  io.stub!(:file_exists?).with('config/ 
     | 
| 
      
 25 
     | 
    
         
            +
                  io.stub!(:file_exists?).with('config/environment.rb').and_return(true)
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                  subject.should be_detected
         
     | 
| 
       28 
28 
     | 
    
         
             
                end
         
     | 
| 
         @@ -35,4 +35,21 @@ describe Webbynode::Engines::Rails do 
     | 
|
| 
       35 
35 
     | 
    
         
             
                  subject.should_not be_detected
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
37 
     | 
    
         
             
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
              
         
     | 
| 
      
 39 
     | 
    
         
            +
              describe '#prepare' do
         
     | 
| 
      
 40 
     | 
    
         
            +
                it "adds a rails_adapter setting when mysql2 is used on the database.yml" do
         
     | 
| 
      
 41 
     | 
    
         
            +
                  io.should_receive(:read_file).with("config/database.yml").and_return("mysql2")
         
     | 
| 
      
 42 
     | 
    
         
            +
                  io.should_receive(:add_setting).with('rails_adapter', 'mysql2')
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  subject.prepare
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
                
         
     | 
| 
      
 47 
     | 
    
         
            +
                it "doesn't add a rails_adapter otherwise" do
         
     | 
| 
      
 48 
     | 
    
         
            +
                  io.should_receive(:read_file).with("config/database.yml").and_return("mysql")
         
     | 
| 
      
 49 
     | 
    
         
            +
                  io.should_receive(:add_setting).with('rails_adapter', 'mysql2').never
         
     | 
| 
      
 50 
     | 
    
         
            +
                  io.should_receive(:remove_setting).with('rails_adapter')
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                  subject.prepare
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
       38 
55 
     | 
    
         
             
            end
         
     | 
| 
         @@ -80,13 +80,102 @@ describe Webbynode::Server do 
     | 
|
| 
       80 
80 
     | 
    
         | 
| 
       81 
81 
     | 
    
         
             
                    it "should upload the local key to the server" do
         
     | 
| 
       82 
82 
     | 
    
         
             
                      @io.should_receive(:read_file).with("abc").and_return("key_contents")
         
     | 
| 
       83 
     | 
    
         
            -
                      @re.should_receive(:exec).with("grep \"key_contents\" ~/.ssh/authorized_keys || (echo \"key_contents\" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys)")
         
     | 
| 
      
 83 
     | 
    
         
            +
                      @re.should_receive(:exec).with("bash -c 'grep \"key_contents\" ~/.ssh/authorized_keys || (echo \"key_contents\" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys)'")
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
       85 
85 
     | 
    
         
             
                      @server.add_ssh_key "abc"
         
     | 
| 
       86 
86 
     | 
    
         
             
                    end
         
     | 
| 
       87 
87 
     | 
    
         
             
                  end
         
     | 
| 
       88 
88 
     | 
    
         
             
                end
         
     | 
| 
       89 
89 
     | 
    
         | 
| 
      
 90 
     | 
    
         
            +
                describe "#application_pushed?" do
         
     | 
| 
      
 91 
     | 
    
         
            +
                  context "when successful" do
         
     | 
| 
      
 92 
     | 
    
         
            +
                    it "should check if the application has been pushed" do
         
     | 
| 
      
 93 
     | 
    
         
            +
                      @pushand.should_receive(:parse_remote_app_name).and_return('test.webbynode.com')
         
     | 
| 
      
 94 
     | 
    
         
            +
                      @re.should_receive(:exec).with("cd test.webbynode.com")
         
     | 
| 
      
 95 
     | 
    
         
            +
                      @server.application_pushed?
         
     | 
| 
      
 96 
     | 
    
         
            +
                    end
         
     | 
| 
      
 97 
     | 
    
         
            +
                  end
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
                  context "when unsuccessful" do
         
     | 
| 
      
 100 
     | 
    
         
            +
                    it "should check if the application has been pushed" do
         
     | 
| 
      
 101 
     | 
    
         
            +
                      @pushand.should_receive(:parse_remote_app_name).and_return('test.webbynode.com')
         
     | 
| 
      
 102 
     | 
    
         
            +
                      error_message = "bash: line 0: cd: test.webbynode.com: No such file or directory"
         
     | 
| 
      
 103 
     | 
    
         
            +
                      @re.should_receive(:exec).with("cd test.webbynode.com").and_return(error_message)
         
     | 
| 
      
 104 
     | 
    
         
            +
                      error_message.should =~ /No such file or directory/
         
     | 
| 
      
 105 
     | 
    
         
            +
                      @server.application_pushed?
         
     | 
| 
      
 106 
     | 
    
         
            +
                    end
         
     | 
| 
      
 107 
     | 
    
         
            +
                  end
         
     | 
| 
      
 108 
     | 
    
         
            +
                end
         
     | 
| 
      
 109 
     | 
    
         
            +
              end
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
              describe "#add_ssh_root_key" do
         
     | 
| 
      
 113 
     | 
    
         
            +
                before(:each) do
         
     | 
| 
      
 114 
     | 
    
         
            +
                  @io = mock("Io")
         
     | 
| 
      
 115 
     | 
    
         
            +
                  @io.as_null_object
         
     | 
| 
      
 116 
     | 
    
         
            +
                
         
     | 
| 
      
 117 
     | 
    
         
            +
                  @re = mock("RemoteExecutor")
         
     | 
| 
      
 118 
     | 
    
         
            +
                  @re.as_null_object
         
     | 
| 
      
 119 
     | 
    
         
            +
                  
         
     | 
| 
      
 120 
     | 
    
         
            +
                  @pushand = mock("PushAnd")
         
     | 
| 
      
 121 
     | 
    
         
            +
                  @pushand.as_null_object
         
     | 
| 
      
 122 
     | 
    
         
            +
                
         
     | 
| 
      
 123 
     | 
    
         
            +
                  @server = Webbynode::Server.new("1.2.3.4", "git", 22)
         
     | 
| 
      
 124 
     | 
    
         
            +
                  @server.should_receive(:io).any_number_of_times.and_return(@io)
         
     | 
| 
      
 125 
     | 
    
         
            +
                  @server.should_receive(:remote_executor).any_number_of_times.and_return(@re)
         
     | 
| 
      
 126 
     | 
    
         
            +
                  @server.should_receive(:pushand).any_number_of_times.and_return(@pushand)
         
     | 
| 
      
 127 
     | 
    
         
            +
                end
         
     | 
| 
      
 128 
     | 
    
         
            +
              
         
     | 
| 
      
 129 
     | 
    
         
            +
                describe "which local key missing" do
         
     | 
| 
      
 130 
     | 
    
         
            +
                  context "when unsuccessful" do
         
     | 
| 
      
 131 
     | 
    
         
            +
                    it "creates a local SSH key with empty passphrase" do
         
     | 
| 
      
 132 
     | 
    
         
            +
                      @io.should_receive(:file_exists?).with("xyz").and_return(false)
         
     | 
| 
      
 133 
     | 
    
         
            +
                      @io.should_receive(:create_local_key).with("")
         
     | 
| 
      
 134 
     | 
    
         
            +
                  
         
     | 
| 
      
 135 
     | 
    
         
            +
                      @server.add_ssh_root_key "xyz"
         
     | 
| 
      
 136 
     | 
    
         
            +
                    end
         
     | 
| 
      
 137 
     | 
    
         
            +
              
         
     | 
| 
      
 138 
     | 
    
         
            +
                    it "creates a local SSH key with the provided passphrase" do
         
     | 
| 
      
 139 
     | 
    
         
            +
                      @io.should_receive(:file_exists?).with("abc").and_return(false)
         
     | 
| 
      
 140 
     | 
    
         
            +
                      @io.should_receive(:create_local_key).with("my_passphrase")
         
     | 
| 
      
 141 
     | 
    
         
            +
                  
         
     | 
| 
      
 142 
     | 
    
         
            +
                      @server.add_ssh_root_key "abc", "my_passphrase"
         
     | 
| 
      
 143 
     | 
    
         
            +
                    end
         
     | 
| 
      
 144 
     | 
    
         
            +
                  end
         
     | 
| 
      
 145 
     | 
    
         
            +
                  
         
     | 
| 
      
 146 
     | 
    
         
            +
                  context "when unsuccessful" do
         
     | 
| 
      
 147 
     | 
    
         
            +
                    it "raises a PermissionError if cannot write the key" do
         
     | 
| 
      
 148 
     | 
    
         
            +
                      @io.should_receive(:file_exists?).with("xyz").and_return(false)
         
     | 
| 
      
 149 
     | 
    
         
            +
                      @io.should_receive(:create_local_key).and_raise(Webbynode::PermissionError)
         
     | 
| 
      
 150 
     | 
    
         
            +
              
         
     | 
| 
      
 151 
     | 
    
         
            +
                      lambda { @server.add_ssh_root_key "xyz" }.should raise_error(Webbynode::PermissionError)
         
     | 
| 
      
 152 
     | 
    
         
            +
                    end
         
     | 
| 
      
 153 
     | 
    
         
            +
                  end
         
     | 
| 
      
 154 
     | 
    
         
            +
                end
         
     | 
| 
      
 155 
     | 
    
         
            +
                
         
     | 
| 
      
 156 
     | 
    
         
            +
                describe "with local key present" do
         
     | 
| 
      
 157 
     | 
    
         
            +
                  context "when successful" do
         
     | 
| 
      
 158 
     | 
    
         
            +
                    it "doesn't create a local key" do
         
     | 
| 
      
 159 
     | 
    
         
            +
                      @io.should_receive(:file_exists?).with("xyz").and_return(true)
         
     | 
| 
      
 160 
     | 
    
         
            +
                      @io.should_receive(:create_local_key).never()
         
     | 
| 
      
 161 
     | 
    
         
            +
                      
         
     | 
| 
      
 162 
     | 
    
         
            +
                      @server.add_ssh_root_key "xyz"
         
     | 
| 
      
 163 
     | 
    
         
            +
                    end
         
     | 
| 
      
 164 
     | 
    
         
            +
                    
         
     | 
| 
      
 165 
     | 
    
         
            +
                    it "creates the SSH folder on the server" do
         
     | 
| 
      
 166 
     | 
    
         
            +
                      @re.should_receive(:create_folder).with("/root/.ssh")
         
     | 
| 
      
 167 
     | 
    
         
            +
                      @server.add_ssh_root_key "abc"
         
     | 
| 
      
 168 
     | 
    
         
            +
                    end
         
     | 
| 
      
 169 
     | 
    
         
            +
              
         
     | 
| 
      
 170 
     | 
    
         
            +
                    it "creates the local key to the server" do
         
     | 
| 
      
 171 
     | 
    
         
            +
                      @io.should_receive(:read_file).with("abc").and_return("key_contents")
         
     | 
| 
      
 172 
     | 
    
         
            +
                      @re.should_receive(:exec).with("sudo bash -c 'grep \"key_contents\" /root/.ssh/authorized_keys || (echo \"key_contents\" >> /root/.ssh/authorized_keys; chmod 644 /root/.ssh/authorized_keys)'")
         
     | 
| 
      
 173 
     | 
    
         
            +
              
         
     | 
| 
      
 174 
     | 
    
         
            +
                      @server.add_ssh_root_key "abc"
         
     | 
| 
      
 175 
     | 
    
         
            +
                    end
         
     | 
| 
      
 176 
     | 
    
         
            +
                  end
         
     | 
| 
      
 177 
     | 
    
         
            +
                end
         
     | 
| 
      
 178 
     | 
    
         
            +
                
         
     | 
| 
       90 
179 
     | 
    
         
             
                describe "#application_pushed?" do
         
     | 
| 
       91 
180 
     | 
    
         
             
                  context "when successful" do
         
     | 
| 
       92 
181 
     | 
    
         
             
                    it "should check if the application has been pushed" do
         
     | 
    
        data/webbynode.gemspec
    CHANGED
    
    | 
         @@ -2,16 +2,16 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       4 
4 
     | 
    
         
             
              s.name = %q{webbynode}
         
     | 
| 
       5 
     | 
    
         
            -
              s.version = "1.0.4"
         
     | 
| 
      
 5 
     | 
    
         
            +
              s.version = "1.0.4.2"
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       8 
8 
     | 
    
         
             
              s.authors = ["Felipe Coury"]
         
     | 
| 
       9 
     | 
    
         
            -
              s.date = %q{2011-02- 
     | 
| 
      
 9 
     | 
    
         
            +
              s.date = %q{2011-02-26}
         
     | 
| 
       10 
10 
     | 
    
         
             
              s.description = %q{Webbynode Deployment Gem}
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.email = %q{felipe@webbynode.com}
         
     | 
| 
       12 
12 
     | 
    
         
             
              s.executables = ["webbynode", "wn"]
         
     | 
| 
       13 
     | 
    
         
            -
              s.extra_rdoc_files = ["README.rdoc", "bin/webbynode", "bin/wn", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb"]
         
     | 
| 
       14 
     | 
    
         
            -
              s.files = ["Manifest", "PostInstall.txt", "README.rdoc", "Rakefile", "assets/webbynode.png", "bin/webbynode", "bin/wn", "changelog.rdoc", "cucumber.yml.old", "inactive_features/bootstrap.feature", "inactive_features/step_definitions/command_steps.rb", "inactive_features/support/env.rb", "inactive_features/support/hooks.rb", "inactive_features/support/io_features.rb", "inactive_features/support/mocha.rb", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb", "spec/fixtures/aliases", "spec/fixtures/api/credentials", "spec/fixtures/api/dns", "spec/fixtures/api/dns_a_record", "spec/fixtures/api/dns_a_record_already_exists", "spec/fixtures/api/dns_a_record_error", "spec/fixtures/api/dns_new_zone", "spec/fixtures/api/webbies", "spec/fixtures/api/webbies_unauthorized", "spec/fixtures/api/webby", "spec/fixtures/commands/tasks/after_push", "spec/fixtures/fixture_helpers", "spec/fixtures/git/config/210.11.13.12", "spec/fixtures/git/config/67.23.79.31", "spec/fixtures/git/config/67.23.79.32", "spec/fixtures/git/config/config", "spec/fixtures/git/config/config_5", "spec/fixtures/git/config/new_210.11.13.12", "spec/fixtures/git/config/new_67.23.79.31", "spec/fixtures/git/config/new_67.23.79.32", "spec/fixtures/git/config/new_config", "spec/fixtures/git/status/clean", "spec/fixtures/git/status/dirty", "spec/fixtures/nodejs/server.js", "spec/fixtures/pushand", "spec/fixtures/settings.py", "spec/fixtures/trial/user_add", "spec/spec_helper.rb", "spec/webbynode/api_client_spec.rb", "spec/webbynode/application_spec.rb", "spec/webbynode/command_spec.rb", "spec/webbynode/commands/add_backup_spec.rb", "spec/webbynode/commands/add_key_spec.rb", "spec/webbynode/commands/addons_spec.rb", "spec/webbynode/commands/alias_spec.rb", "spec/webbynode/commands/apps_spec.rb", "spec/webbynode/commands/change_dns_spec.rb", "spec/webbynode/commands/config_spec.rb", "spec/webbynode/commands/console_spec.rb", "spec/webbynode/commands/delete_spec.rb", "spec/webbynode/commands/help_spec.rb", "spec/webbynode/commands/init_spec.rb", "spec/webbynode/commands/logs_spec.rb", "spec/webbynode/commands/open_spec.rb", "spec/webbynode/commands/push_spec.rb", "spec/webbynode/commands/remote_spec.rb", "spec/webbynode/commands/settings_spec.rb", "spec/webbynode/commands/tasks_spec.rb", "spec/webbynode/commands/user_spec.rb", "spec/webbynode/commands/version_spec.rb", "spec/webbynode/commands/webbies_spec.rb", "spec/webbynode/engines/django_spec.rb", "spec/webbynode/engines/engine_spec.rb", "spec/webbynode/engines/nodejs_spec.rb", "spec/webbynode/engines/php_spec.rb", "spec/webbynode/engines/rack_spec.rb", "spec/webbynode/engines/rails3_spec.rb", "spec/webbynode/engines/rails_spec.rb", "spec/webbynode/engines/wsgi_spec.rb", "spec/webbynode/gemfile_spec.rb", "spec/webbynode/git_spec.rb", "spec/webbynode/io_spec.rb", "spec/webbynode/option_spec.rb", "spec/webbynode/parameter_spec.rb", "spec/webbynode/properties_spec.rb", "spec/webbynode/push_and_spec.rb", "spec/webbynode/remote_executor_spec.rb", "spec/webbynode/server_spec.rb", "spec/webbynode/ssh_spec.rb", "spec/webbynode/trial_spec.rb", "webbynode.gemspec"]
         
     | 
| 
      
 13 
     | 
    
         
            +
              s.extra_rdoc_files = ["README.rdoc", "bin/webbynode", "bin/wn", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/authorize_root.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/html.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb"]
         
     | 
| 
      
 14 
     | 
    
         
            +
              s.files = ["Gemfile", "Gemfile.lock", "Guardfile", "Manifest", "PostInstall.txt", "README.rdoc", "Rakefile", "assets/webbynode.png", "autotest/discover.rb", "bin/webbynode", "bin/wn", "changelog.rdoc", "cucumber.yml.old", "inactive_features/bootstrap.feature", "inactive_features/step_definitions/command_steps.rb", "inactive_features/support/env.rb", "inactive_features/support/hooks.rb", "inactive_features/support/io_features.rb", "inactive_features/support/mocha.rb", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/authorize_root.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/html.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb", "spec/fixtures/aliases", "spec/fixtures/api/credentials", "spec/fixtures/api/dns", "spec/fixtures/api/dns_a_record", "spec/fixtures/api/dns_a_record_already_exists", "spec/fixtures/api/dns_a_record_error", "spec/fixtures/api/dns_new_zone", "spec/fixtures/api/webbies", "spec/fixtures/api/webbies_unauthorized", "spec/fixtures/api/webby", "spec/fixtures/commands/tasks/after_push", "spec/fixtures/fixture_helpers", "spec/fixtures/git/config/210.11.13.12", "spec/fixtures/git/config/67.23.79.31", "spec/fixtures/git/config/67.23.79.32", "spec/fixtures/git/config/config", "spec/fixtures/git/config/config_5", "spec/fixtures/git/config/new_210.11.13.12", "spec/fixtures/git/config/new_67.23.79.31", "spec/fixtures/git/config/new_67.23.79.32", "spec/fixtures/git/config/new_config", "spec/fixtures/git/status/clean", "spec/fixtures/git/status/dirty", "spec/fixtures/nodejs/server.js", "spec/fixtures/pushand", "spec/fixtures/settings.py", "spec/fixtures/trial/user_add", "spec/spec_helper.rb", "spec/webbynode/api_client_spec.rb", "spec/webbynode/application_spec.rb", "spec/webbynode/command_spec.rb", "spec/webbynode/commands/add_backup_spec.rb", "spec/webbynode/commands/add_key_spec.rb", "spec/webbynode/commands/addons_spec.rb", "spec/webbynode/commands/alias_spec.rb", "spec/webbynode/commands/apps_spec.rb", "spec/webbynode/commands/authorize_root_spec.rb", "spec/webbynode/commands/change_dns_spec.rb", "spec/webbynode/commands/config_spec.rb", "spec/webbynode/commands/console_spec.rb", "spec/webbynode/commands/delete_spec.rb", "spec/webbynode/commands/help_spec.rb", "spec/webbynode/commands/init_spec.rb", "spec/webbynode/commands/logs_spec.rb", "spec/webbynode/commands/open_spec.rb", "spec/webbynode/commands/push_spec.rb", "spec/webbynode/commands/remote_spec.rb", "spec/webbynode/commands/settings_spec.rb", "spec/webbynode/commands/tasks_spec.rb", "spec/webbynode/commands/user_spec.rb", "spec/webbynode/commands/version_spec.rb", "spec/webbynode/commands/webbies_spec.rb", "spec/webbynode/engines/django_spec.rb", "spec/webbynode/engines/engine_spec.rb", "spec/webbynode/engines/html_spec.rb", "spec/webbynode/engines/nodejs_spec.rb", "spec/webbynode/engines/php_spec.rb", "spec/webbynode/engines/rack_spec.rb", "spec/webbynode/engines/rails3_spec.rb", "spec/webbynode/engines/rails_spec.rb", "spec/webbynode/engines/wsgi_spec.rb", "spec/webbynode/gemfile_spec.rb", "spec/webbynode/git_spec.rb", "spec/webbynode/io_spec.rb", "spec/webbynode/option_spec.rb", "spec/webbynode/parameter_spec.rb", "spec/webbynode/properties_spec.rb", "spec/webbynode/push_and_spec.rb", "spec/webbynode/remote_executor_spec.rb", "spec/webbynode/server_spec.rb", "spec/webbynode/ssh_spec.rb", "spec/webbynode/trial_spec.rb", "webbynode.gemspec"]
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.homepage = %q{http://webbynode.com}
         
     | 
| 
       16 
16 
     | 
    
         
             
              s.post_install_message = %q{
         
     | 
| 
       17 
17 
     | 
    
         
             
            -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: webbynode
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 75
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 1
         
     | 
| 
       8 
8 
     | 
    
         
             
              - 0
         
     | 
| 
       9 
9 
     | 
    
         
             
              - 4
         
     | 
| 
       10 
     | 
    
         
            -
               
     | 
| 
      
 10 
     | 
    
         
            +
              - 2
         
     | 
| 
      
 11 
     | 
    
         
            +
              version: 1.0.4.2
         
     | 
| 
       11 
12 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
13 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
14 
     | 
    
         
             
            - Felipe Coury
         
     | 
| 
         @@ -15,7 +16,7 @@ autorequire: 
     | 
|
| 
       15 
16 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
17 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            date: 2011-02- 
     | 
| 
      
 19 
     | 
    
         
            +
            date: 2011-02-26 00:00:00 -03:00
         
     | 
| 
       19 
20 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       20 
21 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       21 
22 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -139,6 +140,7 @@ extra_rdoc_files: 
     | 
|
| 
       139 
140 
     | 
    
         
             
            - lib/webbynode/commands/addons.rb
         
     | 
| 
       140 
141 
     | 
    
         
             
            - lib/webbynode/commands/alias.rb
         
     | 
| 
       141 
142 
     | 
    
         
             
            - lib/webbynode/commands/apps.rb
         
     | 
| 
      
 143 
     | 
    
         
            +
            - lib/webbynode/commands/authorize_root.rb
         
     | 
| 
       142 
144 
     | 
    
         
             
            - lib/webbynode/commands/change_dns.rb
         
     | 
| 
       143 
145 
     | 
    
         
             
            - lib/webbynode/commands/config.rb
         
     | 
| 
       144 
146 
     | 
    
         
             
            - lib/webbynode/commands/console.rb
         
     | 
| 
         @@ -160,6 +162,7 @@ extra_rdoc_files: 
     | 
|
| 
       160 
162 
     | 
    
         
             
            - lib/webbynode/engines/all.rb
         
     | 
| 
       161 
163 
     | 
    
         
             
            - lib/webbynode/engines/django.rb
         
     | 
| 
       162 
164 
     | 
    
         
             
            - lib/webbynode/engines/engine.rb
         
     | 
| 
      
 165 
     | 
    
         
            +
            - lib/webbynode/engines/html.rb
         
     | 
| 
       163 
166 
     | 
    
         
             
            - lib/webbynode/engines/nodejs.rb
         
     | 
| 
       164 
167 
     | 
    
         
             
            - lib/webbynode/engines/php.rb
         
     | 
| 
       165 
168 
     | 
    
         
             
            - lib/webbynode/engines/rack.rb
         
     | 
| 
         @@ -181,11 +184,15 @@ extra_rdoc_files: 
     | 
|
| 
       181 
184 
     | 
    
         
             
            - lib/webbynode/trial.rb
         
     | 
| 
       182 
185 
     | 
    
         
             
            - lib/webbynode/updater.rb
         
     | 
| 
       183 
186 
     | 
    
         
             
            files: 
         
     | 
| 
      
 187 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
      
 188 
     | 
    
         
            +
            - Gemfile.lock
         
     | 
| 
      
 189 
     | 
    
         
            +
            - Guardfile
         
     | 
| 
       184 
190 
     | 
    
         
             
            - Manifest
         
     | 
| 
       185 
191 
     | 
    
         
             
            - PostInstall.txt
         
     | 
| 
       186 
192 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
       187 
193 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       188 
194 
     | 
    
         
             
            - assets/webbynode.png
         
     | 
| 
      
 195 
     | 
    
         
            +
            - autotest/discover.rb
         
     | 
| 
       189 
196 
     | 
    
         
             
            - bin/webbynode
         
     | 
| 
       190 
197 
     | 
    
         
             
            - bin/wn
         
     | 
| 
       191 
198 
     | 
    
         
             
            - changelog.rdoc
         
     | 
| 
         @@ -210,6 +217,7 @@ files: 
     | 
|
| 
       210 
217 
     | 
    
         
             
            - lib/webbynode/commands/addons.rb
         
     | 
| 
       211 
218 
     | 
    
         
             
            - lib/webbynode/commands/alias.rb
         
     | 
| 
       212 
219 
     | 
    
         
             
            - lib/webbynode/commands/apps.rb
         
     | 
| 
      
 220 
     | 
    
         
            +
            - lib/webbynode/commands/authorize_root.rb
         
     | 
| 
       213 
221 
     | 
    
         
             
            - lib/webbynode/commands/change_dns.rb
         
     | 
| 
       214 
222 
     | 
    
         
             
            - lib/webbynode/commands/config.rb
         
     | 
| 
       215 
223 
     | 
    
         
             
            - lib/webbynode/commands/console.rb
         
     | 
| 
         @@ -231,6 +239,7 @@ files: 
     | 
|
| 
       231 
239 
     | 
    
         
             
            - lib/webbynode/engines/all.rb
         
     | 
| 
       232 
240 
     | 
    
         
             
            - lib/webbynode/engines/django.rb
         
     | 
| 
       233 
241 
     | 
    
         
             
            - lib/webbynode/engines/engine.rb
         
     | 
| 
      
 242 
     | 
    
         
            +
            - lib/webbynode/engines/html.rb
         
     | 
| 
       234 
243 
     | 
    
         
             
            - lib/webbynode/engines/nodejs.rb
         
     | 
| 
       235 
244 
     | 
    
         
             
            - lib/webbynode/engines/php.rb
         
     | 
| 
       236 
245 
     | 
    
         
             
            - lib/webbynode/engines/rack.rb
         
     | 
| 
         @@ -287,6 +296,7 @@ files: 
     | 
|
| 
       287 
296 
     | 
    
         
             
            - spec/webbynode/commands/addons_spec.rb
         
     | 
| 
       288 
297 
     | 
    
         
             
            - spec/webbynode/commands/alias_spec.rb
         
     | 
| 
       289 
298 
     | 
    
         
             
            - spec/webbynode/commands/apps_spec.rb
         
     | 
| 
      
 299 
     | 
    
         
            +
            - spec/webbynode/commands/authorize_root_spec.rb
         
     | 
| 
       290 
300 
     | 
    
         
             
            - spec/webbynode/commands/change_dns_spec.rb
         
     | 
| 
       291 
301 
     | 
    
         
             
            - spec/webbynode/commands/config_spec.rb
         
     | 
| 
       292 
302 
     | 
    
         
             
            - spec/webbynode/commands/console_spec.rb
         
     | 
| 
         @@ -304,6 +314,7 @@ files: 
     | 
|
| 
       304 
314 
     | 
    
         
             
            - spec/webbynode/commands/webbies_spec.rb
         
     | 
| 
       305 
315 
     | 
    
         
             
            - spec/webbynode/engines/django_spec.rb
         
     | 
| 
       306 
316 
     | 
    
         
             
            - spec/webbynode/engines/engine_spec.rb
         
     | 
| 
      
 317 
     | 
    
         
            +
            - spec/webbynode/engines/html_spec.rb
         
     | 
| 
       307 
318 
     | 
    
         
             
            - spec/webbynode/engines/nodejs_spec.rb
         
     | 
| 
       308 
319 
     | 
    
         
             
            - spec/webbynode/engines/php_spec.rb
         
     | 
| 
       309 
320 
     | 
    
         
             
            - spec/webbynode/engines/rack_spec.rb
         
     |