Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion engineyard-serverside.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@ Gem::Specification.new do |s|
s.add_development_dependency('mime-types', '~>1.25')
s.add_development_dependency('json', '<2')
s.add_development_dependency('cucumber', '~> 1.3.20')
s.add_development_dependency('contracts', '= 0.9')
s.add_development_dependency('aruba', '~> 0.14.14')
s.add_development_dependency('factis', '~> 1.0.1')

s.required_rubygems_version = %q{>= 1.3.6}
s.test_files = Dir.glob("spec/**/*")
s.test_files = Dir.glob("spec/**/*") + Dir.glob("features/**/*")
end
5 changes: 5 additions & 0 deletions features/step_definitions/version_steps.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
require 'engineyard-serverside/version'

Then %{the current version is displayed} do
expect(output_text).to include(EY::Serverside::VERSION)
end
50 changes: 50 additions & 0 deletions features/support/env.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
unless RUBY_VERSION =~ /^1\.8\./
require 'simplecov'
SimpleCov.coverage_dir 'coverage/outside'
SimpleCov.start do
add_filter '/spec/'
add_filter '/features/'
add_filter '/mock/'
add_filter '/lib/vendor/'
add_group 'CLI Workflows', 'lib/engineyard-serverside/cli/workflows/'
add_group 'Callbacks', 'lib/engineyard-serverside/callbacks/'
end
end

require 'aruba/cucumber'
require 'factis/cucumber'
require 'engineyard-serverside'

# This is a fun bit of glue to allow us to use Aruba's in-process runner
class Runatron
def initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
@argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
end

def execute!
exit_code = begin
$stderr = @stderr
$stdin = @stdin
$stdout = @stdout

EY::Serverside::CLI::App.start(@argv)
rescue StandardError => e
b = e.backtrace
@stderr.puts("#{b.shift}: #{e.message} (#{e.class})")
@stderr.puts(b.map {|s| "\tfrom #{s}"}.join("\n"))
rescue SystemExit => e
e.status
ensure
$stderr = STDERR
$stdin = STDIN
$stdout = STDOUT
end

@kernel.exit(exit_code)
end
end

Aruba.configure do |config|
config.command_launcher = :in_process
config.main_class = Runatron
end
7 changes: 7 additions & 0 deletions features/support/output_helpers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module OutputHelpers
def output_text
last_command_started.output
end
end

World(OutputHelpers)
7 changes: 7 additions & 0 deletions features/version.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Feature: Showing the version
In order to know what iteration of engineyard-serverside I'm using, I want to
be able to have it print out the version.

Scenario: User issues the vesion command
When I run `engineyard-serverside version`
Then the current version is displayed
6 changes: 6 additions & 0 deletions lib/engineyard-serverside/cli/app.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
require 'engineyard-serverside/servers'
require 'engineyard-serverside/cli/helpers'
require 'engineyard-serverside/cli/workflows'
require 'engineyard-serverside/version'

module EY
module Serverside
Expand Down Expand Up @@ -130,6 +131,11 @@ def integrate
def restart
Workflows.perform(:restart, options)
end

desc "version", "Show the engineyard-serverside version"
def version
puts EY::Serverside::VERSION
end
end
end
end
Expand Down