Sha256: ff94987de31ddfbadd5a54cce204b2c6d13bcadd8f70f245351295ee82c611d3

Contents?: true

Size: 1.56 KB

Versions: 5

Compression:

Stored size: 1.56 KB

Contents

require 'sinatra'

module Soaspec
  # Server for generating code
  class GenerateServer < Sinatra::Application
    include Soaspec::ExeHelpers

    class << self
      # @return [Hash] Parameters used when creating handler
      attr_accessor :create_params
    end

    get '/css/bootstrap.css' do
      [200, { 'Content-Type' => 'text/css' }, retrieve_contents('css/bootstrap.css', false)]
    end

    # Webpage user can interact with to generate an ExchangeHandler
    get '/' do
      GenerateServer.create_params ||= {}
      puts GenerateServer.create_params
      retrieve_contents('generate_exchange.html')
    end

    # When a post is made, generate the class file, save the parameters
    # and redirect back to generate page
    post '/generate' do
      type = :rest # SOAP will be added to later
      @name = params['className']
      @base_url = params['baseUrl']
      @basic_auth_user = params['basicAuthUser']
      @basic_auth_password = params['basicAuthPassword']
      if @basic_auth_user
        auth = "user: '#{@basic_auth_user}'
password: '#{@basic_auth_password}'"
        create_file filename: File.join(Soaspec.credentials_folder, "#{@name.snakecase}.yml"),
                    content: auth
      end
      filename = File.join('lib', "#{params['className'].snakecase}.rb")
      feedback = create_file filename: filename,
                             content: retrieve_contents(File.join('lib', "new_#{type}_service.rb"))
      GenerateServer.create_params = params
      GenerateServer.create_params['feedback'] = feedback
      redirect '/'
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
soaspec-0.2.29 lib/soaspec/generate_server.rb
soaspec-0.2.28 lib/soaspec/generate_server.rb
soaspec-0.2.27 lib/soaspec/generate_server.rb
soaspec-0.2.26 lib/soaspec/generate_server.rb
soaspec-0.2.25 lib/soaspec/generate_server.rb