auto_tagger 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -193,19 +193,23 @@ To ensure that this has worked, try this:
193
193
 
194
194
  If it asks you for a password, you've done something wrong.
195
195
 
196
- To run the specs, first make sure you have the required gems:
196
+ To run the specs, do the following:
197
197
 
198
198
  gem install bundler
199
199
  bundle install
200
-
201
- Then execute:
202
-
203
200
  rspec spec
204
-
205
- To run the cucumber features, execute:
206
-
207
201
  cucumber features
208
202
 
203
+ ## Releasing
204
+
205
+ * run rspec and cucumber and make sure that things are green
206
+ * update the changelog to say what you've done
207
+ * update the version
208
+ * commit your changes
209
+ * run `rake build`
210
+ * run `rake install` and then open the gem and make sure everything looks ok
211
+ * run `rake release`
212
+
209
213
  ## Acknowledgments
210
214
 
211
215
  Special thanks to:
@@ -25,7 +25,7 @@ module AutoTagger
25
25
 
26
26
  def last_ref_from_previous_stage
27
27
  return unless previous_stage
28
- ordered_refs_for_stage(previous_stage).last
28
+ refs_for_stage(previous_stage).last
29
29
  end
30
30
 
31
31
  def create_ref(commit = nil)
@@ -103,17 +103,9 @@ module AutoTagger
103
103
 
104
104
  def refs_for_stage(stage)
105
105
  raise StageCannotBeBlankError if stage.to_s.strip == ""
106
- ref_path = Regexp.escape(configuration.ref_path)
107
- matcher = /refs\/#{ref_path}\/#{Regexp.escape(stage)}\/.*/
108
- repo.refs.all.select do |ref|
109
- (ref.name =~ matcher) ? ref : nil
110
- end
111
- end
112
-
113
- def ordered_refs_for_stage(stage)
114
106
  ref_path = Regexp.escape(configuration.ref_path)
115
107
  matcher = /refs\/#{ref_path}\/#{Regexp.escape(stage)}\/(.*)/
116
- refs_for_stage(stage).sort do |ref1, ref2|
108
+ select_refs_for_stage(stage).sort do |ref1, ref2|
117
109
  name1 = ref1.name.match(matcher)[1].gsub(configuration.date_separator, "")
118
110
  name2 = ref2.name.match(matcher)[1].gsub(configuration.date_separator, "")
119
111
  name1.to_i <=> name2.to_i
@@ -121,6 +113,13 @@ module AutoTagger
121
113
  end
122
114
 
123
115
  private
116
+ def select_refs_for_stage(stage)
117
+ ref_path = Regexp.escape(configuration.ref_path)
118
+ matcher = /refs\/#{ref_path}\/#{Regexp.escape(stage)}\/.*/
119
+ repo.refs.all.select do |ref|
120
+ (ref.name =~ matcher) ? ref : nil
121
+ end
122
+ end
124
123
 
125
124
  def refs_to_remove
126
125
  self.class.items_to_remove(refs_for_stage(configuration.stage), configuration.refs_to_keep)
@@ -1,3 +1,3 @@
1
1
  module AutoTagger
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
@@ -257,6 +257,19 @@ describe AutoTagger::Base do
257
257
  AutoTagger::Git::Ref.new(base.repo, "abc123", "refs/tags/ci/2009")
258
258
  ]
259
259
  end
260
+
261
+ it "orders refs based on last part of tag" do
262
+ base = AutoTagger::Base.new :stage => "ci"
263
+ base.repo.stub(:exec) { true }
264
+ refs = [
265
+ AutoTagger::Git::Ref.new(base.repo, "abc123", "refs/tags/ci/1001"),
266
+ AutoTagger::Git::Ref.new(base.repo, "abc123", "refs/tags/ci/999"),
267
+ AutoTagger::Git::Ref.new(base.repo, "abc123", "refs/tags/ci/1002"),
268
+ AutoTagger::Git::Ref.new(base.repo, "abc123", "refs/heads/master")
269
+ ]
270
+ base.repo.stub(:refs) { mock("RefSet", :all => refs) }
271
+ base.refs_for_stage("ci").map(&:name).should == [ "refs/tags/ci/999", "refs/tags/ci/1001", "refs/tags/ci/1002" ]
272
+ end
260
273
  end
261
274
 
262
275
  describe "#list" do
metadata CHANGED
@@ -1,10 +1,15 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: auto_tagger
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.5
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 6
10
+ version: 0.2.6
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Jeff Dean
9
14
  - Brian Takita
10
15
  - Mike Grafton
@@ -20,28 +25,34 @@ authors:
20
25
  autorequire:
21
26
  bindir: bin
22
27
  cert_chain: []
23
- date: 2011-09-15 00:00:00.000000000 -06:00
24
- default_executable: autotag
25
- dependencies:
26
- - !ruby/object:Gem::Dependency
28
+
29
+ date: 2011-09-15 00:00:00 Z
30
+ dependencies:
31
+ - !ruby/object:Gem::Dependency
27
32
  name: capistrano
28
- requirement: &2153208460 !ruby/object:Gem::Requirement
33
+ prerelease: false
34
+ requirement: &id001 !ruby/object:Gem::Requirement
29
35
  none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ hash: 29
40
+ segments:
41
+ - 2
42
+ - 5
43
+ - 3
33
44
  version: 2.5.3
34
45
  type: :runtime
35
- prerelease: false
36
- version_requirements: *2153208460
46
+ version_requirements: *id001
37
47
  description:
38
48
  email: jeff@zilkey.com
39
- executables:
49
+ executables:
40
50
  - autotag
41
51
  extensions: []
42
- extra_rdoc_files:
52
+
53
+ extra_rdoc_files:
43
54
  - README.md
44
- files:
55
+ files:
45
56
  - bin/autotag
46
57
  - lib/auto_tagger/base.rb
47
58
  - lib/auto_tagger/capistrano_helper.rb
@@ -70,34 +81,40 @@ files:
70
81
  - spec/auto_tagger/options_spec.rb
71
82
  - spec/auto_tagger/recipes_spec.rb
72
83
  - spec/spec_helper.rb
73
- has_rdoc: true
74
84
  homepage: http://github.com/zilkey/auto_tagger
75
85
  licenses: []
86
+
76
87
  post_install_message:
77
- rdoc_options:
88
+ rdoc_options:
78
89
  - --charset=UTF-8
79
- require_paths:
90
+ require_paths:
80
91
  - lib
81
- required_ruby_version: !ruby/object:Gem::Requirement
92
+ required_ruby_version: !ruby/object:Gem::Requirement
82
93
  none: false
83
- requirements:
84
- - - ! '>='
85
- - !ruby/object:Gem::Version
86
- version: '0'
87
- required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ hash: 3
98
+ segments:
99
+ - 0
100
+ version: "0"
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
102
  none: false
89
- requirements:
90
- - - ! '>='
91
- - !ruby/object:Gem::Version
92
- version: '0'
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
93
110
  requirements: []
111
+
94
112
  rubyforge_project:
95
- rubygems_version: 1.6.2
113
+ rubygems_version: 1.8.6
96
114
  signing_key:
97
115
  specification_version: 3
98
- summary: Helps you automatically create tags for each stage in a multi-stage deploment
99
- and deploy from the latest tag from the previous environment
100
- test_files:
116
+ summary: Helps you automatically create tags for each stage in a multi-stage deploment and deploy from the latest tag from the previous environment
117
+ test_files:
101
118
  - spec/auto_tagger/base_spec.rb
102
119
  - spec/auto_tagger/capistrano_helper_spec.rb
103
120
  - spec/auto_tagger/command_line_spec.rb