capistrano-tags 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,22 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+ gem "capistrano", "~> 2.5.0"
6
+
7
+ # Add dependencies to develop your gem here.
8
+ # Include everything needed to run rake, tests, features, etc.
9
+ group :development do
10
+ gem "rspec"
11
+ gem "bundler", "~> 1.0.0"
12
+ gem "jeweler", "~> 1.6.0"
13
+ gem "rcov", ">= 0"
14
+ gem "mocha"
15
+ gem 'autotest-standalone'
16
+ gem 'autotest-rails-pure'
17
+ gem 'zentest-without-autotest'
18
+ if RUBY_PLATFORM.downcase.include?("darwin") # I'm on Mac
19
+ gem 'autotest-fsevent'
20
+ gem 'autotest-growl'
21
+ end
22
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Fabio Napoleoni
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,94 @@
1
+ # capistrano-tags
2
+
3
+ Capistrano recipe for deploying svn or git tags with no need to edit the deploy file
4
+
5
+ ## Installation
6
+
7
+ gem install capistrano-tags
8
+
9
+ ## Usage
10
+
11
+ In your deploy file require the capistrano-tags file after setting your variables with
12
+
13
+ require 'capistrano-tags'
14
+
15
+ ### Subversion usage
16
+
17
+ You MUST set the `repository_root` variable in your config file, then you can use one of the
18
+ following strategies to change the deployed tag when invoking `cap` command (assuming you have set
19
+ `:repository_root` to `http://svn.example.org`)
20
+
21
+ 1. Set the ENV variable `SVN_TAG` when invoking capistrano
22
+
23
+ $ SVN_TAG=1.0 cap:deploy # this will deploy http://svn.example.org/tags/1.0
24
+
25
+ 2. Set the `:branch` variable to something i.e.
26
+
27
+ set :branch, '1.0.2' # this will deploy http://svn.example.org/tags/1.0.2
28
+ set :branch, 'branches/stable' # this will deploy http://svn.example.org/branches/stable
29
+
30
+ 3. Set the ENV variable `ASK_FOR_TAG` to anything, by doing this you'll be prompted for tag to deploy
31
+
32
+ $ ASK_FOR_TAG=1 cap deploy
33
+ Tag to deploy (leave it blank to deploy from trunk or use branches/xxx to deploy that branch): 1.0.3
34
+ # this will deploy http://svn.example.org/tags/1.0.3
35
+ $ ASK_FOR_TAG=1 cap deploy
36
+ Tag to deploy (leave it blank to deploy from trunk or use branches/xxx to deploy that branch): branches/stable
37
+ # this will deploy http://svn.example.org/branches/stable
38
+ $ ASK_FOR_TAG=1 cap deploy
39
+ Tag to deploy (leave it blank to deploy from trunk or use branches/xxx to deploy that branch):
40
+ # this will deploy http://svn.example.org/trunk
41
+
42
+ 4. Set the `:ask_for_tag` variable to true in your config, you'll be prompted for the tag as above
43
+
44
+ As you may have seen, when you set the `:branch` variable in any of the given way, if its value is empty,
45
+ it will be defaulted to `trunk`, so keep in mind that. Moreover if the `:branch` variable content starts with
46
+ `branches/` then a branch (instead of a tag) will be deployed. There's no need to prepend the variable with `tags`
47
+ if you just want to deploy a tag.
48
+
49
+ ### Git usage
50
+
51
+ In this case there's no need to set the `:repository_root` variable, because git supports the `:branch`
52
+ variable. So you can deploy a branch or a tag by setting the `:repository` variable and then you can do
53
+ one of the following
54
+
55
+ 1. Set the ENV variable `GIT_TAG` when invoking capistrano
56
+
57
+ $ GIT_TAG=1.0 cap:deploy # this will deploy refs/tags/1.0
58
+
59
+ 2. Set the `:branch` variable to something i.e.
60
+
61
+ set :branch, '1.0.2' # this will deploy refs/tags/1.0.2
62
+ set :branch, 'stable' # this will deploy refs/heads/stable
63
+
64
+ 3. Set the ENV variable `ASK_FOR_TAG` to anything, by doing this you'll be prompted for tag to deploy
65
+
66
+ $ ASK_FOR_TAG=1 cap deploy
67
+ Enter tag (or branch) to deploy: 1.0.3
68
+ # this will deploy refs/tags/1.0.3
69
+ $ ASK_FOR_TAG=1 cap deploy
70
+ Enter tag (or branch) to deploy: stable
71
+ # this will deploy refs/heads/stable
72
+ $ ASK_FOR_TAG=1 cap deploy
73
+ Enter tag (or branch) to deploy:
74
+ # this will deploy refs/heads/master
75
+
76
+ 4. Set the `:ask_for_tag` variable to true in your config, you'll be prompted for the tag as above
77
+
78
+ In this case if the `:branch` variable is empty then the `master` branch will be deployed.
79
+
80
+ ## Contributing to capistrano-tags
81
+
82
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
83
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
84
+ * Fork the project
85
+ * Start a feature/bugfix branch
86
+ * Commit and push until you are happy with your contribution
87
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
88
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
89
+
90
+ ## Copyright
91
+
92
+ Copyright (c) 2011 Fabio Napoleoni. See LICENSE.txt for
93
+ further details.
94
+
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "capistrano-tags"
18
+ gem.homepage = "http://github.com/fabn/capistrano-tags"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Capistrano recipe to deploy svn and git tags}
21
+ gem.description = %Q{Use this recipe if you want to be able to deploy scm tags (or branches) with no need to edit your main deploy.rb file. You can choose the deployed tag using ENV variables or interactively decide which is the tag to deploy. }
22
+ gem.email = "f.napoleoni@gmail.com"
23
+ gem.authors = ["Fabio Napoleoni"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rspec/core'
29
+ require 'rspec/core/rake_task'
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ spec.pattern = FileList['spec/**/*_spec.rb']
32
+ end
33
+
34
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
35
+ spec.pattern = 'spec/**/*_spec.rb'
36
+ spec.rcov = true
37
+ spec.rcov_opts = '--exclude /gems/,/Library/,/usr/,lib/tasks,.bundle,config,/lib/rspec/,/lib/rspec-'
38
+ end
39
+
40
+ task :default => :spec
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,51 @@
1
+ unless Capistrano::Configuration.respond_to?(:instance)
2
+ abort "capistrano-tags requires Capistrano 2"
3
+ end
4
+
5
+ Capistrano::Configuration.instance.load do
6
+
7
+ def _cset(name, *args, &block)
8
+ unless exists?(name)
9
+ set(name, *args, &block)
10
+ end
11
+ end
12
+
13
+ # if you include this file in your deploy.rb, you can use one of the following strategies
14
+ # to change your deploy tag without editing the deploy.rb file
15
+ # Git behavior
16
+ if fetch(:scm) == :git
17
+ # * set the :branch variable in your deploy.rb (normal workflow)
18
+ # * set the GIT_TAG environment variable (it will override the branch variable)
19
+ set(:branch, ENV['GIT_TAG']) if ENV['GIT_TAG'] and !ENV['GIT_TAG'].empty?
20
+ if ENV['ASK_FOR_TAG'] or fetch(:ask_for_tag, false)
21
+ # * set the :ask_for_tag or the ASK_FOR_TAG environment variable to true to be prompted for a tag
22
+ set(:branch) do
23
+ tag = Capistrano::CLI.ui.ask "Enter tag (or branch) to deploy:"
24
+ tag.empty? ? 'HEAD' : tag
25
+ end
26
+ end
27
+ end
28
+ # Subversion behavior
29
+ if fetch(:scm) == :subversion
30
+ # * set the :branch variable in your deploy.rb (normal workflow)
31
+ # * set the SVN_TAG environment variable (it will override the branch variable)
32
+ set(:branch, ENV['SVN_TAG']) if ENV['SVN_TAG']
33
+ # * set the :ask_for_tag variable to true to be prompted for a tag
34
+ # * set the ASK_FOR_TAG environment variable to be prompted for a tag
35
+ if ENV['ASK_FOR_TAG'] or fetch(:ask_for_tag, false)
36
+ set(:branch) { Capistrano::CLI.ui.ask "Tag to deploy (leave it blank to deploy from trunk or use branches/xxx to deploy that branch): " }
37
+ end
38
+ # ensure repository root is set if using the recipe
39
+ _cset(:repository_root) { abort "You must set your :repository_root to use this recipe" }
40
+ # build the repository url
41
+ set(:repository) do
42
+ branch = fetch(:branch, '')
43
+ branch = 'trunk' if branch.empty?
44
+ branch = "tags/#{branch}" unless branch == 'trunk' or branch.start_with? 'branches/'
45
+ File.join(fetch(:repository_root), branch)
46
+ end
47
+ end
48
+
49
+ # task for querying svn tags
50
+ # task for querying svn branches
51
+ end
@@ -0,0 +1,169 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ require 'capistrano/configuration'
4
+ require 'capistrano/cli'
5
+
6
+ describe "CapistranoTags" do
7
+
8
+ def load_gem_code
9
+ load File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'capistrano-tags.rb'))
10
+ end
11
+
12
+ def stub_cli_response answer
13
+ Capistrano::CLI.ui.stubs(:ask).returns(answer)
14
+ end
15
+
16
+ before(:each) do
17
+ @config = Capistrano::Configuration.new
18
+ Capistrano::Configuration.stubs(:instance).returns(@config)
19
+ end
20
+
21
+ after(:each) do
22
+ # reset ENV variable used for test
23
+ ENV['SVN_TAG'] = nil
24
+ ENV['ASK_FOR_TAG'] = nil
25
+ end
26
+
27
+ describe "capistrano instance validation" do
28
+
29
+ it "should validate presence of :repository_root variable" do
30
+ Capistrano::Configuration.stubs(:respond_to?).returns(false)
31
+ STDERR.stubs(:write) # avoid errors output for the labmda
32
+ lambda { load_gem_code }.should raise_error SystemExit, "capistrano-tags requires Capistrano 2"
33
+ end
34
+ end
35
+
36
+ describe "svn behavior" do
37
+
38
+ describe "variables validation" do
39
+
40
+ it "should validate presence of :repository_root variable" do
41
+ @config.unset(:repository_root)
42
+ load_gem_code
43
+ STDERR.stubs(:write) # avoid errors output for the labmda
44
+ lambda { @config.fetch(:repository, false)}.should raise_error SystemExit, "You must set your :repository_root to use this recipe"
45
+ end
46
+ end
47
+
48
+ before(:each) do
49
+ @root = 'http://svn.example.org'
50
+ @config.set(:scm, :subversion)
51
+ @config.set(:repository_root, 'http://svn.example.org')
52
+ end
53
+
54
+ it "should deploy trunk with no configuration" do
55
+ load_gem_code
56
+ @config.fetch(:repository).should == File.join(@root, 'trunk')
57
+ end
58
+
59
+ it "should deploy the given tag when :branch is set" do
60
+ @config.set(:branch, '1.0')
61
+ load_gem_code
62
+ @config.fetch(:repository).should == File.join(@root, 'tags', '1.0')
63
+ end
64
+
65
+ it "should deploy the given branch when :branch starts with branches/" do
66
+ @config.set(:branch, 'branches/stable')
67
+ load_gem_code
68
+ @config.fetch(:repository).should == File.join(@root, 'branches', 'stable')
69
+ end
70
+
71
+ it "should deploy the given tag when ENV['SVN_TAG'] is set" do
72
+ ENV['SVN_TAG'] = '1.0'
73
+ load_gem_code
74
+ @config.fetch(:repository).should == File.join(@root, 'tags', '1.0')
75
+ end
76
+
77
+ it "should deploy the given branch when ENV['SVN_TAG'] starts with 'branches/'" do
78
+ ENV['SVN_TAG'] = 'branches/stable'
79
+ load_gem_code
80
+ @config.fetch(:repository).should == File.join(@root, 'branches', 'stable')
81
+ end
82
+
83
+ it "should ask for tag when ENV['ASK_FOR_TAG'] is set" do
84
+ ENV['ASK_FOR_TAG'] = '1'
85
+ stub_cli_response '1.0.2'
86
+ load_gem_code
87
+ @config.fetch(:repository).should == File.join(@root, 'tags', '1.0.2')
88
+ end
89
+
90
+ it "should deploy the given branch location when answer starts with 'branches/'" do
91
+ ENV['ASK_FOR_TAG'] = '1'
92
+ stub_cli_response 'branches/stable'
93
+ load_gem_code
94
+ @config.fetch(:repository).should == File.join(@root, 'branches', 'stable')
95
+ end
96
+
97
+ it "should deploy trunk location when cli answer is empty" do
98
+ ENV['ASK_FOR_TAG'] = '1'
99
+ stub_cli_response ''
100
+ load_gem_code
101
+ @config.fetch(:repository).should == File.join(@root, 'trunk')
102
+ end
103
+
104
+ it "should ask for tag when ask_for_tag is set to true" do
105
+ @config.set(:ask_for_tag, true)
106
+ stub_cli_response '1.0.2'
107
+ load_gem_code
108
+ @config.fetch(:repository).should == File.join(@root, 'tags', '1.0.2')
109
+ end
110
+ end
111
+
112
+ describe "git behavior" do
113
+
114
+ require 'capistrano/recipes/deploy/scm/git'
115
+ class TestSCM < Capistrano::Deploy::SCM::Git
116
+ default_command "git"
117
+ end
118
+
119
+ before(:each) do
120
+ @config.set(:scm, :git)
121
+ @config.set(:repository, 'git://github.com/fabn/capistrano-tags.git')
122
+ @source = TestSCM.new(@config)
123
+ end
124
+
125
+ it "should deploy HEAD branch with no configuration" do
126
+ load_gem_code
127
+ TestSCM.new(@config).head.should == 'HEAD'
128
+ end
129
+
130
+ it "should deploy the given tag (or branch) when :branch is set" do
131
+ @config.set(:branch, '1.0')
132
+ load_gem_code
133
+ TestSCM.new(@config).head.should == '1.0'
134
+ end
135
+
136
+ it "should deploy the given tag (or branch) when ENV['GIT_TAG'] is set" do
137
+ ENV['GIT_TAG'] = '1.0'
138
+ load_gem_code
139
+ TestSCM.new(@config).head.should == '1.0'
140
+ end
141
+
142
+ it "should deploy HEAD when ENV['GIT_TAG'] is empty" do
143
+ ENV['GIT_TAG'] = ''
144
+ load_gem_code
145
+ TestSCM.new(@config).head.should == 'HEAD'
146
+ end
147
+
148
+ it "should ask for tag (or branch) when ENV['ASK_FOR_TAG'] is set" do
149
+ ENV['ASK_FOR_TAG'] = '1'
150
+ stub_cli_response '1.0.2'
151
+ load_gem_code
152
+ TestSCM.new(@config).head.should == '1.0.2'
153
+ end
154
+
155
+ it "should deploy HEAD when cli answer is empty" do
156
+ ENV['ASK_FOR_TAG'] = '1'
157
+ stub_cli_response ''
158
+ load_gem_code
159
+ TestSCM.new(@config).head.should == 'HEAD'
160
+ end
161
+
162
+ it "should ask for tag when ask_for_tag is set to true" do
163
+ @config.set(:ask_for_tag, true)
164
+ stub_cli_response '1.0.2'
165
+ load_gem_code
166
+ TestSCM.new(@config).head.should == '1.0.2'
167
+ end
168
+ end
169
+ end
@@ -0,0 +1,11 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+
5
+ # Requires supporting files with custom matchers and macros, etc,
6
+ # in ./support/ and its subdirectories.
7
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
8
+
9
+ RSpec.configure do |config|
10
+ config.mock_with :mocha
11
+ end
metadata ADDED
@@ -0,0 +1,236 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capistrano-tags
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Fabio Napoleoni
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-04 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ type: :runtime
23
+ prerelease: false
24
+ name: capistrano
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ hash: 27
31
+ segments:
32
+ - 2
33
+ - 5
34
+ - 0
35
+ version: 2.5.0
36
+ requirement: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ type: :development
39
+ prerelease: false
40
+ name: rspec
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ hash: 3
47
+ segments:
48
+ - 0
49
+ version: "0"
50
+ requirement: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ type: :development
53
+ prerelease: false
54
+ name: bundler
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ hash: 23
61
+ segments:
62
+ - 1
63
+ - 0
64
+ - 0
65
+ version: 1.0.0
66
+ requirement: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ type: :development
69
+ prerelease: false
70
+ name: jeweler
71
+ version_requirements: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ hash: 15
77
+ segments:
78
+ - 1
79
+ - 6
80
+ - 0
81
+ version: 1.6.0
82
+ requirement: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ type: :development
85
+ prerelease: false
86
+ name: rcov
87
+ version_requirements: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ hash: 3
93
+ segments:
94
+ - 0
95
+ version: "0"
96
+ requirement: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ type: :development
99
+ prerelease: false
100
+ name: mocha
101
+ version_requirements: &id006 !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
110
+ requirement: *id006
111
+ - !ruby/object:Gem::Dependency
112
+ type: :development
113
+ prerelease: false
114
+ name: autotest-standalone
115
+ version_requirements: &id007 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ hash: 3
121
+ segments:
122
+ - 0
123
+ version: "0"
124
+ requirement: *id007
125
+ - !ruby/object:Gem::Dependency
126
+ type: :development
127
+ prerelease: false
128
+ name: autotest-rails-pure
129
+ version_requirements: &id008 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ hash: 3
135
+ segments:
136
+ - 0
137
+ version: "0"
138
+ requirement: *id008
139
+ - !ruby/object:Gem::Dependency
140
+ type: :development
141
+ prerelease: false
142
+ name: zentest-without-autotest
143
+ version_requirements: &id009 !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ hash: 3
149
+ segments:
150
+ - 0
151
+ version: "0"
152
+ requirement: *id009
153
+ - !ruby/object:Gem::Dependency
154
+ type: :development
155
+ prerelease: false
156
+ name: autotest-fsevent
157
+ version_requirements: &id010 !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ hash: 3
163
+ segments:
164
+ - 0
165
+ version: "0"
166
+ requirement: *id010
167
+ - !ruby/object:Gem::Dependency
168
+ type: :development
169
+ prerelease: false
170
+ name: autotest-growl
171
+ version_requirements: &id011 !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ hash: 3
177
+ segments:
178
+ - 0
179
+ version: "0"
180
+ requirement: *id011
181
+ description: "Use this recipe if you want to be able to deploy scm tags (or branches) with no need to edit your main deploy.rb file. You can choose the deployed tag using ENV variables or interactively decide which is the tag to deploy. "
182
+ email: f.napoleoni@gmail.com
183
+ executables: []
184
+
185
+ extensions: []
186
+
187
+ extra_rdoc_files:
188
+ - LICENSE.txt
189
+ - README.markdown
190
+ files:
191
+ - .document
192
+ - .rspec
193
+ - Gemfile
194
+ - LICENSE.txt
195
+ - README.markdown
196
+ - Rakefile
197
+ - VERSION
198
+ - lib/capistrano-tags.rb
199
+ - spec/capistrano-tags_spec.rb
200
+ - spec/spec_helper.rb
201
+ has_rdoc: true
202
+ homepage: http://github.com/fabn/capistrano-tags
203
+ licenses:
204
+ - MIT
205
+ post_install_message:
206
+ rdoc_options: []
207
+
208
+ require_paths:
209
+ - lib
210
+ required_ruby_version: !ruby/object:Gem::Requirement
211
+ none: false
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ hash: 3
216
+ segments:
217
+ - 0
218
+ version: "0"
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
+ none: false
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ hash: 3
225
+ segments:
226
+ - 0
227
+ version: "0"
228
+ requirements: []
229
+
230
+ rubyforge_project:
231
+ rubygems_version: 1.3.7
232
+ signing_key:
233
+ specification_version: 3
234
+ summary: Capistrano recipe to deploy svn and git tags
235
+ test_files: []
236
+