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.
Files changed (164) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +2 -0
  3. data/.document +8 -0
  4. data/.semver +5 -0
  5. data/.travis.yml +7 -0
  6. data/.yardopts +2 -0
  7. data/ChangeLog.markdown +230 -0
  8. data/Gemfile +40 -0
  9. data/LICENSE.txt +20 -0
  10. data/README.markdown +252 -0
  11. data/Rakefile +78 -0
  12. data/bin/juwelier +9 -0
  13. data/features/generator/cucumber.feature +103 -0
  14. data/features/generator/directory_layout.feature +86 -0
  15. data/features/generator/dotdocument.feature +13 -0
  16. data/features/generator/env_options.feature +9 -0
  17. data/features/generator/gemfile.feature +81 -0
  18. data/features/generator/git.feature +102 -0
  19. data/features/generator/license.feature +20 -0
  20. data/features/generator/rakefile.feature +158 -0
  21. data/features/generator/readme.feature +12 -0
  22. data/features/generator/test.feature +54 -0
  23. data/features/generator/test_helper.feature +149 -0
  24. data/features/placeholder.feature +5 -0
  25. data/features/step_definitions/debug_steps.rb +6 -0
  26. data/features/step_definitions/filesystem_steps.rb +70 -0
  27. data/features/step_definitions/generator_steps.rb +387 -0
  28. data/features/step_definitions/task_steps.rb +6 -0
  29. data/features/support/env.rb +41 -0
  30. data/features/tasks/build_gem.feature +9 -0
  31. data/features/tasks/version.feature +31 -0
  32. data/features/tasks/version_bumping.feature +49 -0
  33. data/juwelier.gemspec +241 -0
  34. data/lib/juwelier.rb +178 -0
  35. data/lib/juwelier/commands.rb +20 -0
  36. data/lib/juwelier/commands/build_gem.rb +40 -0
  37. data/lib/juwelier/commands/check_dependencies.rb +66 -0
  38. data/lib/juwelier/commands/install_gem.rb +31 -0
  39. data/lib/juwelier/commands/release_gemspec.rb +87 -0
  40. data/lib/juwelier/commands/release_to_git.rb +64 -0
  41. data/lib/juwelier/commands/release_to_rubygems.rb +28 -0
  42. data/lib/juwelier/commands/validate_gemspec.rb +30 -0
  43. data/lib/juwelier/commands/version/base.rb +55 -0
  44. data/lib/juwelier/commands/version/bump_major.rb +13 -0
  45. data/lib/juwelier/commands/version/bump_minor.rb +12 -0
  46. data/lib/juwelier/commands/version/bump_patch.rb +14 -0
  47. data/lib/juwelier/commands/version/write.rb +12 -0
  48. data/lib/juwelier/commands/write_gemspec.rb +39 -0
  49. data/lib/juwelier/errors.rb +8 -0
  50. data/lib/juwelier/gemcutter_tasks.rb +8 -0
  51. data/lib/juwelier/gemspec_helper.rb +87 -0
  52. data/lib/juwelier/generator.rb +304 -0
  53. data/lib/juwelier/generator/application.rb +63 -0
  54. data/lib/juwelier/generator/bacon_mixin.rb +43 -0
  55. data/lib/juwelier/generator/github_mixin.rb +22 -0
  56. data/lib/juwelier/generator/micronaut_mixin.rb +41 -0
  57. data/lib/juwelier/generator/minitest_mixin.rb +42 -0
  58. data/lib/juwelier/generator/options.rb +172 -0
  59. data/lib/juwelier/generator/rdoc_mixin.rb +13 -0
  60. data/lib/juwelier/generator/riot_mixin.rb +42 -0
  61. data/lib/juwelier/generator/rspec_mixin.rb +42 -0
  62. data/lib/juwelier/generator/shindo_mixin.rb +44 -0
  63. data/lib/juwelier/generator/shoulda_mixin.rb +42 -0
  64. data/lib/juwelier/generator/testspec_mixin.rb +42 -0
  65. data/lib/juwelier/generator/testunit_mixin.rb +39 -0
  66. data/lib/juwelier/generator/yard_mixin.rb +15 -0
  67. data/lib/juwelier/rubyforge_tasks.rb +95 -0
  68. data/lib/juwelier/rubygems_dot_org_tasks.rb +38 -0
  69. data/lib/juwelier/rubygems_tasks.rb +38 -0
  70. data/lib/juwelier/specification.rb +110 -0
  71. data/lib/juwelier/tasks.rb +239 -0
  72. data/lib/juwelier/templates/.document +5 -0
  73. data/lib/juwelier/templates/.gitignore +49 -0
  74. data/lib/juwelier/templates/Gemfile +12 -0
  75. data/lib/juwelier/templates/LICENSE.txt +20 -0
  76. data/lib/juwelier/templates/README.rdoc +19 -0
  77. data/lib/juwelier/templates/Rakefile +9 -0
  78. data/lib/juwelier/templates/bacon/flunking.rb +7 -0
  79. data/lib/juwelier/templates/bacon/helper.rb +10 -0
  80. data/lib/juwelier/templates/bundler_setup.erb +10 -0
  81. data/lib/juwelier/templates/features/default.feature +9 -0
  82. data/lib/juwelier/templates/features/support/env.rb +11 -0
  83. data/lib/juwelier/templates/juwelier_tasks.erb +31 -0
  84. data/lib/juwelier/templates/micronaut/flunking.rb +7 -0
  85. data/lib/juwelier/templates/micronaut/helper.rb +19 -0
  86. data/lib/juwelier/templates/minitest/flunking.rb +7 -0
  87. data/lib/juwelier/templates/minitest/helper.rb +13 -0
  88. data/lib/juwelier/templates/other_tasks.erb +70 -0
  89. data/lib/juwelier/templates/riot/flunking.rb +11 -0
  90. data/lib/juwelier/templates/riot/helper.rb +5 -0
  91. data/lib/juwelier/templates/rspec/.rspec +1 -0
  92. data/lib/juwelier/templates/rspec/flunking.rb +7 -0
  93. data/lib/juwelier/templates/rspec/helper.rb +14 -0
  94. data/lib/juwelier/templates/shindo/flunking.rb +8 -0
  95. data/lib/juwelier/templates/shindo/helper.rb +7 -0
  96. data/lib/juwelier/templates/shoulda/flunking.rb +7 -0
  97. data/lib/juwelier/templates/shoulda/helper.rb +12 -0
  98. data/lib/juwelier/templates/simplecov.erb +16 -0
  99. data/lib/juwelier/templates/testspec/flunking.rb +7 -0
  100. data/lib/juwelier/templates/testspec/helper.rb +7 -0
  101. data/lib/juwelier/templates/testunit/flunking.rb +7 -0
  102. data/lib/juwelier/templates/testunit/helper.rb +11 -0
  103. data/lib/juwelier/version.rb +10 -0
  104. data/lib/juwelier/version_helper.rb +141 -0
  105. data/test/fixtures/bar/VERSION.yml +4 -0
  106. data/test/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
  107. data/test/fixtures/bar/hey_include_me_in_gemspec +0 -0
  108. data/test/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
  109. data/test/fixtures/existing-project-with-version-constant/.document +5 -0
  110. data/test/fixtures/existing-project-with-version-constant/.gitignore +5 -0
  111. data/test/fixtures/existing-project-with-version-constant/LICENSE.txt +20 -0
  112. data/test/fixtures/existing-project-with-version-constant/README.rdoc +7 -0
  113. data/test/fixtures/existing-project-with-version-constant/Rakefile +85 -0
  114. data/test/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec +29 -0
  115. data/test/fixtures/existing-project-with-version-constant/lib/existing_project_with_version.rb +0 -0
  116. data/test/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb +7 -0
  117. data/test/fixtures/existing-project-with-version-constant/test/test_helper.rb +10 -0
  118. data/test/fixtures/existing-project-with-version-plaintext/.document +5 -0
  119. data/test/fixtures/existing-project-with-version-plaintext/.gitignore +5 -0
  120. data/test/fixtures/existing-project-with-version-plaintext/LICENSE.txt +20 -0
  121. data/test/fixtures/existing-project-with-version-plaintext/README.rdoc +7 -0
  122. data/test/fixtures/existing-project-with-version-plaintext/Rakefile +84 -0
  123. data/test/fixtures/existing-project-with-version-plaintext/VERSION +1 -0
  124. data/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec +29 -0
  125. data/test/fixtures/existing-project-with-version-plaintext/lib/existing_project_with_version.rb +0 -0
  126. data/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb +7 -0
  127. data/test/fixtures/existing-project-with-version-plaintext/test/test_helper.rb +10 -0
  128. data/test/fixtures/existing-project-with-version-yaml/.document +5 -0
  129. data/test/fixtures/existing-project-with-version-yaml/.gitignore +5 -0
  130. data/test/fixtures/existing-project-with-version-yaml/LICENSE.txt +20 -0
  131. data/test/fixtures/existing-project-with-version-yaml/README.rdoc +7 -0
  132. data/test/fixtures/existing-project-with-version-yaml/Rakefile +84 -0
  133. data/test/fixtures/existing-project-with-version-yaml/VERSION.yml +4 -0
  134. data/test/fixtures/existing-project-with-version-yaml/bin/foo_the_ultimate_bin +0 -0
  135. data/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec +29 -0
  136. data/test/fixtures/existing-project-with-version-yaml/lib/existing_project_with_version.rb +0 -0
  137. data/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb +7 -0
  138. data/test/fixtures/existing-project-with-version-yaml/test/test_helper.rb +10 -0
  139. data/test/geminstaller.yml +12 -0
  140. data/test/juwelier/commands/test_build_gem.rb +112 -0
  141. data/test/juwelier/commands/test_install_gem.rb +35 -0
  142. data/test/juwelier/commands/test_release_to_gemcutter.rb +39 -0
  143. data/test/juwelier/commands/test_release_to_git.rb +271 -0
  144. data/test/juwelier/commands/test_release_to_github.rb +477 -0
  145. data/test/juwelier/commands/test_validate_gemspec.rb +27 -0
  146. data/test/juwelier/commands/test_write_gemspec.rb +103 -0
  147. data/test/juwelier/commands/version/test_base.rb +53 -0
  148. data/test/juwelier/commands/version/test_bump_major.rb +22 -0
  149. data/test/juwelier/commands/version/test_bump_minor.rb +19 -0
  150. data/test/juwelier/commands/version/test_bump_patch.rb +20 -0
  151. data/test/juwelier/commands/version/test_write.rb +22 -0
  152. data/test/juwelier/generator/test_application.rb +142 -0
  153. data/test/juwelier/generator/test_options.rb +227 -0
  154. data/test/juwelier/test_gemspec_helper.rb +44 -0
  155. data/test/juwelier/test_generator.rb +140 -0
  156. data/test/juwelier/test_generator_initialization.rb +150 -0
  157. data/test/juwelier/test_generator_mixins.rb +23 -0
  158. data/test/juwelier/test_specification.rb +245 -0
  159. data/test/juwelier/test_tasks.rb +50 -0
  160. data/test/juwelier/test_version_helper.rb +214 -0
  161. data/test/shoulda_macros/juwelier_macros.rb +35 -0
  162. data/test/test_helper.rb +174 -0
  163. data/test/test_juwelier.rb +177 -0
  164. metadata +396 -0
@@ -0,0 +1,7 @@
1
+ require 'example_helper'
2
+
3
+ describe "<%= constant_name %>" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ <%= render_template 'simplecov.erb' %>
2
+ require 'rubygems'
3
+ <%= render_template 'bundler_setup.erb' %>
4
+ require 'micronaut'
5
+
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
8
+
9
+ require '<%= require_name %>'
10
+
11
+ def not_in_editor?
12
+ !(ENV.has_key?('TM_MODE') || ENV.has_key?('EMACS') || ENV.has_key?('VIM'))
13
+ end
14
+
15
+ Micronaut.configure do |c|
16
+ c.color_enabled = not_in_editor?
17
+ c.filter_run :focused => true
18
+ end
19
+
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class Test<%= constant_name %> < MiniTest::Unit::TestCase
4
+ def test_something_for_real
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ <%= render_template 'simplecov.erb' %>
2
+ require 'rubygems'
3
+ <%= render_template 'bundler_setup.erb' %>
4
+ require 'minitest/unit'
5
+
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
8
+ require '<%= require_name %>'
9
+
10
+ class MiniTest::Unit::TestCase
11
+ end
12
+
13
+ MiniTest::Unit.autorun
@@ -0,0 +1,70 @@
1
+ <% case testing_framework %>
2
+ <% when :rspec %>
3
+ require 'rspec/core'
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:<%= test_task %>) do |<%= test_task %>|
6
+ <%= test_task %>.pattern = FileList['<%= test_pattern %>']
7
+ end
8
+ <% when :micronaut %>
9
+ require 'micronaut/rake_task'
10
+ Micronaut::RakeTask.new(:<%= test_task %>) do |<%= test_task %>|
11
+ <%= test_task %>.pattern = '<%= test_pattern %>'
12
+ <%= test_task %>.ruby_opts << '-Ilib -I<%= test_dir %>'
13
+ end
14
+ <% when :shindo %>
15
+ require 'shindo/rake'
16
+ Shindo::Rake.new
17
+ <% else %>
18
+ require 'rake/testtask'
19
+ Rake::TestTask.new(:<%= test_task %>) do |<%= test_task %>|
20
+ <%= test_task %>.libs << 'lib' << '<%= test_dir %>'
21
+ <%= test_task %>.pattern = '<%= test_pattern %>'
22
+ <%= test_task %>.verbose = true
23
+ end
24
+ <% end %>
25
+
26
+ desc "Code coverage detail"
27
+ task :simplecov do
28
+ ENV['COVERAGE'] = "true"
29
+ Rake::Task['<%= test_task %>'].execute
30
+ end
31
+
32
+ <% if should_use_cucumber %>
33
+ require 'cucumber/rake/task'
34
+ Cucumber::Rake::Task.new(:features)
35
+ <% end %>
36
+
37
+ <% if should_use_reek %>
38
+ require 'reek/rake/task'
39
+ Reek::Rake::Task.new do |t|
40
+ t.fail_on_error = true
41
+ t.verbose = false
42
+ t.source_files = 'lib/**/*.rb'
43
+ end
44
+ <% end %>
45
+
46
+ <% if should_use_roodi %>
47
+ require 'roodi'
48
+ require 'roodi_task'
49
+ RoodiTask.new do |t|
50
+ t.verbose = false
51
+ end
52
+ <% end %>
53
+
54
+ task :default => :<%= default_task %>
55
+
56
+ <% case documentation_framework %>
57
+ <% when :rdoc %>
58
+ require 'rdoc/task'
59
+ Rake::RDocTask.new do |rdoc|
60
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
61
+
62
+ rdoc.rdoc_dir = 'rdoc'
63
+ rdoc.title = "<%= project_name %> #{version}"
64
+ rdoc.rdoc_files.include('README*')
65
+ rdoc.rdoc_files.include('lib/**/*.rb')
66
+ end
67
+ <% when :yard %>
68
+ require 'yard'
69
+ YARD::Rake::YardocTask.new
70
+ <% end %>
@@ -0,0 +1,11 @@
1
+ require 'teststrap'
2
+
3
+ context "<%= require_name %>" do
4
+ setup do
5
+ false
6
+ end
7
+
8
+ asserts "i'm a failure :(" do
9
+ topic
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ <%= render_template 'simplecov.erb' %>
2
+ require 'rubygems'
3
+ <%= render_template 'bundler_setup.erb' %>
4
+ require 'riot'
5
+ require '<%= require_name %>'
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "<%= constant_name %>" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ <%= render_template 'simplecov.erb' %>
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+
5
+ require 'rspec'
6
+ require '<%= require_name %>'
7
+
8
+ # Requires supporting files with custom matchers and macros, etc,
9
+ # in ./support/ and its subdirectories.
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
11
+
12
+ RSpec.configure do |config|
13
+
14
+ end
@@ -0,0 +1,8 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/tests_helper')
2
+
3
+ Shindo.tests("<%= constant_name %>") do
4
+ test("fails") do
5
+ "hey buddy, you should probably rename this file and start specing for real"
6
+ false
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ <%= render_template 'simplecov.erb' %>
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+ require '<%= require_name %>'
5
+ require 'rubygems'
6
+ <%= render_template 'bundler_setup.erb' %>
7
+ require 'shindo'
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class Test<%= constant_name %> < Test::Unit::TestCase
4
+ should "probably rename this file and start testing for real" do
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ <%= render_template 'simplecov.erb' %>
2
+ require 'rubygems'
3
+ <%= render_template 'bundler_setup.erb' %>
4
+ require 'test/unit'
5
+ require 'shoulda'
6
+
7
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
8
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
9
+ require '<%= require_name %>'
10
+
11
+ class Test::Unit::TestCase
12
+ end
@@ -0,0 +1,16 @@
1
+ require 'simplecov'
2
+
3
+ module SimpleCov::Configuration
4
+ def clean_filters
5
+ @filters = []
6
+ end
7
+ end
8
+
9
+ SimpleCov.configure do
10
+ clean_filters
11
+ load_adapter 'test_frameworks'
12
+ end
13
+
14
+ ENV["COVERAGE"] && SimpleCov.start do
15
+ add_filter "/.rvm/"
16
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ describe "<%= constant_name %>" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ <%= render_template 'simplecov.erb' %>
2
+ require 'rubygems'
3
+ require 'test/spec'
4
+
5
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
6
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require '<%= require_name %>'
@@ -0,0 +1,7 @@
1
+ require 'helper'
2
+
3
+ class Test<%= constant_name %> < Test::Unit::TestCase
4
+ def test_something_for_real
5
+ flunk "hey buddy, you should probably rename this file and start testing for real"
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ <%= render_template 'simplecov.erb' %>
2
+ require 'rubygems'
3
+ <%= render_template 'bundler_setup.erb' %>
4
+ require 'test/unit'
5
+
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
8
+ require '<%= require_name %>'
9
+
10
+ class Test::Unit::TestCase
11
+ end
@@ -0,0 +1,10 @@
1
+ class Juwelier
2
+ module Version
3
+ MAJOR = 2
4
+ MINOR = 1
5
+ PATCH = 0
6
+ BUILD = nil
7
+
8
+ STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
9
+ end
10
+ end
@@ -0,0 +1,141 @@
1
+ begin
2
+ require 'psych'
3
+ rescue ::LoadError
4
+ end
5
+
6
+ require 'yaml'
7
+
8
+ class Juwelier
9
+ class VersionHelper
10
+ attr_accessor :base_dir
11
+ attr_reader :major, :minor, :patch, :build
12
+
13
+ module YamlExtension
14
+ def write
15
+ File.open(yaml_path, 'w+') do |f|
16
+ YAML.dump(self.to_hash, f)
17
+ end
18
+ end
19
+
20
+ def to_hash
21
+ {
22
+ :major => major,
23
+ :minor => minor,
24
+ :patch => patch,
25
+ :build => build
26
+ }
27
+ end
28
+
29
+ def refresh
30
+ parse_yaml
31
+ end
32
+
33
+ def parse_yaml
34
+ yaml = read_yaml
35
+ @major = (yaml['major'] || yaml[:major]).to_i
36
+ @minor = (yaml['minor'] || yaml[:minor]).to_i
37
+ @patch = (yaml['patch'] || yaml[:patch]).to_i
38
+ @build = (yaml['build'] || yaml[:build])
39
+ end
40
+
41
+ def read_yaml
42
+ if File.exists?(yaml_path)
43
+ YAML.load_file(yaml_path)
44
+ else
45
+ raise VersionYmlError, "#{yaml_path} does not exist!"
46
+ end
47
+ end
48
+
49
+ def path
50
+ yaml_path
51
+ end
52
+ end
53
+
54
+ module PlaintextExtension
55
+ def write
56
+ File.open(plaintext_path, 'w') do |file|
57
+ file.write to_s
58
+ end
59
+ end
60
+
61
+ def parse_plaintext
62
+ plaintext = read_plaintext.chomp
63
+ # http://rubular.com/regexes/10467 -> 3.5.4.a1
64
+ # http://rubular.com/regexes/10468 -> 3.5.4
65
+ if plaintext =~ /^(\d+)\.(\d+)\.(\d+)(?:\.(.*?))?$/
66
+ @major = $1.to_i
67
+ @minor = $2.to_i
68
+ @patch = $3.to_i
69
+ @build = $4
70
+ end
71
+ end
72
+
73
+ def read_plaintext
74
+ File.read(plaintext_path)
75
+ end
76
+
77
+ def refresh
78
+ parse_plaintext
79
+ end
80
+
81
+ def path
82
+ plaintext_path
83
+ end
84
+ end
85
+
86
+ def initialize(base_dir)
87
+ self.base_dir = base_dir
88
+
89
+ if File.exists?(yaml_path)
90
+ extend YamlExtension
91
+ parse_yaml
92
+ else
93
+ extend PlaintextExtension
94
+ if File.exists?(plaintext_path)
95
+ parse_plaintext
96
+ end
97
+ end
98
+ end
99
+
100
+ def bump_major
101
+ @major += 1
102
+ @minor = 0
103
+ @patch = 0
104
+ @build = nil
105
+ end
106
+
107
+ def bump_minor
108
+ @minor += 1
109
+ @patch = 0
110
+ @build = nil
111
+ end
112
+
113
+ def bump_patch
114
+ @patch += 1
115
+ @build = nil
116
+ end
117
+
118
+ def update_to(major, minor, patch, build=nil)
119
+ @major = major
120
+ @minor = minor
121
+ @patch = patch
122
+ @build = build
123
+ end
124
+
125
+ def to_s
126
+ [major, minor, patch, build].compact.join('.')
127
+ end
128
+
129
+ def yaml_path
130
+ denormalized_path = File.join(@base_dir, 'VERSION.yml')
131
+ absolute_path = File.expand_path(denormalized_path)
132
+ absolute_path.gsub(Dir.getwd + File::SEPARATOR, '')
133
+ end
134
+
135
+ def plaintext_path
136
+ denormalized_path = File.join(@base_dir, 'VERSION')
137
+ absolute_path = File.expand_path(denormalized_path)
138
+ absolute_path.gsub(Dir.getwd + File::SEPARATOR, '')
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,4 @@
1
+ ---
2
+ major: 1
3
+ minor: 5
4
+ patch: 2
@@ -0,0 +1 @@
1
+ # You betcha!
@@ -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