Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
This paste will be private.
## With OptParse: require 'rubygems' require 'optparse' require File.join(File.dirname(__FILE__), '..', 'lib', 'jack') usage = "Usage: jackup my_javascript_app.js [rack options]" options = OptionParser.new("", 24, ' ') do |opts| opts.banner = usage opts.separator "" opts.separator "Rack options:" opts.on("-o", "--host HOST", "listen on HOST (default: 127.0.0.1)") do |host| Jack.options[:Host] = host end opts.on("-p", "--port PORT", "use PORT (default: 9292)") do |port| Jack.options[:port] = port end opts.separator "" opts.separator "Javscript options:" opts.on_tail("-f", "--file", "require a javascript file") do |f| Jack.require f end opts.on_tail("-h", "--help", "Show this message") do puts opts exit end opts.on_tail("--version", "Show version") do require 'jack' puts "Jack #{Jack.version}" exit end opts.parse! ARGV end unless js_app_file = ARGV[0] puts "!!Missing js app file!!" puts '' puts usage exit end Jack.up js_app_file ## With Clip: require 'rubygems' require 'clip' require File.join(File.dirname(__FILE__), '..', 'lib', 'jack') usage = "Usage: jackup my_javascript_app.js [rack options]" options = Clip do |p| p.optional 'o', 'Host', :desc => 'listen on HOST (default: 127.0.0.1)', :default => '127.0.0.1' p.optional 'p', 'Port', :desc => 'use PORT (default: 9292)', :default => 9292 do |port| port.to_i # always deal with integers end end if options.valid? && options.remainder.size > 0 Jack.up options.remainder # the remainder is an array of files to load as jack apps else $stderr.puts options.to_s end
From the Design Piracy series on my blog: