buildar 1.0.1.1 → 1.0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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: