# (do want)
Style/GlobalVars:
Exclude:
- - config.ru
+ - application.rb
- lib/api.rb
- lib/nebula.rb
source 'https://rubygems.org'
gem 'opennebula'
-
gem 'sinatra'
-
gem 'sinatra-cross_origin'
-
-gem 'rubocop', require: false
-
# recommended for sinatra
gem 'thin'
+
+gem 'rubocop', group: :development, require: false
+gem 'rack-test', group: :development
+gem 'minitest', group: :development
rubocop
test:
- :
+ ruby -rminitest/autorun -Ilib:test -e 'Dir.glob "./test/*_test.rb", &method(:require)'
clean:
rm -fv Gemfile.lock
--- /dev/null
+require 'logger'
+
+Dir['./models/*.rb'].each do |file|
+ require file
+end
+require './version'
+require './lib/error'
+require './lib/server_cipher_auth'
+require './lib/nebula'
+require './lib/api'
+
+$logger = Logger.new(STDOUT)
+$logger.formatter = proc do |severity, datetime, _progname, msg|
+ date_format = datetime.strftime('%Y-%m-%dT%H:%M:%S%z')
+ sprintf "[#{date_format}] %5s: #{msg}\n", severity
+end
+$nebula = Now::Nebula.new()
-require 'logger'
-
-Dir['./models/*.rb'].each do |file|
- require file
-end
-require './version'
-require './lib/error'
-require './lib/server_cipher_auth'
-require './lib/nebula'
-require './lib/api'
-
-$logger = Logger.new(STDOUT)
-$logger.formatter = proc do |severity, datetime, _progname, msg|
- date_format = datetime.strftime('%Y-%m-%dT%H:%M:%S%z')
- sprintf "[#{date_format}] %5s: #{msg}\n", severity
-end
-$nebula = Now::Nebula.new()
+require './application'
run Now::Application
before do
# to sinatra request logger point to proper object
env['rack.logger'] = $logger
-
- switch_user(params['user'])
end
helpers do
get '/list' do
cross_origin
begin
+ switch_user(params['user'])
networks = @nebula.list_networks
JSON.pretty_generate(networks)
rescue NowError => e
get '/network/:id' do
cross_origin
begin
+ switch_user(params['user'])
network = @nebula.get(params['id'])
JSON.pretty_generate(network)
rescue NowError => e
--- /dev/null
+require 'test_helper'
+
+class LaunchTest < Minitest::Test
+ include Rack::Test::Methods
+
+ def app
+ Now::Application
+ end
+
+ def test_my_default
+ get '/'
+ assert_equal Now::API_VERSION, last_response.body
+ end
+
+end
--- /dev/null
+require './application'
+require 'minitest/autorun'
+require 'rack/test'
+
+class LunchTest < Minitest::Test
+ include Rack::Test::Methods
+
+ def app
+ Now::Application
+ end
+
+ def test_my_default
+ get '/'
+ assert_equal Now::API_VERSION, last_response.body
+ end
+
+end