Module: Bugler::CLI
- Defined in:
- lib/bugler.rb
Class Method Summary collapse
- .build(working_directory) ⇒ Object
- .exec(argv, working_directory = __dir__) ⇒ Object
- .init(argv) ⇒ Object
- .server(working_directory, port = Bugler::Config::DEFAULT_PORT) ⇒ Object
Class Method Details
.build(working_directory) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/bugler.rb', line 57 def self.build(working_directory) raise Bugler::Config::ERROR_SERVER_NOT_A_PROJECT unless File.exists?(".bugler") Dir.mkdir 'build' unless File.exists?('build') # For now, copy over the erbs to htmls Dir.foreach File.join(working_directory,'src') do |f| next if f == '.' or f == '..' FileUtils.cp File.join('src', f), File.join(working_directory, 'build', f.sub!('erb', 'html')) end end |
.exec(argv, working_directory = __dir__) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/bugler.rb', line 11 def self.exec(argv, working_directory=__dir__) if argv.empty? print Bugler::Config::HELP_TEXT elsif argv[0] == 'init' argv.shift self.init(argv) elsif argv[0] == 'server' self.server working_directory elsif argv[0] == 'build' self.build working_directory else raise Bugler::Config::ERROR_EXEC_UNRECOGNIZED end end |
.init(argv) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/bugler.rb', line 25 def self.init(argv) raise Bugler::Config::ERROR_INIT_ARGV unless argv.kind_of?(Array) raise Bugler::Config::ERROR_INIT_NO_NAME unless argv.any? # Create directory structure name = argv.shift dirs = [name, File.join(name, Bugler::Config::SOURCE_DIRNAME)] files = [File.join(name, ".bugler"), File.join(name, Bugler::Config::SOURCE_DIRNAME, "index.erb")] dirs.each do |d| Dir.mkdir d unless File.exists?(d) end files.each do |f| File.write(f, "") unless File.exists?(f) end end |
.server(working_directory, port = Bugler::Config::DEFAULT_PORT) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/bugler.rb', line 39 def self.server(working_directory, port=Bugler::Config::DEFAULT_PORT) raise Bugler::Config::ERROR_SERVER_NOT_A_PROJECT unless File.exists?(".bugler") # Build if not already built if !File.exists?(File.join(working_directory, "build")) self.build(working_directory) end puts "Starting Bugler test server on port %i..." % port server = WEBrick::HTTPServer.new :Port => port, :DocumentRoot => File.join(working_directory, 'build') trap 'INT' do server.shutdown end server.start end |