class ApiSketch::Runner

Public Instance Methods

run() click to toggle source
# File lib/api_sketch/runner.rb, line 64
def run
  parse_options

  if config[:generate] || config[:examples_server]
    raise ApiSketch::Error, "Definitions parameter should be a directory" unless File.directory?(config[:definitions_dir])
    config[:project_name] = File.basename(config[:definitions_dir]).gsub("_", " ").gsub(/\w+/, &:capitalize) if (config[:project_name].nil? || config[:project_name].empty?)
  end

  ::ApiSketch::Config.merge!(config)

  if config[:generate]
    ApiSketch::Generators::Bootstrap.new(config).generate!
  end

  if config[:examples_server]
    ::ApiSketch::Model::Resource.reload!(config[:definitions_dir])

    builder = Rack::Builder.new do
      use ::Rack::PostBodyContentTypeParser
      use ::Rack::NestedParams
      run ::ApiSketch::ExamplesServer
    end

    Rack::Handler::WEBrick.run builder, :Port => config[:examples_server_port]
  end
end