class Camping::Server::Options

Constants

DB
HOME
RC

Public Instance Methods

parse!(args) click to toggle source
# File lib/camping/server.rb, line 41
      def parse!(args)
        args = args.dup

        options = {}

        opt_parser = OptionParser.new("", 24, '  ') do |opts|
          opts.banner = "Usage: camping my-camping-app.rb"
          opts.define_head "#{File.basename($0)}, the microframework ON-button for ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
          opts.separator ""
          opts.separator "Specific options:"

          opts.on("-h", "--host HOSTNAME",
          "Host for web server to bind to (default is all IPs)") { |v| options[:Host] = v }

          opts.on("-p", "--port NUM",
          "Port for web server (defaults to 3301)") { |v| options[:Port] = v }

          db = DB.sub(HOME, '~/') if DB
          opts.on("-d", "--database FILE",
          "SQLite3 database path (defaults to #{db ? db : '<none>'})") { |db_path| options[:database] = db_path }

          opts.on("-C", "--console",
          "Run in console mode with IRB") { options[:server] = "console" }

          server_list = ["thin", "webrick", "console"]
          opts.on("-s", "--server NAME",
          "Server to force (#{server_list.join(', ')})") { |v| options[:server] = v }

          opts.separator ""
          opts.separator "Common options:"

          # No argument, shows at tail.  This will print an options summary.
          # Try it and see!
          opts.on("-?", "--help", "Show this message") do
            puts opts
            exit
          end

          # Another typical switch to print the version.
          opts.on("-m", "--mounting", "Shows Mounting Guide") do
            puts "Mounting Guide"
            puts ""
            puts "To mount your horse, hop up on the side and put it."
            exit
          end

          # Another typical switch to print the version.
          opts.on("-v", "--version", "Show version") do
            puts Gem.loaded_specs['camping'].version
            exit
          end

          # Show Routes
          opts.on("-r", "--routes", "Show Routes") { options[:routes] = true }

          # Crude start at a generator
#           opts.separator ""
#           opts.separator "Generators:"
#
#           generator_list = ["controller", "model", "helper"]
#           opts.on("-g", "--generator NAME",
#           "generators (#{generator_list.join(', ')})") { |g|
#             options[:generator] = g
#             options[:args] = args
#           }
#
#           opts.separator ""

        end

        opt_parser.parse!(args)

        # Crude start at a generator command parser thing
        # if options[:generator] != nil
          # puts "someone wants to generate."
          # puts args
          # Camping::Commands.new(options)
          # exit
        # end

        if args.empty?
          args << "camp.rb"
        end

        options[:script] = args.shift
        options
      end