buildar 1.0.1.1 → 1.0.2.1

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 (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/buildar.rb +34 -3
  3. data/lib/buildar/tasks.rb +19 -35
  4. metadata +1 -1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1.1
1
+ 1.0.2.1
data/lib/buildar.rb CHANGED
@@ -53,13 +53,14 @@ class Buildar
53
53
  end
54
54
 
55
55
  attr_accessor :root, :name, :version_filename, :manifest_filename,
56
- :use_git, :publish, :use_manifest_file
56
+ :use_git, :publish, :use_manifest_file, :use_version_file
57
57
 
58
58
  def initialize(root = nil, name = nil)
59
59
  @root = root ? File.expand_path(root) : Dir.pwd
60
60
  @name = name || File.split(@root).last
61
+ @use_version_file = false
61
62
  @version_filename = 'VERSION'
62
- @use_manifest_file = true
63
+ @use_manifest_file = false
63
64
  @manifest_filename = 'MANIFEST.txt'
64
65
  @use_git = true
65
66
  @publish = { rubygems: true }
@@ -86,10 +87,40 @@ class Buildar
86
87
  # Make sure things tracked elsewhere stay updated
87
88
  @gemspec.name = @name
88
89
  @gemspec.files = self.manifest if @use_manifest_file
89
- @gemspec.version = self.version
90
+ @gemspec.version = self.version if @use_version_file
90
91
  @gemspec
91
92
  end
92
93
 
94
+ def gemfile
95
+ path = File.join(@root, 'pkg', "#{@name}-#{self.available_version}.gem")
96
+ raise "gemfile #{path} does not exist" unless File.exists?(path)
97
+ path
98
+ end
99
+
100
+ def available_version
101
+ if @use_version_file
102
+ self.version
103
+ elsif !@gemspec.version
104
+ raise "gemspec.version is false or nil"
105
+ elsif @gemspec.version.to_s.empty?
106
+ raise "gemspec.version is empty"
107
+ else
108
+ @gemspec.version
109
+ end
110
+ end
111
+
112
+ def available_manifest
113
+ if @use_manifest_file
114
+ self.manifest
115
+ elsif !@gemspec.files
116
+ raise "gemspec.files is false or nil"
117
+ elsif @gemspec.files.empty?
118
+ raise "gemspec.files is empty"
119
+ else
120
+ @gemspec.files
121
+ end
122
+ end
123
+
93
124
  def version_file
94
125
  File.join(@root, @version_filename)
95
126
  end
data/lib/buildar/tasks.rb CHANGED
@@ -36,18 +36,25 @@ task :build => [:test, :bump_build] do
36
36
  Rake::Task["package"].invoke
37
37
  end
38
38
 
39
+ task :install => [:build] do
40
+ sh "gem uninstall #{proj.name}"
41
+ sh "gem install #{proj.gemfile}"
42
+ end
43
+
39
44
  # tasks :bump_major, :bump_minor, :bump_patch, :bump_build
40
45
  # commit the version file if proj.use_git
41
46
  #
42
47
  [:major, :minor, :patch, :build].each { |v|
43
48
  task "bump_#{v}" do
44
- old_version = proj.version
45
- new_version = Buildar.bump(v, old_version)
46
- puts "bumping #{old_version} to #{new_version}"
47
- proj.write_version new_version
48
- if proj.use_git
49
- msg = "rake bump_#{v} to #{new_version}"
50
- sh "git commit #{proj.version_file} -m '#{msg}'"
49
+ if proj.use_version_file
50
+ old_version = proj.version
51
+ new_version = Buildar.bump(v, old_version)
52
+ puts "bumping #{old_version} to #{new_version}"
53
+ proj.write_version new_version
54
+ if proj.use_git
55
+ msg = "rake bump_#{v} to #{new_version}"
56
+ sh "git commit #{proj.version_file} -m '#{msg}'"
57
+ end
51
58
  end
52
59
  end
53
60
  }
@@ -58,7 +65,7 @@ end
58
65
  #
59
66
  task :tag => [:test] do
60
67
  if proj.use_git
61
- tagname = "v#{proj.version}"
68
+ tagname = "v#{proj.available_version}"
62
69
  message = ENV['message'] || "auto-tagged #{tagname} by Rake"
63
70
  sh "git tag -a '#{tagname}' -m '#{message}'"
64
71
  sh "git push origin --tags"
@@ -69,22 +76,7 @@ end
69
76
  # roughly, gem push foo-VERSION.gem
70
77
  #
71
78
  task :publish => [:verify_publish_credentials] do
72
- if proj.publish[:rubygems]
73
- fragment = "-#{proj.version}.gem"
74
- pkg_dir = File.join(proj.root, 'pkg')
75
- Dir.chdir(pkg_dir) {
76
- candidates = Dir.glob "*#{fragment}"
77
- # sanity check
78
- case candidates.length
79
- when 0
80
- raise "could not find .gem matching #{fragment}"
81
- when 1
82
- sh "gem push #{candidates.first}"
83
- else
84
- raise "multiple candidates found matching #{fragment}"
85
- end
86
- }
87
- end
79
+ sh "gem push #{proj.gemfile}" if proj.publish[:rubygems]
88
80
  end
89
81
 
90
82
  # if proj.publish[:rubygems]
@@ -102,21 +94,13 @@ end
102
94
  # display project name and version
103
95
  #
104
96
  task :version do
105
- puts "#{proj.name} #{proj.version}"
97
+ puts "#{proj.name} #{proj.available_version}"
106
98
  end
107
99
 
108
- # display Buildar's understanding of the files inside the gem
100
+ # display files tracked by the gem
109
101
  #
110
102
  task :manifest do
111
- if proj.use_manifest_file
112
- puts proj.manifest.join("\n")
113
- elsif !proj.gemspec.files
114
- puts "warning: gemspec.files is false or nil"
115
- elsif proj.gemspec.files.empty?
116
- puts "warning: gemspec.files is empty"
117
- else
118
- puts proj.gemspec.files.join("\n")
119
- end
103
+ puts proj.available_manifest.join("\n")
120
104
  end
121
105
 
122
106
  # if the user wants a bump, make it a patch
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buildar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.1
4
+ version: 1.0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: