juwelier 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.coveralls.yml +2 -0
- data/.document +8 -0
- data/.semver +5 -0
- data/.travis.yml +7 -0
- data/.yardopts +2 -0
- data/ChangeLog.markdown +230 -0
- data/Gemfile +40 -0
- data/LICENSE.txt +20 -0
- data/README.markdown +252 -0
- data/Rakefile +78 -0
- data/bin/juwelier +9 -0
- data/features/generator/cucumber.feature +103 -0
- data/features/generator/directory_layout.feature +86 -0
- data/features/generator/dotdocument.feature +13 -0
- data/features/generator/env_options.feature +9 -0
- data/features/generator/gemfile.feature +81 -0
- data/features/generator/git.feature +102 -0
- data/features/generator/license.feature +20 -0
- data/features/generator/rakefile.feature +158 -0
- data/features/generator/readme.feature +12 -0
- data/features/generator/test.feature +54 -0
- data/features/generator/test_helper.feature +149 -0
- data/features/placeholder.feature +5 -0
- data/features/step_definitions/debug_steps.rb +6 -0
- data/features/step_definitions/filesystem_steps.rb +70 -0
- data/features/step_definitions/generator_steps.rb +387 -0
- data/features/step_definitions/task_steps.rb +6 -0
- data/features/support/env.rb +41 -0
- data/features/tasks/build_gem.feature +9 -0
- data/features/tasks/version.feature +31 -0
- data/features/tasks/version_bumping.feature +49 -0
- data/juwelier.gemspec +241 -0
- data/lib/juwelier.rb +178 -0
- data/lib/juwelier/commands.rb +20 -0
- data/lib/juwelier/commands/build_gem.rb +40 -0
- data/lib/juwelier/commands/check_dependencies.rb +66 -0
- data/lib/juwelier/commands/install_gem.rb +31 -0
- data/lib/juwelier/commands/release_gemspec.rb +87 -0
- data/lib/juwelier/commands/release_to_git.rb +64 -0
- data/lib/juwelier/commands/release_to_rubygems.rb +28 -0
- data/lib/juwelier/commands/validate_gemspec.rb +30 -0
- data/lib/juwelier/commands/version/base.rb +55 -0
- data/lib/juwelier/commands/version/bump_major.rb +13 -0
- data/lib/juwelier/commands/version/bump_minor.rb +12 -0
- data/lib/juwelier/commands/version/bump_patch.rb +14 -0
- data/lib/juwelier/commands/version/write.rb +12 -0
- data/lib/juwelier/commands/write_gemspec.rb +39 -0
- data/lib/juwelier/errors.rb +8 -0
- data/lib/juwelier/gemcutter_tasks.rb +8 -0
- data/lib/juwelier/gemspec_helper.rb +87 -0
- data/lib/juwelier/generator.rb +304 -0
- data/lib/juwelier/generator/application.rb +63 -0
- data/lib/juwelier/generator/bacon_mixin.rb +43 -0
- data/lib/juwelier/generator/github_mixin.rb +22 -0
- data/lib/juwelier/generator/micronaut_mixin.rb +41 -0
- data/lib/juwelier/generator/minitest_mixin.rb +42 -0
- data/lib/juwelier/generator/options.rb +172 -0
- data/lib/juwelier/generator/rdoc_mixin.rb +13 -0
- data/lib/juwelier/generator/riot_mixin.rb +42 -0
- data/lib/juwelier/generator/rspec_mixin.rb +42 -0
- data/lib/juwelier/generator/shindo_mixin.rb +44 -0
- data/lib/juwelier/generator/shoulda_mixin.rb +42 -0
- data/lib/juwelier/generator/testspec_mixin.rb +42 -0
- data/lib/juwelier/generator/testunit_mixin.rb +39 -0
- data/lib/juwelier/generator/yard_mixin.rb +15 -0
- data/lib/juwelier/rubyforge_tasks.rb +95 -0
- data/lib/juwelier/rubygems_dot_org_tasks.rb +38 -0
- data/lib/juwelier/rubygems_tasks.rb +38 -0
- data/lib/juwelier/specification.rb +110 -0
- data/lib/juwelier/tasks.rb +239 -0
- data/lib/juwelier/templates/.document +5 -0
- data/lib/juwelier/templates/.gitignore +49 -0
- data/lib/juwelier/templates/Gemfile +12 -0
- data/lib/juwelier/templates/LICENSE.txt +20 -0
- data/lib/juwelier/templates/README.rdoc +19 -0
- data/lib/juwelier/templates/Rakefile +9 -0
- data/lib/juwelier/templates/bacon/flunking.rb +7 -0
- data/lib/juwelier/templates/bacon/helper.rb +10 -0
- data/lib/juwelier/templates/bundler_setup.erb +10 -0
- data/lib/juwelier/templates/features/default.feature +9 -0
- data/lib/juwelier/templates/features/support/env.rb +11 -0
- data/lib/juwelier/templates/juwelier_tasks.erb +31 -0
- data/lib/juwelier/templates/micronaut/flunking.rb +7 -0
- data/lib/juwelier/templates/micronaut/helper.rb +19 -0
- data/lib/juwelier/templates/minitest/flunking.rb +7 -0
- data/lib/juwelier/templates/minitest/helper.rb +13 -0
- data/lib/juwelier/templates/other_tasks.erb +70 -0
- data/lib/juwelier/templates/riot/flunking.rb +11 -0
- data/lib/juwelier/templates/riot/helper.rb +5 -0
- data/lib/juwelier/templates/rspec/.rspec +1 -0
- data/lib/juwelier/templates/rspec/flunking.rb +7 -0
- data/lib/juwelier/templates/rspec/helper.rb +14 -0
- data/lib/juwelier/templates/shindo/flunking.rb +8 -0
- data/lib/juwelier/templates/shindo/helper.rb +7 -0
- data/lib/juwelier/templates/shoulda/flunking.rb +7 -0
- data/lib/juwelier/templates/shoulda/helper.rb +12 -0
- data/lib/juwelier/templates/simplecov.erb +16 -0
- data/lib/juwelier/templates/testspec/flunking.rb +7 -0
- data/lib/juwelier/templates/testspec/helper.rb +7 -0
- data/lib/juwelier/templates/testunit/flunking.rb +7 -0
- data/lib/juwelier/templates/testunit/helper.rb +11 -0
- data/lib/juwelier/version.rb +10 -0
- data/lib/juwelier/version_helper.rb +141 -0
- data/test/fixtures/bar/VERSION.yml +4 -0
- data/test/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
- data/test/fixtures/bar/hey_include_me_in_gemspec +0 -0
- data/test/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
- data/test/fixtures/existing-project-with-version-constant/.document +5 -0
- data/test/fixtures/existing-project-with-version-constant/.gitignore +5 -0
- data/test/fixtures/existing-project-with-version-constant/LICENSE.txt +20 -0
- data/test/fixtures/existing-project-with-version-constant/README.rdoc +7 -0
- data/test/fixtures/existing-project-with-version-constant/Rakefile +85 -0
- data/test/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec +29 -0
- data/test/fixtures/existing-project-with-version-constant/lib/existing_project_with_version.rb +0 -0
- data/test/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb +7 -0
- data/test/fixtures/existing-project-with-version-constant/test/test_helper.rb +10 -0
- data/test/fixtures/existing-project-with-version-plaintext/.document +5 -0
- data/test/fixtures/existing-project-with-version-plaintext/.gitignore +5 -0
- data/test/fixtures/existing-project-with-version-plaintext/LICENSE.txt +20 -0
- data/test/fixtures/existing-project-with-version-plaintext/README.rdoc +7 -0
- data/test/fixtures/existing-project-with-version-plaintext/Rakefile +84 -0
- data/test/fixtures/existing-project-with-version-plaintext/VERSION +1 -0
- data/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec +29 -0
- data/test/fixtures/existing-project-with-version-plaintext/lib/existing_project_with_version.rb +0 -0
- data/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb +7 -0
- data/test/fixtures/existing-project-with-version-plaintext/test/test_helper.rb +10 -0
- data/test/fixtures/existing-project-with-version-yaml/.document +5 -0
- data/test/fixtures/existing-project-with-version-yaml/.gitignore +5 -0
- data/test/fixtures/existing-project-with-version-yaml/LICENSE.txt +20 -0
- data/test/fixtures/existing-project-with-version-yaml/README.rdoc +7 -0
- data/test/fixtures/existing-project-with-version-yaml/Rakefile +84 -0
- data/test/fixtures/existing-project-with-version-yaml/VERSION.yml +4 -0
- data/test/fixtures/existing-project-with-version-yaml/bin/foo_the_ultimate_bin +0 -0
- data/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec +29 -0
- data/test/fixtures/existing-project-with-version-yaml/lib/existing_project_with_version.rb +0 -0
- data/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb +7 -0
- data/test/fixtures/existing-project-with-version-yaml/test/test_helper.rb +10 -0
- data/test/geminstaller.yml +12 -0
- data/test/juwelier/commands/test_build_gem.rb +112 -0
- data/test/juwelier/commands/test_install_gem.rb +35 -0
- data/test/juwelier/commands/test_release_to_gemcutter.rb +39 -0
- data/test/juwelier/commands/test_release_to_git.rb +271 -0
- data/test/juwelier/commands/test_release_to_github.rb +477 -0
- data/test/juwelier/commands/test_validate_gemspec.rb +27 -0
- data/test/juwelier/commands/test_write_gemspec.rb +103 -0
- data/test/juwelier/commands/version/test_base.rb +53 -0
- data/test/juwelier/commands/version/test_bump_major.rb +22 -0
- data/test/juwelier/commands/version/test_bump_minor.rb +19 -0
- data/test/juwelier/commands/version/test_bump_patch.rb +20 -0
- data/test/juwelier/commands/version/test_write.rb +22 -0
- data/test/juwelier/generator/test_application.rb +142 -0
- data/test/juwelier/generator/test_options.rb +227 -0
- data/test/juwelier/test_gemspec_helper.rb +44 -0
- data/test/juwelier/test_generator.rb +140 -0
- data/test/juwelier/test_generator_initialization.rb +150 -0
- data/test/juwelier/test_generator_mixins.rb +23 -0
- data/test/juwelier/test_specification.rb +245 -0
- data/test/juwelier/test_tasks.rb +50 -0
- data/test/juwelier/test_version_helper.rb +214 -0
- data/test/shoulda_macros/juwelier_macros.rb +35 -0
- data/test/test_helper.rb +174 -0
- data/test/test_juwelier.rb +177 -0
- metadata +396 -0
data/Rakefile
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
require 'semver'
|
6
|
+
|
7
|
+
def s_version
|
8
|
+
SemVer.find.format "%M.%m.%p%s"
|
9
|
+
end
|
10
|
+
|
11
|
+
begin
|
12
|
+
Bundler.setup(:default, :xzibit, :development)
|
13
|
+
rescue Bundler::BundlerError => e
|
14
|
+
$stderr.puts e.message
|
15
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
16
|
+
exit e.status_code
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'rake'
|
20
|
+
require 'juwelier'
|
21
|
+
|
22
|
+
Juwelier::Tasks.new do |gem|
|
23
|
+
gem.name = "juwelier"
|
24
|
+
gem.version = s_version
|
25
|
+
gem.required_ruby_version = '>= 2.0'
|
26
|
+
gem.homepage = "http://github.com/flajann2/juwelier"
|
27
|
+
gem.summary = "Powerful and Opinionated tool for creating and managing RubyGem projects"
|
28
|
+
gem.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
|
29
|
+
gem.license = "MIT"
|
30
|
+
gem.authors = ["Fred Mitchell", "Josh Nichols", "Yusuke Murata"]
|
31
|
+
gem.email = ["fred.mitchell@gmx.de", "fred.mitchell@gmx.com", "info@muratayusuke.com"]
|
32
|
+
gem.files.include %w(lib/juwelier/templates/.document lib/juwelier/templates/.gitignore)
|
33
|
+
|
34
|
+
# dependencies defined in Gemfile
|
35
|
+
end
|
36
|
+
|
37
|
+
Juwelier::RubygemsDotOrgTasks.new
|
38
|
+
|
39
|
+
require 'rake/testtask'
|
40
|
+
Rake::TestTask.new(:test) do |test|
|
41
|
+
test.test_files = FileList.new('test/**/test_*.rb') do |list|
|
42
|
+
list.exclude 'test/test_helper.rb'
|
43
|
+
list.exclude 'test/fixtures/**/*.rb'
|
44
|
+
end
|
45
|
+
test.libs << 'test'
|
46
|
+
test.verbose = true
|
47
|
+
end
|
48
|
+
|
49
|
+
namespace :test do
|
50
|
+
task :gemspec_dup do
|
51
|
+
gemspec = Rake.application.juwelier.gemspec
|
52
|
+
dupped_gemspec = gemspec.dup
|
53
|
+
cloned_gemspec = gemspec.clone
|
54
|
+
puts gemspec.to_ruby
|
55
|
+
puts dupped_gemspec.to_ruby
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
require 'yard'
|
60
|
+
YARD::Rake::YardocTask.new do |t|
|
61
|
+
t.files = FileList['lib/**/*.rb'].exclude('lib/juwelier/templates/**/*.rb')
|
62
|
+
end
|
63
|
+
|
64
|
+
require 'cucumber/rake/task'
|
65
|
+
Cucumber::Rake::Task.new(:features) do |features|
|
66
|
+
features.cucumber_opts = "features --format progress"
|
67
|
+
end
|
68
|
+
namespace :features do
|
69
|
+
Cucumber::Rake::Task.new(:pretty) do |features|
|
70
|
+
features.cucumber_opts = "features --format progress"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
if ENV["RUN_CODE_RUN"] == "true"
|
75
|
+
task :default => [:test, :features]
|
76
|
+
else
|
77
|
+
task :default => :test
|
78
|
+
end
|
data/bin/juwelier
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Don't try to run this binary directory. Instead:
|
3
|
+
# * `bundle exec juwelier` if doing juwelier development
|
4
|
+
# * `bundle exec juwelier` if part of a bundle
|
5
|
+
# * `juwelier` if installed through rubygems, relying on the rubygem wrapper
|
6
|
+
|
7
|
+
require 'juwelier/generator'
|
8
|
+
|
9
|
+
exit Juwelier::Generator::Application.run!(*ARGV)
|
@@ -0,0 +1,103 @@
|
|
1
|
+
Feature: generating cucumber stories
|
2
|
+
In order to get started using cucumber in a project
|
3
|
+
A user should be able to
|
4
|
+
generate a project setup for their testing framework of choice
|
5
|
+
|
6
|
+
Scenario: sans cucumber setup
|
7
|
+
Given a working directory
|
8
|
+
And I have configured git sanely
|
9
|
+
And I do not want cucumber stories
|
10
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
11
|
+
|
12
|
+
And a file named 'the-perfect-gem/features/the-perfect-gem.feature' is not created
|
13
|
+
And a file named 'the-perfect-gem/features/support/env.rb' is not created
|
14
|
+
And a file named 'the-perfect-gem/features/steps/the-perfect-gem_steps.rb' is not created
|
15
|
+
|
16
|
+
Scenario: basic cucumber setup
|
17
|
+
Given a working directory
|
18
|
+
And I have configured git sanely
|
19
|
+
And I want cucumber stories
|
20
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
21
|
+
|
22
|
+
Then cucumber directories are created
|
23
|
+
|
24
|
+
And a file named 'the-perfect-gem/features/the-perfect-gem.feature' is created
|
25
|
+
And a file named 'the-perfect-gem/features/support/env.rb' is created
|
26
|
+
And a file named 'the-perfect-gem/features/step_definitions/the-perfect-gem_steps.rb' is created
|
27
|
+
|
28
|
+
And 'features/support/env.rb' requires 'bundler'
|
29
|
+
And 'features/support/env.rb' sets up bundler using the default and development groups
|
30
|
+
And 'features/support/env.rb' requires 'the-perfect-gem'
|
31
|
+
|
32
|
+
Scenario: bundler
|
33
|
+
Given a working directory
|
34
|
+
And I want bundler
|
35
|
+
And I have configured git sanely
|
36
|
+
And I want cucumber stories
|
37
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
38
|
+
And 'features/support/env.rb' requires 'bundler'
|
39
|
+
And 'features/support/env.rb' sets up bundler using the default and development groups
|
40
|
+
|
41
|
+
Scenario: no bundler
|
42
|
+
Given a working directory
|
43
|
+
And I have configured git sanely
|
44
|
+
And I do not want bundler
|
45
|
+
And I want cucumber stories
|
46
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
47
|
+
And 'features/support/env.rb' does not require 'bundler'
|
48
|
+
And 'features/support/env.rb' does not setup bundler
|
49
|
+
|
50
|
+
Scenario: cucumber setup for bacon
|
51
|
+
Given a working directory
|
52
|
+
And I have configured git sanely
|
53
|
+
And I want cucumber stories
|
54
|
+
When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
|
55
|
+
|
56
|
+
Then 'features/support/env.rb' requires 'test/unit/assertions'
|
57
|
+
And cucumber world extends "Test::Unit::Assertions"
|
58
|
+
|
59
|
+
Scenario: cucumber setup for shoulda
|
60
|
+
Given a working directory
|
61
|
+
And I have configured git sanely
|
62
|
+
And I want cucumber stories
|
63
|
+
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
64
|
+
|
65
|
+
Then 'features/support/env.rb' requires 'test/unit/assertions'
|
66
|
+
And cucumber world extends "Test::Unit::Assertions"
|
67
|
+
|
68
|
+
Scenario: cucumber setup for testunit
|
69
|
+
Given a working directory
|
70
|
+
And I have configured git sanely
|
71
|
+
And I want cucumber stories
|
72
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
73
|
+
|
74
|
+
Then 'features/support/env.rb' requires 'test/unit/assertions'
|
75
|
+
And cucumber world extends "Test::Unit::Assertions"
|
76
|
+
|
77
|
+
Scenario: cucumber setup for minitest
|
78
|
+
Given a working directory
|
79
|
+
And I have configured git sanely
|
80
|
+
And I want cucumber stories
|
81
|
+
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
82
|
+
|
83
|
+
Then 'features/support/env.rb' requires 'minitest/unit'
|
84
|
+
And cucumber world extends "MiniTest::Assertions"
|
85
|
+
|
86
|
+
Scenario: cucumber setup for rspec
|
87
|
+
Given a working directory
|
88
|
+
And I have configured git sanely
|
89
|
+
And I want cucumber stories
|
90
|
+
When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
|
91
|
+
|
92
|
+
Then 'features/support/env.rb' requires 'the-perfect-gem'
|
93
|
+
And 'features/support/env.rb' requires 'rspec/expectations'
|
94
|
+
|
95
|
+
Scenario: cucumber setup for mirconaut
|
96
|
+
Given a working directory
|
97
|
+
And I have configured git sanely
|
98
|
+
And I want cucumber stories
|
99
|
+
When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
|
100
|
+
|
101
|
+
Then 'features/support/env.rb' requires 'the-perfect-gem'
|
102
|
+
And 'features/support/env.rb' requires 'micronaut/expectations'
|
103
|
+
And cucumber world extends "Micronaut::Matchers"
|
@@ -0,0 +1,86 @@
|
|
1
|
+
Feature: generated directory layout
|
2
|
+
In order to start a new gem
|
3
|
+
A user should be able to
|
4
|
+
generate a directory layout
|
5
|
+
|
6
|
+
Scenario: shared
|
7
|
+
Given a working directory
|
8
|
+
And I have configured git sanely
|
9
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
10
|
+
|
11
|
+
Then a directory named 'the-perfect-gem' is created
|
12
|
+
And a directory named 'the-perfect-gem/lib' is created
|
13
|
+
|
14
|
+
And a file named 'the-perfect-gem/README.rdoc' is created
|
15
|
+
And a file named 'the-perfect-gem/.document' is created
|
16
|
+
And a file named 'the-perfect-gem/lib/the-perfect-gem.rb' is created
|
17
|
+
|
18
|
+
Scenario: bacon
|
19
|
+
Given a working directory
|
20
|
+
And I have configured git sanely
|
21
|
+
When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
|
22
|
+
|
23
|
+
Then a directory named 'the-perfect-gem/spec' is created
|
24
|
+
|
25
|
+
And a file named 'the-perfect-gem/spec/spec_helper.rb' is created
|
26
|
+
And a file named 'the-perfect-gem/spec/the-perfect-gem_spec.rb' is created
|
27
|
+
|
28
|
+
Scenario: minitest
|
29
|
+
Given a working directory
|
30
|
+
And I have configured git sanely
|
31
|
+
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
32
|
+
|
33
|
+
Then a directory named 'the-perfect-gem/test' is created
|
34
|
+
|
35
|
+
And a file named 'the-perfect-gem/test/helper.rb' is created
|
36
|
+
And a file named 'the-perfect-gem/test/test_the-perfect-gem.rb' is created
|
37
|
+
|
38
|
+
Scenario: rspec
|
39
|
+
Given a working directory
|
40
|
+
And I have configured git sanely
|
41
|
+
When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
|
42
|
+
|
43
|
+
Then a directory named 'the-perfect-gem/spec' is created
|
44
|
+
|
45
|
+
And a file named 'the-perfect-gem/spec/spec_helper.rb' is created
|
46
|
+
And a file named 'the-perfect-gem/spec/the-perfect-gem_spec.rb' is created
|
47
|
+
|
48
|
+
Scenario: shoulda
|
49
|
+
Given a working directory
|
50
|
+
And I have configured git sanely
|
51
|
+
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
52
|
+
|
53
|
+
Then a directory named 'the-perfect-gem/test' is created
|
54
|
+
|
55
|
+
And a file named 'the-perfect-gem/test/helper.rb' is created
|
56
|
+
And a file named 'the-perfect-gem/test/test_the-perfect-gem.rb' is created
|
57
|
+
|
58
|
+
Scenario: testunit
|
59
|
+
Given a working directory
|
60
|
+
And I have configured git sanely
|
61
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
62
|
+
|
63
|
+
Then a directory named 'the-perfect-gem/test' is created
|
64
|
+
|
65
|
+
And a file named 'the-perfect-gem/test/helper.rb' is created
|
66
|
+
And a file named 'the-perfect-gem/test/test_the-perfect-gem.rb' is created
|
67
|
+
|
68
|
+
Scenario: micronaut
|
69
|
+
Given a working directory
|
70
|
+
And I have configured git sanely
|
71
|
+
When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
|
72
|
+
|
73
|
+
Then a directory named 'the-perfect-gem/examples' is created
|
74
|
+
|
75
|
+
And a file named 'the-perfect-gem/examples/example_helper.rb' is created
|
76
|
+
And a file named 'the-perfect-gem/examples/the-perfect-gem_example.rb' is created
|
77
|
+
|
78
|
+
Scenario: shindo
|
79
|
+
Given a working directory
|
80
|
+
And I have configured git sanely
|
81
|
+
When I generate a shindo project named 'the-perfect-gem' that is 'zomg, so good'
|
82
|
+
|
83
|
+
Then a directory named 'the-perfect-gem/tests' is created
|
84
|
+
|
85
|
+
And a file named 'the-perfect-gem/tests/tests_helper.rb' is created
|
86
|
+
And a file named 'the-perfect-gem/tests/the-perfect-gem_tests.rb' is created
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: generated .document
|
2
|
+
In order to easily generate RDoc
|
3
|
+
A user should be able to
|
4
|
+
generate reasonable .document file
|
5
|
+
|
6
|
+
Scenario: .document
|
7
|
+
Given a working directory
|
8
|
+
And I have configured git sanely
|
9
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
10
|
+
Then '.document' contains 'lib/**/*.rb'
|
11
|
+
And '.document' contains 'bin/*'
|
12
|
+
And '.document' contains 'features/**/*.feature'
|
13
|
+
And '.document' contains 'LICENSE.txt'
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Feature: Getting options from environment variable
|
2
|
+
In order to avoid having to type --rspec over and over
|
3
|
+
A user will need to set up a JUWELIER_OPTS environment variable
|
4
|
+
|
5
|
+
Scenario: Environment variable set
|
6
|
+
Given a working directory
|
7
|
+
And I set JUWELIER_OPTS env variable to "--rspec"
|
8
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
9
|
+
Then 'spec/the-perfect-gem_spec.rb' should describe 'ThePerfectGem'
|
@@ -0,0 +1,81 @@
|
|
1
|
+
Feature: generated Gemfiel
|
2
|
+
In order to start a new gem
|
3
|
+
A user should be able to
|
4
|
+
generate a Gemfile
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given a working directory
|
8
|
+
And I have configured git sanely
|
9
|
+
|
10
|
+
Scenario: disabled
|
11
|
+
Given I do not want bundler
|
12
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
13
|
+
Then a file named 'the-perfect-gemGemfile' is not created
|
14
|
+
|
15
|
+
Scenario: enabled
|
16
|
+
Given I want bundler
|
17
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
18
|
+
Then a file named 'the-perfect-gem/Gemfile' is created
|
19
|
+
|
20
|
+
Scenario: default
|
21
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
22
|
+
Then a file named 'the-perfect-gem/Gemfile' is created
|
23
|
+
And 'Gemfile' uses the gemcutter source
|
24
|
+
And 'Gemfile' has a development dependency on 'bundler'
|
25
|
+
And 'Gemfile' has a development dependency on the current version of juwelier
|
26
|
+
And 'Gemfile' has a development dependency on 'simplecov'
|
27
|
+
And 'Gemfile' has a development dependency on 'rcov'
|
28
|
+
And 'Gemfile' has a development dependency on 'rdoc'
|
29
|
+
And 'Gemfile' does not have a development dependency on 'yard'
|
30
|
+
|
31
|
+
Scenario: bacon
|
32
|
+
When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
|
33
|
+
Then 'Gemfile' has a development dependency on 'bacon'
|
34
|
+
|
35
|
+
Scenario: minitest
|
36
|
+
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
37
|
+
Then 'Gemfile' has a development dependency on 'minitest'
|
38
|
+
|
39
|
+
Scenario: rspec
|
40
|
+
When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
|
41
|
+
|
42
|
+
Then 'Gemfile' has a development dependency on 'rspec'
|
43
|
+
|
44
|
+
Scenario: shoulda
|
45
|
+
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
46
|
+
Then 'Gemfile' has a development dependency on 'shoulda'
|
47
|
+
|
48
|
+
Scenario: micronaut
|
49
|
+
When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
|
50
|
+
Then 'Gemfile' has a development dependency on 'micronaut'
|
51
|
+
|
52
|
+
Scenario: cucumber
|
53
|
+
Given I want cucumber stories
|
54
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
55
|
+
Then 'Gemfile' has a development dependency on 'cucumber'
|
56
|
+
|
57
|
+
Scenario: reek
|
58
|
+
Given I want reek
|
59
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
60
|
+
Then 'Gemfile' has a development dependency on 'reek'
|
61
|
+
|
62
|
+
Scenario: roodi
|
63
|
+
Given I want roodi
|
64
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
65
|
+
Then 'Gemfile' has a development dependency on 'roodi'
|
66
|
+
|
67
|
+
Scenario: rdoc
|
68
|
+
Given I want to use rdoc instead of yard
|
69
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
70
|
+
Then 'Gemfile' has a development dependency on 'rdoc'
|
71
|
+
And 'Gemfile' does not have a development dependency on 'yard'
|
72
|
+
|
73
|
+
Scenario: yard
|
74
|
+
Given I want to use yard instead of rdoc
|
75
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
76
|
+
Then 'Gemfile' has a development dependency on 'yard'
|
77
|
+
Then 'Gemfile' has a development dependency on 'rdoc'
|
78
|
+
|
79
|
+
Scenario: shindo
|
80
|
+
When I generate a shindo project named 'the-perfect-gem' that is 'zomg, so good'
|
81
|
+
Then 'Gemfile' has a development dependency on 'shindo'
|
@@ -0,0 +1,102 @@
|
|
1
|
+
Feature: git support
|
2
|
+
In order to start a new gem for GitHub
|
3
|
+
A user should be able to
|
4
|
+
generate a project that is setup for git
|
5
|
+
|
6
|
+
Scenario: git remote configuration
|
7
|
+
Given a working directory
|
8
|
+
And I have configured git sanely
|
9
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
10
|
+
|
11
|
+
Then git repository has 'origin' remote
|
12
|
+
And git repository 'origin' remote should be 'git@github.com:flajann2/the-perfect-gem.git'
|
13
|
+
|
14
|
+
Scenario: .gitignore
|
15
|
+
Given a working directory
|
16
|
+
And I have configured git sanely
|
17
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
18
|
+
|
19
|
+
Then a sane '.gitignore' is created
|
20
|
+
|
21
|
+
Scenario: baseline repository
|
22
|
+
Given a working directory
|
23
|
+
And I have configured git sanely
|
24
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
25
|
+
|
26
|
+
Then a commit with the message 'Initial commit to the-perfect-gem.' is made
|
27
|
+
And 'README.rdoc' was checked in
|
28
|
+
And 'Rakefile' was checked in
|
29
|
+
And 'LICENSE.txt' was checked in
|
30
|
+
And 'lib/the-perfect-gem.rb' was checked in
|
31
|
+
And '.gitignore' was checked in
|
32
|
+
|
33
|
+
And no files are untracked
|
34
|
+
And no files are changed
|
35
|
+
And no files are added
|
36
|
+
And no files are deleted
|
37
|
+
|
38
|
+
Scenario: bacon
|
39
|
+
Given a working directory
|
40
|
+
And I have configured git sanely
|
41
|
+
When I generate a bacon project named 'the-perfect-gem' that is 'zomg, so good'
|
42
|
+
|
43
|
+
Then 'spec/spec_helper.rb' was checked in
|
44
|
+
And 'spec/the-perfect-gem_spec.rb' was checked in
|
45
|
+
|
46
|
+
Scenario: minitest
|
47
|
+
Given a working directory
|
48
|
+
And I have configured git sanely
|
49
|
+
When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
|
50
|
+
|
51
|
+
Then 'test/helper.rb' was checked in
|
52
|
+
And 'test/test_the-perfect-gem.rb' was checked in
|
53
|
+
|
54
|
+
Scenario: rspec
|
55
|
+
Given a working directory
|
56
|
+
And I have configured git sanely
|
57
|
+
When I generate a rspec project named 'the-perfect-gem' that is 'zomg, so good'
|
58
|
+
|
59
|
+
Then 'spec/spec_helper.rb' was checked in
|
60
|
+
And 'spec/the-perfect-gem_spec.rb' was checked in
|
61
|
+
|
62
|
+
Scenario: shoulda
|
63
|
+
Given a working directory
|
64
|
+
And I have configured git sanely
|
65
|
+
When I generate a shoulda project named 'the-perfect-gem' that is 'zomg, so good'
|
66
|
+
|
67
|
+
Then 'test/helper.rb' was checked in
|
68
|
+
And 'test/test_the-perfect-gem.rb' was checked in
|
69
|
+
|
70
|
+
Scenario: testunit
|
71
|
+
Given a working directory
|
72
|
+
And I have configured git sanely
|
73
|
+
When I generate a testunit project named 'the-perfect-gem' that is 'zomg, so good'
|
74
|
+
|
75
|
+
Then 'test/helper.rb' was checked in
|
76
|
+
And 'test/test_the-perfect-gem.rb' was checked in
|
77
|
+
|
78
|
+
Scenario: micronaut
|
79
|
+
Given a working directory
|
80
|
+
And I have configured git sanely
|
81
|
+
When I generate a micronaut project named 'the-perfect-gem' that is 'zomg, so good'
|
82
|
+
|
83
|
+
Then 'examples/example_helper.rb' was checked in
|
84
|
+
And 'examples/the-perfect-gem_example.rb' was checked in
|
85
|
+
|
86
|
+
Scenario: cucumber
|
87
|
+
Given a working directory
|
88
|
+
And I have configured git sanely
|
89
|
+
And I want cucumber stories
|
90
|
+
When I generate a project named 'the-perfect-gem' that is 'zomg, so good'
|
91
|
+
|
92
|
+
Then 'features/the-perfect-gem.feature' was checked in
|
93
|
+
And 'features/support/env.rb' was checked in
|
94
|
+
And 'features/step_definitions/the-perfect-gem_steps.rb' was checked in
|
95
|
+
|
96
|
+
Scenario: shindo
|
97
|
+
Given a working directory
|
98
|
+
And I have configured git sanely
|
99
|
+
When I generate a shindo project named 'the-perfect-gem' that is 'zomg, so good'
|
100
|
+
|
101
|
+
Then 'tests/tests_helper.rb' was checked in
|
102
|
+
And 'tests/the-perfect-gem_tests.rb' was checked in
|