diff options
author | Luis Lavena <luislavena@gmail.com> | 2008-11-19 02:15:10 -0200 |
---|---|---|
committer | Luis Lavena <luislavena@gmail.com> | 2008-11-19 02:15:10 -0200 |
commit | 3223d338b233b40acb3d9bef8efbb613ec459441 (patch) | |
tree | 120abeb381230f7441b51e842424203159670095 /features | |
parent | 0d068b19ce7970808df834b13ccb40f6b912d317 (diff) | |
download | rake-compiler-3223d338b233b40acb3d9bef8efbb613ec459441.tar.gz |
Added package feature and scenarios.
This verifies the process of bundling extensions into
gems.
Diffstat (limited to 'features')
-rw-r--r-- | features/package.feature | 28 | ||||
-rw-r--r-- | features/step_definitions/gem.rb | 13 |
2 files changed, 41 insertions, 0 deletions
diff --git a/features/package.feature b/features/package.feature new file mode 100644 index 0000000..2cc613d --- /dev/null +++ b/features/package.feature @@ -0,0 +1,28 @@ +Feature: Distribute native extension with gems + + In order to avoid compiler toolchain requirement during installation + As a Gem developer. + I want rake tasks generate platform specific gems for me + + Scenario: generate pure ruby gem + Given a safe project directory + And a gem named 'my_project' + And a extension named 'extension_one' + And I've already successfully executed rake task 'compile' + And 'pkg' folder is deleted + When rake task 'gem' is invoked + Then rake task 'gem' succeeded + And 'pkg' folder is created + And ruby gem for 'my_project' version '0.1.0' do exist in 'pkg' + + Scenario: generate native gem + Given a safe project directory + And a gem named 'my_project' + And a extension named 'extension_one' + And I've already successfully executed rake task 'compile' + And 'pkg' folder is deleted + When rake task 'native gem' is invoked + Then rake task 'native gem' succeeded + And 'pkg' folder is created + And ruby gem for 'my_project' version '0.1.0' do exist in 'pkg' + And binary gem for 'my_project' version '0.1.0' do exist in 'pkg' diff --git a/features/step_definitions/gem.rb b/features/step_definitions/gem.rb new file mode 100644 index 0000000..a8e2181 --- /dev/null +++ b/features/step_definitions/gem.rb @@ -0,0 +1,13 @@ +Given /^a gem named '(.*)'$/ do |gem_name| + generate_gem_task gem_name +end + +Then /^(ruby|binary) gem for '(.*)' version '(.*)' do exist in '(.*)'$/ do |type, gem_name, version, folder| + if type == 'ruby' then + gem_file = "#{folder}/#{gem_name}-#{version}.gem" + else + platform = Gem::Platform.local.to_s + gem_file = "#{folder}/#{gem_name}-#{version}-#{platform}.gem" + end + File.exist?(gem_file).should be_true +end |