emeril 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## 0.5.1 / 2013-05-23
2
+
3
+ ### New features
4
+
5
+ * Pull request [#1][]: Add ability to bypass publishing to the community site. ([@thbishop][])
6
+
7
+
1
8
  ## 0.5.0 / 2013-05-20
2
9
 
3
10
  The initial release, **BAM**!
11
+
12
+ <!--- The following link definition list is generated by PimpMyChangelog --->
13
+ [#1]: https://github.com/fnichol/emeril/issues/1
14
+ [@thbishop]: https://github.com/thbishop
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # <a name="title"></a> Emeril: Tag And Release Chef Cookbooks As A Library
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/emeril.png)](http://badge.fury.io/rb/emeril)
3
4
  [![Build Status](https://travis-ci.org/fnichol/emeril.png?branch=master)](https://travis-ci.org/fnichol/emeril)
4
- [![Dependency Status](https://gemnasium.com/fnichol/emeril.png)](https://gemnasium.com/fnichol/emeril)
5
5
  [![Code Climate](https://codeclimate.com/github/fnichol/emeril.png)](https://codeclimate.com/github/fnichol/emeril)
6
+ [![Dependency Status](https://gemnasium.com/fnichol/emeril.png)](https://gemnasium.com/fnichol/emeril)
6
7
 
7
8
  Kick it up a notch! Emeril is a library that helps you release your Chef
8
9
  cookbooks from Rake, Thor, or a Ruby library. If `rake release` is all you
@@ -23,13 +24,20 @@ bundle exec rake release
23
24
 
24
25
  Need more details? Read on&hellip;
25
26
 
27
+ ## <a name="screencast"></a> Screencast
28
+
29
+ Here is a short screencast demonstating how Emeril can be used to release
30
+ a cookbook to the Community Site.
31
+
32
+ [![Emeril screencast](https://raw.github.com/fnichol/emeril/master/images/emeril-vid.png)](http://vimeo.com/fnichol/emeril)
33
+
26
34
  ## <a name="how-it-works"></a> How It Works
27
35
 
28
36
  Emeril has 2 primary tasks and goals:
29
37
 
30
38
  1. Tag a Git commit with a semantic version tag with the form `"v1.2.5"` (by
31
39
  default)
32
- 2. Publish a versioned release of the cookbook to the
40
+ 2. Optionally publish a versioned release of the cookbook to the
33
41
  [Community Site][community_site]
34
42
 
35
43
  The Git tagging is currently accomplished via shell out, so Git must be
@@ -131,6 +139,17 @@ Emeril::RakeTasks.new do |t|
131
139
  end
132
140
  ```
133
141
 
142
+ If your cookbook is not on the Community Site, you can skip the publishing step
143
+ with the block form:
144
+
145
+ ```ruby
146
+ require 'emeril/rake_tasks'
147
+
148
+ Emeril::RakeTasks.new do |t|
149
+ t.config[:publish_to_community] = false
150
+ end
151
+ ```
152
+
134
153
  ### <a name="usage-rake"></a> Thor Tasks
135
154
 
136
155
  To add the default Thor task (`thor emeril:release`), add the following to your
@@ -158,6 +177,17 @@ Emeril::ThorTasks.new do |t|
158
177
  end
159
178
  ```
160
179
 
180
+ If your cookbook is not on the Community Site, you can skip the publishing step
181
+ with the block form:
182
+
183
+ ```ruby
184
+ require 'emeril/thor_tasks'
185
+
186
+ Emeril::ThorTasks.new do |t|
187
+ t.config[:publish_to_community] = false
188
+ end
189
+ ```
190
+
161
191
  ### <a name="usage-ruby"></a> Ruby Library
162
192
 
163
193
  The Ruby API is fairly straight forward, but keep in mind that loading or
Binary file
@@ -7,8 +7,8 @@ require 'emeril/publisher'
7
7
 
8
8
  module Emeril
9
9
 
10
- # Tags a git commit with a version string and pushes the cookbook to the
11
- # Community Site.
10
+ # Tags a git commit with a version string and (optionally) pushes the
11
+ # cookbook to the Community Site.
12
12
  #
13
13
  # @author Fletcher Nichol <fnichol@nichol.ca>
14
14
  #
@@ -24,6 +24,9 @@ module Emeril
24
24
  # cookbook
25
25
  # @option options [GitTagger] git_tagger a git tagger
26
26
  # @option options [Publisher] publisher a publisher
27
+ # @option options [Boolean] publish_to_community a boolean which
28
+ # controls if the cookbook will published on the Community Site (the
29
+ # default is to publish)
27
30
  # @raise [ArgumentError] if any required options are not set
28
31
  #
29
32
  def initialize(options = {})
@@ -34,13 +37,14 @@ module Emeril
34
37
  @category = options.fetch(:category) { default_category }
35
38
  @git_tagger = options.fetch(:git_tagger) { default_git_tagger }
36
39
  @publisher = options.fetch(:publisher) { default_publisher }
40
+ @publish_to_community = options.fetch(:publish_to_community) { true }
37
41
  end
38
42
 
39
43
  # Tags and releases a cookbook.
40
44
  #
41
45
  def run
42
46
  git_tagger.run
43
- publisher.run
47
+ publisher.run if publish_to_community
44
48
  end
45
49
 
46
50
  private
@@ -48,7 +52,7 @@ module Emeril
48
52
  DEFAULT_CATEGORY = "Other".freeze
49
53
 
50
54
  attr_reader :logger, :tag_prefix, :source_path, :metadata,
51
- :category, :git_tagger, :publisher
55
+ :category, :git_tagger, :publisher, :publish_to_community
52
56
 
53
57
  def default_metadata
54
58
  metadata_file = File.expand_path(File.join(source_path, "metadata.rb"))
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Emeril
4
4
 
5
- VERSION = "0.5.0"
5
+ VERSION = "0.5.1"
6
6
  end
@@ -137,5 +137,22 @@ describe Emeril::Releaser do
137
137
 
138
138
  releaser.run
139
139
  end
140
+
141
+ describe 'when disabling community site publishing' do
142
+ it 'does not call #run on publisher' do
143
+ releaser = Emeril::Releaser.new(
144
+ :metadata => metadata,
145
+ :category => category,
146
+ :git_tagger => git_tagger,
147
+ :publisher => publisher,
148
+ :publish_to_community => false
149
+ )
150
+ publisher.unstub(:run)
151
+ publisher.expects(:run).never
152
+
153
+ releaser.run
154
+ end
155
+
156
+ end
140
157
  end
141
158
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emeril
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-21 00:00:00.000000000 Z
12
+ date: 2013-05-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef
@@ -253,6 +253,7 @@ files:
253
253
  - README.md
254
254
  - Rakefile
255
255
  - emeril.gemspec
256
+ - images/emeril-vid.png
256
257
  - lib/emeril.rb
257
258
  - lib/emeril/category.rb
258
259
  - lib/emeril/git_tagger.rb
@@ -294,7 +295,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
294
295
  version: '0'
295
296
  segments:
296
297
  - 0
297
- hash: -303951411398259497
298
+ hash: 2430301425435120469
298
299
  requirements: []
299
300
  rubyforge_project:
300
301
  rubygems_version: 1.8.24