Class: Contracto::Server

Inherits:
Sinatra::Base
  • Object
show all
Extended by:
Constants
Defined in:
lib/contracto/server.rb,
lib/contracto/server/controller.rb,
lib/contracto/server/contract_routes.rb

Constant Summary

Constants included from Constants

Constants::CONTRACTO_DIR, Constants::CONTRACTO_TMP_DIR, Constants::CONTRACT_FILENAME, Constants::CURRENT_DIR, Constants::DEFAULT_ROOT_DIR, Constants::GEM_DIR, Constants::PORT, Constants::RUBY_SERVER_DIR, Constants::SAMPLE_CONTRACT_DIR, Constants::SERVER_PIDFILE_NAME

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.start_contracto_server!Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/contracto/server/controller.rb', line 11

def start_contracto_server!
  if contracto_server_running?
    puts 'contracto server is already running, enter "contracto stop" to kill it'
    return
  elsif !root_dir_exists?
    puts "current dir does not contain required contracto dir (#{Contracto::Config.root_dir})"
    return
  end

  create_routes_from_contract
  start_daemon!
  wait_until_server_is_running
end

.stop_contracto_server!Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/contracto/server/controller.rb', line 25

def stop_contracto_server!
  uri = URI.parse("http://localhost:#{port}/contracto/terminate")
  response = Net::HTTP.get_response(uri)
  if response.is_a?(Net::HTTPOK)
    puts 'contracto server killed'
    puts response.body
  else
    puts "something went wrong: [#{response.code}] #{response.body}]"
  end
rescue Errno::ECONNREFUSED
  puts 'contracto server could not be killed (already dead or was never alive)'
end

Instance Method Details

#http_headersObject



17
18
19
# File 'lib/contracto/server/contract_routes.rb', line 17

def http_headers
  env.select {|k,v| k.start_with? 'HTTP_'}
end