mcornick-jeweler 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. data/.gitignore +9 -0
  2. data/ChangeLog.markdown +111 -0
  3. data/LICENSE +20 -0
  4. data/README.markdown +185 -0
  5. data/ROADMAP +12 -0
  6. data/Rakefile +103 -0
  7. data/VERSION.yml +4 -0
  8. data/bin/jeweler +8 -0
  9. data/features/generator/cucumber.feature +83 -0
  10. data/features/generator/directory_layout.feature +76 -0
  11. data/features/generator/dotdocument.feature +14 -0
  12. data/features/generator/env_options.feature +9 -0
  13. data/features/generator/git.feature +94 -0
  14. data/features/generator/license.feature +11 -0
  15. data/features/generator/rakefile.feature +151 -0
  16. data/features/generator/readme.feature +12 -0
  17. data/features/generator/test.feature +41 -0
  18. data/features/generator/test_helper.feature +49 -0
  19. data/features/placeholder.feature +5 -0
  20. data/features/step_definitions/debug_steps.rb +6 -0
  21. data/features/step_definitions/filesystem_steps.rb +68 -0
  22. data/features/step_definitions/generator_steps.rb +284 -0
  23. data/features/step_definitions/task_steps.rb +6 -0
  24. data/features/support/env.rb +29 -0
  25. data/features/tasks/build_gem.feature +9 -0
  26. data/features/tasks/version.feature +24 -0
  27. data/features/tasks/version_bumping.feature +33 -0
  28. data/jeweler.gemspec +225 -0
  29. data/lib/jeweler.rb +153 -0
  30. data/lib/jeweler/commands.rb +14 -0
  31. data/lib/jeweler/commands/build_gem.rb +31 -0
  32. data/lib/jeweler/commands/check_dependencies.rb +52 -0
  33. data/lib/jeweler/commands/install_gem.rb +40 -0
  34. data/lib/jeweler/commands/release.rb +86 -0
  35. data/lib/jeweler/commands/release_to_rubyforge.rb +51 -0
  36. data/lib/jeweler/commands/setup_rubyforge.rb +57 -0
  37. data/lib/jeweler/commands/validate_gemspec.rb +30 -0
  38. data/lib/jeweler/commands/version/base.rb +41 -0
  39. data/lib/jeweler/commands/version/bump_major.rb +13 -0
  40. data/lib/jeweler/commands/version/bump_minor.rb +12 -0
  41. data/lib/jeweler/commands/version/bump_patch.rb +14 -0
  42. data/lib/jeweler/commands/version/write.rb +12 -0
  43. data/lib/jeweler/commands/write_gemspec.rb +39 -0
  44. data/lib/jeweler/errors.rb +20 -0
  45. data/lib/jeweler/gemspec_helper.rb +79 -0
  46. data/lib/jeweler/generator.rb +306 -0
  47. data/lib/jeweler/generator/application.rb +54 -0
  48. data/lib/jeweler/generator/bacon_mixin.rb +43 -0
  49. data/lib/jeweler/generator/micronaut_mixin.rb +41 -0
  50. data/lib/jeweler/generator/minitest_mixin.rb +42 -0
  51. data/lib/jeweler/generator/options.rb +102 -0
  52. data/lib/jeweler/generator/rdoc_mixin.rb +9 -0
  53. data/lib/jeweler/generator/rspec_mixin.rb +42 -0
  54. data/lib/jeweler/generator/shoulda_mixin.rb +42 -0
  55. data/lib/jeweler/generator/testunit_mixin.rb +39 -0
  56. data/lib/jeweler/generator/yard_mixin.rb +14 -0
  57. data/lib/jeweler/rubyforge_tasks.rb +98 -0
  58. data/lib/jeweler/specification.rb +66 -0
  59. data/lib/jeweler/tasks.rb +135 -0
  60. data/lib/jeweler/templates/.document +5 -0
  61. data/lib/jeweler/templates/.gitignore +5 -0
  62. data/lib/jeweler/templates/LICENSE +20 -0
  63. data/lib/jeweler/templates/README.rdoc +18 -0
  64. data/lib/jeweler/templates/Rakefile +153 -0
  65. data/lib/jeweler/templates/bacon/flunking.rb +7 -0
  66. data/lib/jeweler/templates/bacon/helper.rb +8 -0
  67. data/lib/jeweler/templates/features/default.feature +9 -0
  68. data/lib/jeweler/templates/features/support/env.rb +8 -0
  69. data/lib/jeweler/templates/micronaut/flunking.rb +7 -0
  70. data/lib/jeweler/templates/micronaut/helper.rb +17 -0
  71. data/lib/jeweler/templates/minitest/flunking.rb +7 -0
  72. data/lib/jeweler/templates/minitest/helper.rb +11 -0
  73. data/lib/jeweler/templates/rspec/flunking.rb +7 -0
  74. data/lib/jeweler/templates/rspec/helper.rb +10 -0
  75. data/lib/jeweler/templates/shoulda/flunking.rb +7 -0
  76. data/lib/jeweler/templates/shoulda/helper.rb +10 -0
  77. data/lib/jeweler/templates/testunit/flunking.rb +7 -0
  78. data/lib/jeweler/templates/testunit/helper.rb +9 -0
  79. data/lib/jeweler/version_helper.rb +128 -0
  80. data/test/fixtures/bar/VERSION.yml +4 -0
  81. data/test/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
  82. data/test/fixtures/bar/hey_include_me_in_gemspec +0 -0
  83. data/test/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
  84. data/test/fixtures/existing-project-with-version-plaintext/.document +5 -0
  85. data/test/fixtures/existing-project-with-version-plaintext/.gitignore +5 -0
  86. data/test/fixtures/existing-project-with-version-plaintext/LICENSE +20 -0
  87. data/test/fixtures/existing-project-with-version-plaintext/README.rdoc +7 -0
  88. data/test/fixtures/existing-project-with-version-plaintext/Rakefile +82 -0
  89. data/test/fixtures/existing-project-with-version-plaintext/VERSION +1 -0
  90. data/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec +29 -0
  91. data/test/fixtures/existing-project-with-version-plaintext/lib/existing_project_with_version.rb +0 -0
  92. data/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb +7 -0
  93. data/test/fixtures/existing-project-with-version-plaintext/test/test_helper.rb +10 -0
  94. data/test/fixtures/existing-project-with-version-yaml/.document +5 -0
  95. data/test/fixtures/existing-project-with-version-yaml/.gitignore +5 -0
  96. data/test/fixtures/existing-project-with-version-yaml/LICENSE +20 -0
  97. data/test/fixtures/existing-project-with-version-yaml/README.rdoc +7 -0
  98. data/test/fixtures/existing-project-with-version-yaml/Rakefile +82 -0
  99. data/test/fixtures/existing-project-with-version-yaml/VERSION.yml +4 -0
  100. data/test/fixtures/existing-project-with-version-yaml/bin/foo_the_ultimate_bin +0 -0
  101. data/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec +29 -0
  102. data/test/fixtures/existing-project-with-version-yaml/lib/existing_project_with_version.rb +0 -0
  103. data/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb +7 -0
  104. data/test/fixtures/existing-project-with-version-yaml/test/test_helper.rb +10 -0
  105. data/test/geminstaller.yml +12 -0
  106. data/test/jeweler/commands/test_build_gem.rb +72 -0
  107. data/test/jeweler/commands/test_install_gem.rb +74 -0
  108. data/test/jeweler/commands/test_release.rb +362 -0
  109. data/test/jeweler/commands/test_release_to_rubyforge.rb +157 -0
  110. data/test/jeweler/commands/test_setup_rubyforge.rb +182 -0
  111. data/test/jeweler/commands/test_validate_gemspec.rb +27 -0
  112. data/test/jeweler/commands/test_write_gemspec.rb +92 -0
  113. data/test/jeweler/commands/version/test_base.rb +32 -0
  114. data/test/jeweler/commands/version/test_bump_major.rb +22 -0
  115. data/test/jeweler/commands/version/test_bump_minor.rb +19 -0
  116. data/test/jeweler/commands/version/test_bump_patch.rb +20 -0
  117. data/test/jeweler/commands/version/test_write.rb +23 -0
  118. data/test/shoulda_macros/jeweler_macros.rb +35 -0
  119. data/test/test_application.rb +139 -0
  120. data/test/test_gemspec_helper.rb +40 -0
  121. data/test/test_generator.rb +166 -0
  122. data/test/test_generator_initialization.rb +156 -0
  123. data/test/test_generator_mixins.rb +18 -0
  124. data/test/test_helper.rb +159 -0
  125. data/test/test_jeweler.rb +174 -0
  126. data/test/test_options.rb +149 -0
  127. data/test/test_specification.rb +61 -0
  128. data/test/test_tasks.rb +35 -0
  129. data/test/test_version_helper.rb +153 -0
  130. metadata +283 -0
@@ -0,0 +1,66 @@
1
+ require 'rubygems/specification'
2
+
3
+ class Jeweler
4
+ # Extend a Gem::Specification instance with this module to give it Jeweler
5
+ # super-cow powers.
6
+ module Specification
7
+
8
+ def self.filelist_attribute(name)
9
+ code = %{
10
+ def #{name}
11
+ @#{name} ||= FileList[]
12
+ end
13
+ def #{name}=(value)
14
+ @#{name} = FileList[value]
15
+ end
16
+ }
17
+
18
+ module_eval code, __FILE__, __LINE__ - 9
19
+ end
20
+
21
+ filelist_attribute :files
22
+ filelist_attribute :test_files
23
+ filelist_attribute :extra_rdoc_files
24
+
25
+
26
+ # Assigns the Jeweler defaults to the Gem::Specification
27
+ def set_jeweler_defaults(base_dir)
28
+ Dir.chdir(base_dir) do
29
+ if blank?(files) && File.directory?(File.join(base_dir, '.git'))
30
+ repo = Git.open(base_dir)
31
+ self.files = repo.ls_files.keys - repo.lib.ignored_files
32
+ end
33
+
34
+ if blank?(test_files) && File.directory?(File.join(base_dir, '.git'))
35
+ repo = Git.open(base_dir)
36
+ self.test_files = FileList['{spec,test,examples}/**/*.rb'] - repo.lib.ignored_files
37
+ end
38
+
39
+ if blank?(executables)
40
+ self.executables = Dir["bin/*"].map { |f| File.basename(f) }
41
+ end
42
+
43
+ self.has_rdoc = true
44
+ rdoc_options << '--charset=UTF-8'
45
+
46
+ if blank?(extra_rdoc_files)
47
+ self.extra_rdoc_files = FileList["README*", "ChangeLog*", "LICENSE*"]
48
+ end
49
+ end
50
+ end
51
+
52
+ # Used by Specification#to_ruby to generate a ruby-respresentation of a Gem::Specification
53
+ def ruby_code(obj)
54
+ case obj
55
+ when Rake::FileList then obj.to_a.inspect
56
+ else super
57
+ end
58
+ end
59
+
60
+ private
61
+
62
+ def blank?(value)
63
+ value.nil? || value.empty?
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,135 @@
1
+ require 'rake'
2
+ require 'rake/tasklib'
3
+
4
+ class Rake::Application
5
+ attr_accessor :jeweler
6
+ end
7
+
8
+ class Jeweler
9
+ # Rake tasks for managing your gem.
10
+ #
11
+ # Here's a basic example of using it:
12
+ #
13
+ # Jeweler::Tasks.new do |gem|
14
+ # gem.name = "jeweler"
15
+ # gem.summary = "Simple and opinionated helper for creating Rubygem projects on GitHub"
16
+ # gem.email = "josh@technicalpickles.com"
17
+ # gem.homepage = "http://github.com/technicalpickles/jeweler"
18
+ # gem.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
19
+ # gem.authors = ["Josh Nichols"]
20
+ # end
21
+ #
22
+ # The block variable gem is actually a Gem::Specification, so you can do anything you would normally do with a Gem::Specification. For more details, see the official gemspec reference: http://docs.rubygems.org/read/chapter/20
23
+ #
24
+ # Jeweler fills in a few reasonable defaults for you:
25
+ #
26
+ # [gem.files] a Rake::FileList of anything that is in git and not gitignored. You can include/exclude this default set, or override it entirely
27
+ # [gem.test_files] Similar to gem.files, except it's only things under the spec, test, or examples directory.
28
+ # [gem.extra_rdoc_files] a Rake::FileList including files like README*, ChangeLog*, and LICENSE*
29
+ # [gem.executables] uses anything found in the bin/ directory. You can override this.
30
+ #
31
+ class Tasks < ::Rake::TaskLib
32
+ attr_accessor :gemspec, :jeweler
33
+
34
+ def initialize(gemspec = nil, &block)
35
+ @gemspec = gemspec || Gem::Specification.new
36
+ @jeweler = Jeweler.new(@gemspec)
37
+ yield @gemspec if block_given?
38
+
39
+ Rake.application.jeweler = @jeweler
40
+ define
41
+ end
42
+
43
+ private
44
+ def define
45
+ task :version_required do
46
+ unless jeweler.version_exists?
47
+ abort "Expected VERSION or VERSION.yml to exist. See version:write to create an initial one."
48
+ end
49
+ end
50
+
51
+ desc "Build gem"
52
+ task :build do
53
+ jeweler.build_gem
54
+ end
55
+
56
+ desc "Install gem using sudo"
57
+ task :install => :build do
58
+ jeweler.install_gem
59
+ end
60
+
61
+ desc "Generate and validates gemspec"
62
+ task :gemspec => ['gemspec:generate', 'gemspec:validate']
63
+
64
+ namespace :gemspec do
65
+ desc "Validates the gemspec"
66
+ task :validate => :version_required do
67
+ jeweler.validate_gemspec
68
+ end
69
+
70
+ desc "Generates the gemspec, using version from VERSION"
71
+ task :generate => :version_required do
72
+ jeweler.write_gemspec
73
+ end
74
+ end
75
+
76
+ desc "Displays the current version"
77
+ task :version => :version_required do
78
+ $stdout.puts "Current version: #{jeweler.version}"
79
+ end
80
+
81
+ namespace :version do
82
+ desc "Writes out an explicit version. Respects the following environment variables, or defaults to 0: MAJOR, MINOR, PATCH"
83
+ task :write do
84
+ major, minor, patch = ENV['MAJOR'].to_i, ENV['MINOR'].to_i, ENV['PATCH'].to_i
85
+ jeweler.write_version(major, minor, patch, :announce => false, :commit => false)
86
+ $stdout.puts "Updated version: #{jeweler.version}"
87
+ end
88
+
89
+ namespace :bump do
90
+ desc "Bump the gemspec by a major version."
91
+ task :major => [:version_required, :version] do
92
+ jeweler.bump_major_version
93
+ $stdout.puts "Updated version: #{jeweler.version}"
94
+ end
95
+
96
+ desc "Bump the gemspec by a minor version."
97
+ task :minor => [:version_required, :version] do
98
+ jeweler.bump_minor_version
99
+ $stdout.puts "Updated version: #{jeweler.version}"
100
+ end
101
+
102
+ desc "Bump the gemspec by a patch version."
103
+ task :patch => [:version_required, :version] do
104
+ jeweler.bump_patch_version
105
+ $stdout.puts "Updated version: #{jeweler.version}"
106
+ end
107
+ end
108
+ end
109
+
110
+ desc "Release the current version. Includes updating the gemspec, pushing, and tagging the release"
111
+ task :release do
112
+ jeweler.release
113
+ end
114
+
115
+ desc "Check that runtime and development dependencies are installed"
116
+ task :check_dependencies do
117
+ jeweler.check_dependencies
118
+ end
119
+
120
+ namespace :check_dependencies do
121
+ desc "Check that runtime dependencies are installed"
122
+ task :runtime do
123
+ jeweler.check_dependencies(:runtime)
124
+ end
125
+
126
+ desc"Check that development dependencies are installed"
127
+ task :development do
128
+ jeweler.check_dependencies(:development)
129
+ end
130
+
131
+ end
132
+
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
@@ -0,0 +1,5 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 <%= user_name %>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,18 @@
1
+ = <%= project_name %>
2
+
3
+ Description goes here.
4
+
5
+ == Note on Patches/Pull Requests
6
+
7
+ * Fork the project.
8
+ * Make your feature addition or bug fix.
9
+ * Add tests for it. This is important so I don't break it in a
10
+ future version unintentionally.
11
+ * Commit, do not mess with rakefile, version, or history.
12
+ (if you want to have your own version, that is fine but
13
+ bump version in a commit by itself I can ignore when I pull)
14
+ * Send me a pull request. Bonus points for topic branches.
15
+
16
+ == Copyright
17
+
18
+ Copyright (c) <%= Time.now.year %> <%= user_name %>. See LICENSE for details.
@@ -0,0 +1,153 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "<%= project_name %>"
8
+ gem.summary = %Q{<%= summary %>}
9
+ gem.description = %Q{<%= description %>}
10
+ gem.email = "<%= user_email %>"
11
+ gem.homepage = "<%= project_homepage %>"
12
+ gem.authors = ["<%= user_name %>"]
13
+ <% if should_setup_rubyforge %>
14
+ gem.rubyforge_project = "<%= project_name %>"
15
+ <% end %>
16
+ <% development_dependencies.each do |dependency| %>
17
+ gem.add_development_dependency "<%= dependency %>"
18
+ <% end %>
19
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
20
+ end
21
+ <% if should_setup_gemcutter %>
22
+ Jeweler::GemcutterTasks.new
23
+ <% end %>
24
+ <% if should_setup_rubyforge %>
25
+ Jeweler::RubyforgeTasks.new do |rubyforge|
26
+ rubyforge.doc_task = "<%= doc_task %>"
27
+ end
28
+ <% end %>
29
+ rescue LoadError
30
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
31
+ end
32
+
33
+ <% case testing_framework %>
34
+ <% when :rspec %>
35
+ require 'spec/rake/spectask'
36
+ Spec::Rake::SpecTask.new(:<%= test_task %>) do |<%= test_task %>|
37
+ <%= test_task %>.libs << 'lib' << '<%= test_dir %>'
38
+ <%= test_task %>.spec_files = FileList['<%= test_pattern %>']
39
+ end
40
+ <% when :micronaut %>
41
+ require 'micronaut/rake_task'
42
+ Micronaut::RakeTask.new(<%= test_task %>) do |<%= test_task %>|
43
+ <%= test_task %>.pattern = '<%= test_pattern %>'
44
+ <%= test_task %>.ruby_opts << '-Ilib -I<%= test_dir %>'
45
+ end
46
+ <% else %>
47
+ require 'rake/testtask'
48
+ Rake::TestTask.new(:<%= test_task %>) do |<%= test_task %>|
49
+ <%= test_task %>.libs << 'lib' << '<%= test_dir %>'
50
+ <%= test_task %>.pattern = '<%= test_pattern %>'
51
+ <%= test_task %>.verbose = true
52
+ end
53
+ <% end %>
54
+
55
+ <% case testing_framework %>
56
+ <% when :rspec %>
57
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
58
+ spec.libs << 'lib' << 'spec'
59
+ spec.pattern = '<%= test_pattern %>'
60
+ spec.rcov = true
61
+ end
62
+ <% when :micronaut %>
63
+ Micronaut::RakeTask.new(:rcov) do |examples|
64
+ examples.pattern = '<%= test_pattern %>'
65
+ examples.rcov_opts = '-Ilib -I<%= test_dir %>'
66
+ examples.rcov = true
67
+ end
68
+ <% else %>
69
+ begin
70
+ require 'rcov/rcovtask'
71
+ Rcov::RcovTask.new do |<%= test_task %>|
72
+ <%= test_task %>.libs << '<%= test_dir %>'
73
+ <%= test_task %>.pattern = '<%= test_pattern %>'
74
+ <%= test_task %>.verbose = true
75
+ end
76
+ rescue LoadError
77
+ task :rcov do
78
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
79
+ end
80
+ end
81
+ <% end %>
82
+
83
+ task :<%= test_task %> => :check_dependencies
84
+
85
+ <% if should_use_cucumber %>
86
+ begin
87
+ require 'cucumber/rake/task'
88
+ Cucumber::Rake::Task.new(:features)
89
+
90
+ task :features => :check_dependencies
91
+ rescue LoadError
92
+ task :features do
93
+ abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
94
+ end
95
+ end
96
+ <% end %>
97
+
98
+ <% if should_use_reek %>
99
+ begin
100
+ require 'reek/rake_task'
101
+ Reek::RakeTask.new do |t|
102
+ t.fail_on_error = true
103
+ t.verbose = false
104
+ t.source_files = 'lib/**/*.rb'
105
+ end
106
+ rescue LoadError
107
+ task :reek do
108
+ abort "Reek is not available. In order to run reek, you must: sudo gem install reek"
109
+ end
110
+ end
111
+ <% end %>
112
+
113
+ <% if should_use_roodi %>
114
+ begin
115
+ require 'roodi'
116
+ require 'roodi_task'
117
+ RoodiTask.new do |t|
118
+ t.verbose = false
119
+ end
120
+ rescue LoadError
121
+ task :roodi do
122
+ abort "Roodi is not available. In order to run roodi, you must: sudo gem install roodi"
123
+ end
124
+ end
125
+ <% end %>
126
+
127
+ task :default => :<%= default_task %>
128
+
129
+ <% case documentation_framework %>
130
+ <% when :rdoc %>
131
+ require 'rake/rdoctask'
132
+ Rake::RDocTask.new do |rdoc|
133
+ if File.exist?('VERSION')
134
+ version = File.read('VERSION')
135
+ else
136
+ version = ""
137
+ end
138
+
139
+ rdoc.rdoc_dir = 'rdoc'
140
+ rdoc.title = "<%= project_name %> #{version}"
141
+ rdoc.rdoc_files.include('README*')
142
+ rdoc.rdoc_files.include('lib/**/*.rb')
143
+ end
144
+ <% when :yard %>
145
+ begin
146
+ require 'yard'
147
+ YARD::Rake::YardocTask.new
148
+ rescue LoadError
149
+ task :yardoc do
150
+ abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
151
+ end
152
+ end
153
+ <% end %>
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe "<%= constant_name %>" do
4
+ it "fails" do
5
+ should.flunk "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'bacon'
3
+
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+ require '<%= require_name %>'
7
+
8
+ Bacon.summary_on_exit
@@ -0,0 +1,9 @@
1
+ Feature: something something
2
+ In order to something something
3
+ A user something something
4
+ something something something
5
+
6
+ Scenario: something something
7
+ Given inspiration
8
+ When I create a sweet new gem
9
+ Then everyone should see how awesome I am
@@ -0,0 +1,8 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
2
+ require '<%= require_name %>'
3
+
4
+ require '<%= feature_support_require %>'
5
+ <% if feature_support_extend %>
6
+
7
+ World(<%= feature_support_extend %>)
8
+ <% end %>