rrails 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changes.md +6 -0
 - data/README.md +29 -4
 - data/VERSION +1 -1
 - data/bin/rrails +22 -2
 - data/lib/rrails/client.rb +5 -4
 - data/lib/rrails/server.rb +18 -6
 - data/lib/rrails.rb +9 -5
 - data/rrails.gemspec +2 -2
 - metadata +3 -3
 
    
        data/Changes.md
    CHANGED
    
    | 
         @@ -1,4 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            v1.0.1				2012-10-21 23:58:00 +0900
         
     | 
| 
      
 2 
     | 
    
         
            +
             - FEATURE: config file suport. you can put config file at conf/rrails.yml and auto loaded.(thanks quark-zju)
         
     | 
| 
      
 3 
     | 
    
         
            +
             - MOD: support using gem's command. (for example you can use annotate command on rrails.) (thanks quark-zju)
         
     | 
| 
      
 4 
     | 
    
         
            +
             - FIX: uninitialized constant warnings when reloading rrails fixed. (thanks quark-zju)
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
       1 
6 
     | 
    
         
             
            v1.0.0				2012-10-16 01:03:00 +0900
         
     | 
| 
      
 7 
     | 
    
         
            +
            ------------------------------------------------------------------------
         
     | 
| 
       2 
8 
     | 
    
         
             
             - XXX: It may have many imcopatible changes. "1.0.0" does not mean "stable version".
         
     | 
| 
       3 
9 
     | 
    
         
             
             - MOD: support UNIXDomainSocket instead of TCPSocket. And UnixDomainSocket is default behaviour. So you can be easy to run rrails in many rails project. But you should run rrails clinet under your project's directory.(thanks quark-zju)
         
     | 
| 
       4 
10 
     | 
    
         
             
             - MOD: "rails-server" command is obsolate. please use "rrails start" instead. see more about README.md. (thanks quark-zju)
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -13,8 +13,8 @@ Without rrails: 
     | 
|
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            With rrails:
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
                $ source <(rrails shellrc)
         
     | 
| 
       17 
     | 
    
         
            -
                $ rrails start                         # optionally
         
     | 
| 
      
 16 
     | 
    
         
            +
                $ source <(rrails shellrc)             # set aliases for rails and rake
         
     | 
| 
      
 17 
     | 
    
         
            +
                $ rrails start                         # start the server, optionally
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                $ time ( rails generate >/dev/null )
         
     | 
| 
       20 
20 
     | 
    
         
             
                ( rails generate > /dev/null; )  0.05s user 0.01s system 6% cpu 0.904 total
         
     | 
| 
         @@ -26,17 +26,26 @@ With rrails: 
     | 
|
| 
       26 
26 
     | 
    
         
             
            * POSIX Environment (Linux 2.6 - , Mac OSX Montain Lion). Windows is not supported.
         
     | 
| 
       27 
27 
     | 
    
         
             
            * Ruby 1.9.3p194 or above
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
      
 29 
     | 
    
         
            +
            ## Installation
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            Install from shell:
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                gem install rrails
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            And it's done. No need to add rrails to Gemfile.
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
       29 
37 
     | 
    
         
             
            ## Usage
         
     | 
| 
       30 
38 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
            Run rails/rake commands using rrails:
         
     | 
| 
      
 39 
     | 
    
         
            +
            Run rails/rake and other commands using rrails:
         
     | 
| 
       32 
40 
     | 
    
         | 
| 
       33 
41 
     | 
    
         
             
                $ export RAILS_ENV=development         # optionally
         
     | 
| 
       34 
     | 
    
         
            -
                $ rrails rails generate model Yakiniku # first command, slow
         
     | 
| 
      
 42 
     | 
    
         
            +
                $ rrails rails generate model Yakiniku # first command, server starts on demand, slow
         
     | 
| 
       35 
43 
     | 
    
         
             
                $ rrails rails server                  # fast
         
     | 
| 
       36 
44 
     | 
    
         
             
                $ rrails rails console                 # fast
         
     | 
| 
       37 
45 
     | 
    
         
             
                $ rrails rake db:migrate               # fast
         
     | 
| 
       38 
46 
     | 
    
         
             
                $ rrails rake routes                   # fast
         
     | 
| 
       39 
47 
     | 
    
         
             
                $ rrails -- rake -T                    # '--' is needed. Otherwise '-T' will be parsed by rrails
         
     | 
| 
      
 48 
     | 
    
         
            +
                $ rrails annotate                      # fast. "gem 'annotate'" should exist in Gemfile
         
     | 
| 
       40 
49 
     | 
    
         | 
| 
       41 
50 
     | 
    
         
             
            For more options, run:
         
     | 
| 
       42 
51 
     | 
    
         | 
| 
         @@ -102,6 +111,22 @@ You can control the server using: 
     | 
|
| 
       102 
111 
     | 
    
         
             
                $ rrails reload
         
     | 
| 
       103 
112 
     | 
    
         
             
                $ rrails status
         
     | 
| 
       104 
113 
     | 
    
         | 
| 
      
 114 
     | 
    
         
            +
            ### Configuration File
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
            `config/rrails.yml` will be auto loaded as default configuration. Here is an example of `rrails.yml`:
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
                ---
         
     | 
| 
      
 119 
     | 
    
         
            +
                development:
         
     | 
| 
      
 120 
     | 
    
         
            +
                  loglevel: 1
         
     | 
| 
      
 121 
     | 
    
         
            +
                  logfile: 'log/rrails.development.log'
         
     | 
| 
      
 122 
     | 
    
         
            +
                  background: true
         
     | 
| 
      
 123 
     | 
    
         
            +
                  host: '0.0.0.0'
         
     | 
| 
      
 124 
     | 
    
         
            +
                  port: 5050
         
     | 
| 
      
 125 
     | 
    
         
            +
                production:
         
     | 
| 
      
 126 
     | 
    
         
            +
                  loglevel: 2
         
     | 
| 
      
 127 
     | 
    
         
            +
                  logfile: 'log/rrails.production.log'
         
     | 
| 
      
 128 
     | 
    
         
            +
                  ondemand: false
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
       105 
130 
     | 
    
         
             
            ## See Also
         
     | 
| 
       106 
131 
     | 
    
         | 
| 
       107 
132 
     | 
    
         
             
            * guard-rrails: https://github.com/walf443/guard-rrails
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.1.0
         
     | 
    
        data/bin/rrails
    CHANGED
    
    | 
         @@ -13,9 +13,15 @@ def chdir_to_project_root 
     | 
|
| 
       13 
13 
     | 
    
         
             
              end
         
     | 
| 
       14 
14 
     | 
    
         
             
            end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
      
 16 
     | 
    
         
            +
            # default options
         
     | 
| 
      
 17 
     | 
    
         
            +
            options = {
         
     | 
| 
      
 18 
     | 
    
         
            +
              ondemand:  true,
         
     | 
| 
      
 19 
     | 
    
         
            +
              config:    './config/rrails.yml',
         
     | 
| 
      
 20 
     | 
    
         
            +
              rails_env: ENV['RAILS_ENV'] || 'development',
         
     | 
| 
      
 21 
     | 
    
         
            +
            }
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       16 
23 
     | 
    
         
             
            # parse options
         
     | 
| 
       17 
24 
     | 
    
         
             
            require 'optparse'
         
     | 
| 
       18 
     | 
    
         
            -
            options = { ondemand: true }
         
     | 
| 
       19 
25 
     | 
    
         
             
            opts = OptionParser.new
         
     | 
| 
       20 
26 
     | 
    
         
             
            opts.banner =<<'!'
         
     | 
| 
       21 
27 
     | 
    
         
             
            Usage: rrails [options] [-- rails_or_rake_cmds]
         
     | 
| 
         @@ -27,16 +33,30 @@ Options: 
     | 
|
| 
       27 
33 
     | 
    
         
             
            !
         
     | 
| 
       28 
34 
     | 
    
         
             
            opts.on('-h', '--help', 'Show this document.')      {}
         
     | 
| 
       29 
35 
     | 
    
         
             
            opts.on('-E', '--rails_env=s', 'Set Rails env.')      {|v| options[:rails_env] = v}
         
     | 
| 
      
 36 
     | 
    
         
            +
            opts.on('-C', '--config=s', "Set config file path. Default: #{options[:config]}") {|v| options[:config] = v}
         
     | 
| 
       30 
37 
     | 
    
         
             
            opts.on('-s', '--socket=s', 'Set RRails server socket file. If this is set, host and port are ignored.') {|v| options[:socket] = v}
         
     | 
| 
       31 
38 
     | 
    
         
             
            opts.on('--host=s', 'Set server hostname. Default: localhost.') {|v| options[:host] = v}
         
     | 
| 
       32 
39 
     | 
    
         
             
            opts.on('-p', '--port=i', 'Set server port. Default: decided by rails_env.') {|v| options[:port] = v}
         
     | 
| 
       33 
     | 
    
         
            -
            opts.on('--[no-]ondemand',  
     | 
| 
      
 40 
     | 
    
         
            +
            opts.on('--[no-]ondemand', "(Client) Start RRails server on demand. Default: #{options[:ondemand]}.") {|v| options[:ondemand] = v}
         
     | 
| 
       34 
41 
     | 
    
         
             
            opts.on('-t', '--[no-]pty', "(Client) Prepare a PTY. Default: decided by commands.")  {|v| options[:pty] = v }
         
     | 
| 
       35 
42 
     | 
    
         
             
            opts.on('--logfile=s', '(Server) Set log file path. Default: (stderr).') {|v| options[:logfile] = v}
         
     | 
| 
      
 43 
     | 
    
         
            +
            opts.on('--loglevel=i', '(Server) Set log level (0 to 3). Default: 0.') {|v| options[:loglevel] = v}
         
     | 
| 
       36 
44 
     | 
    
         
             
            opts.on('--pidfile=s', '(Server) Set RRails server pidfile file.') {|v| options[:pidfile] = v}
         
     | 
| 
       37 
45 
     | 
    
         
             
            opts.on('-b', '--[no-]background', '(Server) Run in background.') {|v| options[:background] = v}
         
     | 
| 
       38 
46 
     | 
    
         
             
            opts.parse!(ARGV)
         
     | 
| 
       39 
47 
     | 
    
         | 
| 
      
 48 
     | 
    
         
            +
            # load user config
         
     | 
| 
      
 49 
     | 
    
         
            +
            config_path = options[:config]
         
     | 
| 
      
 50 
     | 
    
         
            +
            if File.exists?(config_path)
         
     | 
| 
      
 51 
     | 
    
         
            +
              require 'yaml'
         
     | 
| 
      
 52 
     | 
    
         
            +
              config  = YAML::load_file('config/rrails.yml')
         
     | 
| 
      
 53 
     | 
    
         
            +
              config  = config[options[:rails_env]] || config
         
     | 
| 
      
 54 
     | 
    
         
            +
              options.merge!(Hash[[*config.map {|k, *v| [k.to_sym, *v]}]])
         
     | 
| 
      
 55 
     | 
    
         
            +
            end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            # make sure command line options override others
         
     | 
| 
      
 58 
     | 
    
         
            +
            opts.parse!(ARGV)
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
       40 
60 
     | 
    
         
             
            # run client or server
         
     | 
| 
       41 
61 
     | 
    
         
             
            case ARGV.first
         
     | 
| 
       42 
62 
     | 
    
         
             
            when nil, ''
         
     | 
    
        data/lib/rrails/client.rb
    CHANGED
    
    | 
         @@ -20,9 +20,6 @@ module RemoteRails 
     | 
|
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                  @rails_env = options[:rails_env] || ENV['RAILS_ENV'] || 'development'
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
                  @socket = "#{options[:socket] || './tmp/sockets/rrails-'}#{@rails_env}.socket"
         
     | 
| 
       24 
     | 
    
         
            -
                  @host = options[:host] || 'localhost'
         
     | 
| 
       25 
     | 
    
         
            -
                  @port = options[:port] || DEFAULT_PORT[@rails_env]
         
     | 
| 
       26 
23 
     | 
    
         | 
| 
       27 
24 
     | 
    
         
             
                  @use_pty = options[:pty]
         
     | 
| 
       28 
25 
     | 
    
         
             
                  @ondemand_callback = options[:ondemand_callback]
         
     | 
| 
         @@ -32,8 +29,12 @@ module RemoteRails 
     | 
|
| 
       32 
29 
     | 
    
         
             
                    @cmd = Shellwords.join(@cmd)
         
     | 
| 
       33 
30 
     | 
    
         
             
                  end
         
     | 
| 
       34 
31 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                  if (options[:host] || options[:port]) &&  
     | 
| 
      
 32 
     | 
    
         
            +
                  if (options[:host] || options[:port]) && !options[:socket]
         
     | 
| 
       36 
33 
     | 
    
         
             
                    @socket = nil
         
     | 
| 
      
 34 
     | 
    
         
            +
                    @host = options[:host] || 'localhost'
         
     | 
| 
      
 35 
     | 
    
         
            +
                    @port = options[:port] || DEFAULT_PORT[@rails_env]
         
     | 
| 
      
 36 
     | 
    
         
            +
                  else
         
     | 
| 
      
 37 
     | 
    
         
            +
                    @socket = "#{options[:socket] || './tmp/sockets/rrails-'}#{@rails_env}.socket"
         
     | 
| 
       37 
38 
     | 
    
         
             
                  end
         
     | 
| 
       38 
39 
     | 
    
         | 
| 
       39 
40 
     | 
    
         
             
                  if @use_pty.nil?
         
     | 
    
        data/lib/rrails/server.rb
    CHANGED
    
    | 
         @@ -25,14 +25,16 @@ module RemoteRails 
     | 
|
| 
       25 
25 
     | 
    
         
             
                  @rails_env  = options[:rails_env] || ENV['RAILS_ENV'] || "development"
         
     | 
| 
       26 
26 
     | 
    
         
             
                  @pidfile    = "#{options[:pidfile] || './tmp/pids/rrails-'}#{@rails_env}.pid"
         
     | 
| 
       27 
27 
     | 
    
         
             
                  @background = options[:background] || false
         
     | 
| 
       28 
     | 
    
         
            -
                  @host       = options[:host] || 'localhost'
         
     | 
| 
       29 
     | 
    
         
            -
                  @port       = options[:port] || DEFAULT_PORT[@rails_env]
         
     | 
| 
       30 
     | 
    
         
            -
                  @socket     = "#{options[:socket] || './tmp/sockets/rrails-'}#{@rails_env}.socket"
         
     | 
| 
       31 
28 
     | 
    
         
             
                  if (options[:host] || options[:port]) && !options[:socket]
         
     | 
| 
       32 
     | 
    
         
            -
                    @socket 
     | 
| 
      
 29 
     | 
    
         
            +
                    @socket   = nil
         
     | 
| 
      
 30 
     | 
    
         
            +
                    @host     = options[:host] || 'localhost'
         
     | 
| 
      
 31 
     | 
    
         
            +
                    @port     = options[:port] || DEFAULT_PORT[@rails_env]
         
     | 
| 
      
 32 
     | 
    
         
            +
                  else
         
     | 
| 
      
 33 
     | 
    
         
            +
                    @socket   = "#{options[:socket] || './tmp/sockets/rrails-'}#{@rails_env}.socket"
         
     | 
| 
       33 
34 
     | 
    
         
             
                  end
         
     | 
| 
       34 
35 
     | 
    
         
             
                  @app_path   = File.expand_path('./config/application')
         
     | 
| 
       35 
36 
     | 
    
         
             
                  @logger     = Logger.new(options[:logfile] ? options[:logfile] : (@background ? nil : STDERR))
         
     | 
| 
      
 37 
     | 
    
         
            +
                  @logger.level = options[:loglevel] || 0
         
     | 
| 
       36 
38 
     | 
    
         
             
                end
         
     | 
| 
       37 
39 
     | 
    
         | 
| 
       38 
40 
     | 
    
         
             
                def stop
         
     | 
| 
         @@ -70,7 +72,7 @@ module RemoteRails 
     | 
|
| 
       70 
72 
     | 
    
         | 
| 
       71 
73 
     | 
    
         
             
                def start
         
     | 
| 
       72 
74 
     | 
    
         
             
                  # check previous process
         
     | 
| 
       73 
     | 
    
         
            -
                  raise RuntimeError.new(' 
     | 
| 
      
 75 
     | 
    
         
            +
                  raise RuntimeError.new('rrails is already running') if alive?
         
     | 
| 
       74 
76 
     | 
    
         | 
| 
       75 
77 
     | 
    
         
             
                  if @background
         
     | 
| 
       76 
78 
     | 
    
         
             
                    pid = Process.fork do
         
     | 
| 
         @@ -267,7 +269,17 @@ module RemoteRails 
     | 
|
| 
       267 
269 
     | 
    
         
             
                    $0 = Gem.bin_path('rake')
         
     | 
| 
       268 
270 
     | 
    
         
             
                    ::Rake.application.run
         
     | 
| 
       269 
271 
     | 
    
         
             
                  else
         
     | 
| 
       270 
     | 
    
         
            -
                     
     | 
| 
      
 272 
     | 
    
         
            +
                    # unknown binary, try to locate its location
         
     | 
| 
      
 273 
     | 
    
         
            +
                    bin_path = begin
         
     | 
| 
      
 274 
     | 
    
         
            +
                                 Gem.bin_path(cmd)
         
     | 
| 
      
 275 
     | 
    
         
            +
                               rescue
         
     | 
| 
      
 276 
     | 
    
         
            +
                                 STDERR.puts "rrails: command not found: #{cmd}"
         
     | 
| 
      
 277 
     | 
    
         
            +
                                 STDERR.puts "Install missing gem executables with `bundle install`"
         
     | 
| 
      
 278 
     | 
    
         
            +
                                 exit(127)
         
     | 
| 
      
 279 
     | 
    
         
            +
                               end
         
     | 
| 
      
 280 
     | 
    
         
            +
             
     | 
| 
      
 281 
     | 
    
         
            +
                    # then load it
         
     | 
| 
      
 282 
     | 
    
         
            +
                    load bin_path
         
     | 
| 
       271 
283 
     | 
    
         
             
                  end
         
     | 
| 
       272 
284 
     | 
    
         
             
                end
         
     | 
| 
       273 
285 
     | 
    
         | 
    
        data/lib/rrails.rb
    CHANGED
    
    
    
        data/rrails.gemspec
    CHANGED
    
    | 
         @@ -5,11 +5,11 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = "rrails"
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "1. 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "1.1.0"
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.authors = ["Keiji, Yoshimi"]
         
     | 
| 
       12 
     | 
    
         
            -
              s.date = "2012-10- 
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = "2012-10-21"
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.description = "remote run rails/rake command"
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.email = "walf443@gmail.com"
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.executables = ["rrails", "rrails-server"]
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rrails
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-10- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-10-21 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: shoulda
         
     | 
| 
         @@ -133,7 +133,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       133 
133 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       134 
134 
     | 
    
         
             
                  segments:
         
     | 
| 
       135 
135 
     | 
    
         
             
                  - 0
         
     | 
| 
       136 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 136 
     | 
    
         
            +
                  hash: 3781868682991120205
         
     | 
| 
       137 
137 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       138 
138 
     | 
    
         
             
              none: false
         
     | 
| 
       139 
139 
     | 
    
         
             
              requirements:
         
     |