blazing 0.1.0.alpha1 → 0.1.0.alpha2

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.
data/Gemfile.lock CHANGED
@@ -5,7 +5,6 @@ PATH
5
5
  activesupport
6
6
  grit
7
7
  i18n
8
- methadone
9
8
 
10
9
  GEM
11
10
  remote: http://rubygems.org/
@@ -46,7 +45,6 @@ GEM
46
45
  guard (>= 0.8.4)
47
46
  i18n (0.6.0)
48
47
  json (1.6.1)
49
- methadone (0.3.0)
50
48
  mime-types (1.16)
51
49
  multi_json (1.0.3)
52
50
  rack (1.3.4)
data/Guardfile CHANGED
@@ -9,9 +9,3 @@ guard 'rspec', :version => 2, :cli => "--colour --fail-fast --format nested" do
9
9
  watch(%r{^lib/blazing/templates/(.+)}) { "spec" }
10
10
  watch('lib/blazing/runner.rb') { "spec/blazing/integration/*" }
11
11
  end
12
-
13
- guard 'cucumber' do
14
- watch(%r{^features/.+\.feature$})
15
- watch(%r{^features/support/.+$}) { 'features' }
16
- watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
17
- end
data/README.md CHANGED
@@ -1,46 +1,86 @@
1
1
  [![Build Status](http://travis-ci.org/effkay/blazing.png)](http://travis-ci.org/effkay/blazing)
2
2
 
3
- # Blazing fast git push deploys
3
+ # Blazing fast and painless git push deploys
4
4
 
5
- ## Overview
5
+ *Oh no, yet another deployer!*
6
+
7
+ Not everyone can or wants to deploy on heroku. But now you can have the same awesomely smooth git push deploys on whatever server you have SSH access to.
8
+
9
+ ## Quickstart
10
+
11
+ `blazing init`, edit the configuration, run `blazing setup:local` and `blazing setup:remote <target>` and you're set. Deploy with `git push <target> <branch>` or setup git to always push your current branch.
12
+
13
+ ## Overview & Background
14
+
15
+ Blazing is a deployment tool written in Ruby. It provides helpers to setup your project with a git post-receive hook, which is triggered every time you push to your production repository.
16
+
17
+ I initially started working on an extension to capistrano which would cover most of my needs and the nees of my team. After a short while I noticed that bolting more functionality on top of capistrano was just going to be messy (and a PTA to maintain). We were alerady using tons of own recipes and customizations, capistrano multistage, capistrano-ext, etc.
18
+
19
+ I had a look at what others were doing and after a round of trying around and not getting what I wanted, I started this.
20
+
21
+ ## Design Goals
22
+
23
+ When I started working on blazing, I had some design goals in mind which I think should stay relevant for this project:
24
+
25
+ - it must be well tested
26
+ - it must stay robust, simple and with small code base with as few moving parts as possible. Minimum code in the main project, extensions live outside.
27
+ - no messy rake scripts: Define the desired behavior trough a DSL, and extensions add to this DSL in a clean and modular way
28
+ - Deployments should be fast
29
+
30
+ ### Inspiration & Alternatives
31
+
32
+ I looked at [Inploy](https://github.com/dcrec1/inploy) and [Vlad](https://github.com/seattlerb/vlad) after having used [Capistrano](https://github.com/capistrano/capistrano) for several
33
+ years. Then got inspired by defunkt's
34
+ [blog post](https://github.com/blog/470-deployment-script-spring-cleaning) about deployment script spring cleaning. Other's doing a similar thing with git push deployments are Mislav's [git-deploy](https://github.com/mislav/git-deploy) and [pushand](https://github.com/remi/pushand.git) by remi. If you don't like blazing, you might give them a try.
6
35
 
7
36
  ## Installation
8
37
 
38
+ Your machine should be setup with ruby, rubygems, bundler and git. Install blazing by adding it to your `Gemfile` or run `gem install blazing`. The basic assumption from now on will be that you are working on a project with bundler and a Gemfile. Support for other ways to handle dependencies might be added in the future.
39
+
9
40
  ## Usage
10
41
 
11
- ## Development & Contribution
42
+ ### Init
12
43
 
13
- ### Improving Blazing itself
44
+ Run `blazing init` in your project root to create a sample config file.
14
45
 
15
- ### Blazing Recipes
46
+ ### Configuration
47
+
48
+ See the generated configuration file or [the template file](https://github.com/effkay/blazing/blob/master/lib/blazing/templates/config.erb) for availabel configuration options.
49
+
50
+ ### Setup
51
+
52
+ `blazing setup:local` will setup your local repository for deployment with blazing/git push. Basically, it will add a remote for each target you defined in the configuration file.
16
53
 
17
- ## Contribution
54
+ `blazing setup:remote <target>` will setup the project on the server side. It will:
18
55
 
19
- ## TODO
56
+ * clone the repository to the specified location
57
+ * setup the repository to allow a currently checked out branch to be pushed to it
58
+ * run ``blazing update``
20
59
 
21
- ###0.1 alpha:
60
+ `blazing update <target>`
22
61
 
23
- * implement hook
62
+ Whenever you change something in your blazing config file you can run the update command so your git post-receive hook gets updated.
24
63
 
25
- * implement recipes
64
+ ### Deploying
26
65
 
27
- * checkout branch specified when deploying (i.e git push production
28
- some_feature_branch should checkout some_feature_branch on prod target)
66
+ Just push to your remote… so if you set up a target named `:production`, use `git push production master` to deploy your master branch there.
29
67
 
30
- * handle target as argument in runner
68
+ ## Development & Contribution
31
69
 
32
- * finish readme
70
+ ### Improving Blazing itself
33
71
 
34
- ### Later
72
+ If you like blazing and want to improve/fix something, feel free, I'm glad for every pull request. Maybe contact me beforehand so we don't fix the same bugs twice and make sure you stick with a similar code style and have tests in your pull request.
35
73
 
36
- * recipes with options
37
- * read origin and set it as repository automatically
38
- * allow to set deployed branch in config
39
- * handle local deployment
74
+ ### Blazing Recipes
40
75
 
76
+ I would like to add recipes that encapuslate common deployment strategies to blazing. If you have an idea for that, you are welcome to contribute. Right now I am still working on a clever API for this so no futher documentation yet.
41
77
 
42
78
  ## Authors
43
79
 
80
+ Felipe Kaufmann ([@effkay][])
81
+
44
82
  ## License
45
83
 
46
84
  See the `MIT-LICENSE` file
85
+
86
+ [@effkay]: https://github.com/effkay
data/Rakefile CHANGED
@@ -1,7 +1,5 @@
1
1
  require 'bundler'
2
2
  require 'rake/clean'
3
- require 'cucumber'
4
- require 'cucumber/rake/task'
5
3
  require 'rdoc/task'
6
4
  require 'rspec/core/rake_task'
7
5
 
@@ -16,16 +14,9 @@ RSpec::Core::RakeTask.new do |t|
16
14
  t.ruby_opts = %w(-w)
17
15
  end
18
16
 
19
- CUKE_RESULTS = 'results.html'
20
- CLEAN << CUKE_RESULTS
21
- Cucumber::Rake::Task.new(:features) do |t|
22
- t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
23
- t.fork = false
24
- end
25
-
26
17
  Rake::RDocTask.new do |rd|
27
18
  rd.main = "README.rdoc"
28
19
  rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
29
20
  end
30
21
 
31
- task :default => [:spec,:features]
22
+ task :default => [:spec]
data/bin/blazing CHANGED
@@ -3,27 +3,36 @@
3
3
  require 'bundler'
4
4
  Bundler.setup
5
5
 
6
- require 'optparse'
7
- require 'methadone'
8
6
  require 'blazing'
9
7
  require 'blazing/config'
10
8
  require 'blazing/runner'
9
+ require 'optparse'
11
10
 
12
- include Methadone::Main
11
+ options = {}
13
12
 
14
- main do |command, target|
15
- if command == 'init'
16
- config = nil
17
- else
18
- config = Blazing::Config.parse(options[:file])
13
+ optparse = OptionParser.new do|opts|
14
+ opts.banner = "Usage: blazing <command> [options]"
15
+
16
+ opts.on( '-h', '--help', 'Display this screen' ) do
17
+ puts opts
18
+ exit
19
19
  end
20
20
 
21
- runner = Blazing::Runner.new(config, target)
22
- runner.exec(command)
21
+ opts.on( '-f config', '--file config', 'specify config file location (defaults to config/blazing.rb)' ) do |file|
22
+ options[:file] = file
23
+ end
23
24
  end
24
25
 
25
- arg :command
26
- arg :target, :optional
27
- on("-f configuration", "--file configuration", "config file location (defaults to config/blazing.rb)")
26
+ optparse.parse!(ARGV)
27
+
28
+ command = ARGV[0]
29
+ target = ARGV[1]
30
+
31
+ if command == 'init'
32
+ config = nil
33
+ else
34
+ config = Blazing::Config.parse(options[:file])
35
+ end
28
36
 
29
- go!
37
+ runner = Blazing::Runner.new(config, target)
38
+ runner.exec(command)
data/blazing.gemspec CHANGED
@@ -22,15 +22,12 @@ Gem::Specification.new do |s|
22
22
  # s.add_development_dependency "rspec"
23
23
  # s.add_runtime_dependency "rest-client"
24
24
  s.add_development_dependency('rdoc')
25
- s.add_development_dependency('aruba')
26
25
  s.add_development_dependency('rake','~> 0.9.2')
27
26
  s.add_development_dependency('rspec')
28
27
  s.add_development_dependency('guard')
29
28
  s.add_development_dependency('guard-rspec')
30
- s.add_development_dependency('guard-cucumber')
31
29
  s.add_development_dependency('growl')
32
30
  s.add_development_dependency('rb-fsevent')
33
- s.add_dependency('methadone')
34
31
  s.add_dependency('grit')
35
32
 
36
33
  # TODO: Get rid of those, just used for guessing recipe names etc in lib/recipes.rb
@@ -0,0 +1,114 @@
1
+ #
2
+ # Borrowed from: https://raw.github.com/davetron5000/methadone/master/lib/methadone/cli_logging.rb
3
+ #
4
+
5
+ require 'logger'
6
+
7
+ module Blazing
8
+ # A Logger instance that gives better control of messaging the user
9
+ # and logging app activity. At it's most basic, you would use
10
+ # #info as a replacement for +puts+ and #error as a replacement
11
+ # for <tt>STDERR.puts</tt>. Since this is a logger, however, you
12
+ # can also use #debug, #warn, and #fatal, and you can control
13
+ # the format and "logging level" as such.
14
+ #
15
+ # So, by default:
16
+ # * #debug messages do not appear anywhere
17
+ # * #info messages appear on the standard output
18
+ # * #warn, #error, and #fata messagse appear on the standard error
19
+ # * The default format of messages is simply the message, no logging cruft
20
+ #
21
+ # You can customize this in several ways:
22
+ #
23
+ # * You can override the devices used by passing different devices to the constructor
24
+ # * You can adjust the level of message that goes to the error logger via error_level=
25
+ # * You can adjust the format for messages to the error logger separately via error_formatter=
26
+ #
27
+ # === Example
28
+ #
29
+ # logger = CLILogger.new
30
+ # logger.debug("Starting up") # => only the standard output gets this
31
+ # logger.warn("careful!") # => only the standard error gets this
32
+ # logger.error("Something went wrong!") # => only the standard error gets this
33
+ #
34
+ # logger = CLILogger.new
35
+ # logger.error_level = Logger::ERROR
36
+ # logger.debug("Starting up") # => only the standard output gets this
37
+ # logger.warn("careful!") # => only the standard OUTPUT gets this
38
+ # logger.error("Something went wrong!") # => only the standard error gets this
39
+ #
40
+ # logger = CLILogger.new('logfile.txt')
41
+ # logger.debug("Starting up") # => logfile.txt gets this
42
+ # logger.error("Something went wrong!") # => BOTH logfile.txt AND the standard error get this
43
+ class CLILogger < Logger
44
+ BLANK_FORMAT = proc { |severity,datetime,progname,msg|
45
+ msg + "\n"
46
+ }
47
+
48
+ # Helper to proxy methods to the super class AND to the internal error logger
49
+ #
50
+ # +symbol+:: Symbol for name of the method to proxy
51
+ def self.proxy_method(symbol) #:nodoc:
52
+ old_name = "old_#{symbol}".to_sym
53
+ alias_method old_name,symbol
54
+ define_method symbol do |*args,&block|
55
+ send(old_name,*args,&block)
56
+ @stderr_logger.send(symbol,*args,&block)
57
+ end
58
+ end
59
+
60
+ proxy_method :'formatter='
61
+ proxy_method :'datetime_format='
62
+
63
+ def add(severity, message = nil, progname = nil, &block) #:nodoc:
64
+ if @split_logs
65
+ unless severity >= @stderr_logger.level
66
+ super(severity,message,progname,&block)
67
+ end
68
+ else
69
+ super(severity,message,progname,&block)
70
+ end
71
+ @stderr_logger.add(severity,message,progname,&block)
72
+ end
73
+
74
+
75
+ # A logger that logs error-type messages to a second device; useful
76
+ # for ensuring that error messages go to standard error. This should be
77
+ # pretty smart about doing the right thing. If both log devices are
78
+ # ttys, e.g. one is going to standard error and the other to the standard output,
79
+ # messages only appear once in the overall output stream. In other words,
80
+ # an ERROR logged will show up *only* in the standard error. If either
81
+ # log device is NOT a tty, then all messages go to +log_device+ and only
82
+ # errors go to +error_device+
83
+ #
84
+ # +log_device+:: device where all log messages should go, based on level
85
+ # +error_device+:: device where all error messages should go. By default, this is Logger::Severity::WARN
86
+ def initialize(log_device=$stdout,error_device=$stderr)
87
+ super(log_device)
88
+ @split_logs = log_device.tty? && error_device.tty?
89
+ self.level = Logger::Severity::INFO
90
+ @stderr_logger = Logger.new(error_device)
91
+ @stderr_logger.level = Logger::Severity::WARN
92
+ self.formatter = BLANK_FORMAT if log_device.tty?
93
+ @stderr_logger.formatter = BLANK_FORMAT if error_device.tty?
94
+ end
95
+
96
+ # Set the threshold for what messages go to the error device. Note that calling
97
+ # #level= will *not* affect the error logger
98
+ #
99
+ # +level+:: a constant from Logger::Severity for the level of messages that should go
100
+ # to the error logger
101
+ def error_level=(level)
102
+ @stderr_logger.level = level
103
+ end
104
+
105
+ # Overrides the formatter for the error logger. A future call to #formatter= will
106
+ # affect both, so the order of the calls matters.
107
+ #
108
+ # +formatter+:: Proc that handles the formatting, the same as for #formatter=
109
+ def error_formatter=(formatter)
110
+ @stderr_logger.formatter=formatter
111
+ end
112
+
113
+ end
114
+ end
@@ -0,0 +1,58 @@
1
+ #
2
+ # Borrowed from: https://raw.github.com/davetron5000/methadone/master/lib/methadone/cli_logging.rb
3
+ #
4
+
5
+ require 'blazing/cli_logger'
6
+
7
+ module Blazing
8
+ # Provides easier access to a shared Methadone::CLILogger instance.
9
+ #
10
+ # Include this module into your class, and #logger provides access to a shared logger.
11
+ # This is handy if you want all of your clases to have access to the same logger, but
12
+ # don't want to (or aren't able to) pass it around to each class.
13
+ #
14
+ # This also provides methods for direct logging without going through the #logger
15
+ #
16
+ # === Example
17
+ #
18
+ # class MyClass
19
+ # include Methadone::CLILogger
20
+ #
21
+ # def doit
22
+ # debug("About to doit!")
23
+ # if results
24
+ # info("We did it!"
25
+ # else
26
+ # error("Something went wrong")
27
+ # end
28
+ # debug("Done doing it")
29
+ # end
30
+ # end
31
+ module CLILogging
32
+ # Access the shared logger. All classes that include this module
33
+ # will get the same logger via this method.
34
+ def logger
35
+ @@logger ||= Blazing::CLILogger.new
36
+ end
37
+
38
+ # Change the global logger that includers will use. Useful if you
39
+ # don't want the default configured logger.
40
+ #
41
+ # +new_logger+:: the new logger. May not be nil and should be a a logger of some kind
42
+ def logger=(new_logger)
43
+ raise ArgumentError,"Logger may not be nil" if new_logger.nil?
44
+ @@logger = new_logger
45
+ end
46
+
47
+ # pass-through to <tt>logger.debug(progname,&block)</tt>
48
+ def debug(progname = nil, &block); logger.debug(progname,&block); end
49
+ # pass-through to <tt>logger.info(progname,&block)</tt>
50
+ def info(progname = nil, &block); logger.info(progname,&block); end
51
+ # pass-through to <tt>logger.warn(progname,&block)</tt>
52
+ def warn(progname = nil, &block); logger.warn(progname,&block); end
53
+ # pass-through to <tt>logger.error(progname,&block)</tt>
54
+ def error(progname = nil, &block); logger.error(progname,&block); end
55
+ # pass-through to <tt>logger.fatal(progname,&block)</tt>
56
+ def fatal(progname = nil, &block); logger.fatal(progname,&block); end
57
+ end
58
+ end
@@ -1,9 +1,9 @@
1
1
  require 'erb'
2
- require 'methadone'
2
+ require 'blazing/cli_logging'
3
3
 
4
4
  class Blazing::Runner
5
5
 
6
- include Methadone::CLILogging
6
+ include Blazing::CLILogging
7
7
 
8
8
  def initialize(config = nil, target = nil)
9
9
  if config
@@ -22,7 +22,7 @@ class Blazing::Runner
22
22
  info("Creating an example config file in #{Blazing::DEFAULT_CONFIG_LOCATION}")
23
23
  info("Customize it to your needs")
24
24
 
25
- Dir.mkdir 'config' unless Dir.exists? 'config'
25
+ Dir.mkdir 'config' unless File.exists? 'config'
26
26
  configuration_file = ERB.new(File.read("#{Blazing::TEMPLATE_ROOT}/config.erb")).result
27
27
 
28
28
  File.open(Blazing::DEFAULT_CONFIG_LOCATION,"wb") do |f|
@@ -1,3 +1,3 @@
1
1
  module Blazing
2
- VERSION = "0.1.0.alpha1"
2
+ VERSION = "0.1.0.alpha2"
3
3
  end
@@ -14,7 +14,7 @@ describe 'blazing init' do
14
14
  end
15
15
 
16
16
  it 'creates a config directory if none exists yet' do
17
- Dir.exists?('config').should be true
17
+ File.exists?('config').should be true
18
18
  end
19
19
 
20
20
  it 'creates a config file in config/blazing.rb' do
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require 'blazing'
2
2
 
3
+ ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
4
+
3
5
  #
4
6
  # Stuff borrowed from carlhuda/bundler
5
7
  #
@@ -19,10 +21,10 @@ RSpec.configure do |config|
19
21
 
20
22
  def setup_sandbox
21
23
  @blazing_root = Dir.pwd
22
- @sandbox_directory = File.join(@blazing_root, '/tmp/blazing_sandbox')
24
+ @sandbox_directory = File.join('/tmp/blazing_sandbox')
23
25
 
24
26
  # Sometimes, when specs failed, the sandbox would stick around
25
- FileUtils.rm_rf(@sandbox_directory) if Dir.exists?(@sandbox_directory)
27
+ FileUtils.rm_rf(@sandbox_directory) if File.exists?(@sandbox_directory)
26
28
 
27
29
  # Setup Sandbox and cd into it
28
30
  Dir.mkdir(@sandbox_directory)
metadata CHANGED
@@ -1,167 +1,176 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: blazing
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.0.alpha1
3
+ version: !ruby/object:Gem::Version
4
+ hash: -3702664376
5
5
  prerelease: 6
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ - alpha
11
+ - 2
12
+ version: 0.1.0.alpha2
6
13
  platform: ruby
7
- authors:
14
+ authors:
8
15
  - Felipe Kaufmann
9
16
  autorequire:
10
17
  bindir: bin
11
18
  cert_chain: []
12
- date: 2011-10-23 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
19
+
20
+ date: 2011-10-23 00:00:00 Z
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
15
23
  name: rdoc
16
- requirement: &70265904329540 !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
24
  prerelease: false
24
- version_requirements: *70265904329540
25
- - !ruby/object:Gem::Dependency
26
- name: aruba
27
- requirement: &70265904328700 !ruby/object:Gem::Requirement
25
+ requirement: &id001 !ruby/object:Gem::Requirement
28
26
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
33
34
  type: :development
34
- prerelease: false
35
- version_requirements: *70265904328700
36
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70265904326660 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
39
40
  none: false
40
- requirements:
41
+ requirements:
41
42
  - - ~>
42
- - !ruby/object:Gem::Version
43
+ - !ruby/object:Gem::Version
44
+ hash: 63
45
+ segments:
46
+ - 0
47
+ - 9
48
+ - 2
43
49
  version: 0.9.2
44
50
  type: :development
45
- prerelease: false
46
- version_requirements: *70265904326660
47
- - !ruby/object:Gem::Dependency
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
48
53
  name: rspec
49
- requirement: &70265904323240 !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :development
56
54
  prerelease: false
57
- version_requirements: *70265904323240
58
- - !ruby/object:Gem::Dependency
59
- name: guard
60
- requirement: &70265904321580 !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
61
56
  none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
66
64
  type: :development
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: guard
67
68
  prerelease: false
68
- version_requirements: *70265904321580
69
- - !ruby/object:Gem::Dependency
70
- name: guard-rspec
71
- requirement: &70265904320720 !ruby/object:Gem::Requirement
69
+ requirement: &id004 !ruby/object:Gem::Requirement
72
70
  none: false
73
- requirements:
74
- - - ! '>='
75
- - !ruby/object:Gem::Version
76
- version: '0'
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
77
78
  type: :development
79
+ version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: guard-rspec
78
82
  prerelease: false
79
- version_requirements: *70265904320720
80
- - !ruby/object:Gem::Dependency
81
- name: guard-cucumber
82
- requirement: &70265904319600 !ruby/object:Gem::Requirement
83
+ requirement: &id005 !ruby/object:Gem::Requirement
83
84
  none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
87
- version: '0'
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
88
92
  type: :development
89
- prerelease: false
90
- version_requirements: *70265904319600
91
- - !ruby/object:Gem::Dependency
93
+ version_requirements: *id005
94
+ - !ruby/object:Gem::Dependency
92
95
  name: growl
93
- requirement: &70265904318360 !ruby/object:Gem::Requirement
94
- none: false
95
- requirements:
96
- - - ! '>='
97
- - !ruby/object:Gem::Version
98
- version: '0'
99
- type: :development
100
96
  prerelease: false
101
- version_requirements: *70265904318360
102
- - !ruby/object:Gem::Dependency
103
- name: rb-fsevent
104
- requirement: &70265904317480 !ruby/object:Gem::Requirement
97
+ requirement: &id006 !ruby/object:Gem::Requirement
105
98
  none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ hash: 3
103
+ segments:
104
+ - 0
105
+ version: "0"
110
106
  type: :development
107
+ version_requirements: *id006
108
+ - !ruby/object:Gem::Dependency
109
+ name: rb-fsevent
111
110
  prerelease: false
112
- version_requirements: *70265904317480
113
- - !ruby/object:Gem::Dependency
114
- name: methadone
115
- requirement: &70265904316400 !ruby/object:Gem::Requirement
111
+ requirement: &id007 !ruby/object:Gem::Requirement
116
112
  none: false
117
- requirements:
118
- - - ! '>='
119
- - !ruby/object:Gem::Version
120
- version: '0'
121
- type: :runtime
122
- prerelease: false
123
- version_requirements: *70265904316400
124
- - !ruby/object:Gem::Dependency
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ hash: 3
117
+ segments:
118
+ - 0
119
+ version: "0"
120
+ type: :development
121
+ version_requirements: *id007
122
+ - !ruby/object:Gem::Dependency
125
123
  name: grit
126
- requirement: &70265904315680 !ruby/object:Gem::Requirement
124
+ prerelease: false
125
+ requirement: &id008 !ruby/object:Gem::Requirement
127
126
  none: false
128
- requirements:
129
- - - ! '>='
130
- - !ruby/object:Gem::Version
131
- version: '0'
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ hash: 3
131
+ segments:
132
+ - 0
133
+ version: "0"
132
134
  type: :runtime
133
- prerelease: false
134
- version_requirements: *70265904315680
135
- - !ruby/object:Gem::Dependency
135
+ version_requirements: *id008
136
+ - !ruby/object:Gem::Dependency
136
137
  name: activesupport
137
- requirement: &70265904314900 !ruby/object:Gem::Requirement
138
+ prerelease: false
139
+ requirement: &id009 !ruby/object:Gem::Requirement
138
140
  none: false
139
- requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: '0'
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ hash: 3
145
+ segments:
146
+ - 0
147
+ version: "0"
143
148
  type: :runtime
144
- prerelease: false
145
- version_requirements: *70265904314900
146
- - !ruby/object:Gem::Dependency
149
+ version_requirements: *id009
150
+ - !ruby/object:Gem::Dependency
147
151
  name: i18n
148
- requirement: &70265904313940 !ruby/object:Gem::Requirement
152
+ prerelease: false
153
+ requirement: &id010 !ruby/object:Gem::Requirement
149
154
  none: false
150
- requirements:
151
- - - ! '>='
152
- - !ruby/object:Gem::Version
153
- version: '0'
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ hash: 3
159
+ segments:
160
+ - 0
161
+ version: "0"
154
162
  type: :runtime
155
- prerelease: false
156
- version_requirements: *70265904313940
163
+ version_requirements: *id010
157
164
  description: git push deployent utility, ready to be extended by your own recipes
158
- email:
165
+ email:
159
166
  - felipekaufmann@gmail.com
160
- executables:
167
+ executables:
161
168
  - blazing
162
169
  extensions: []
170
+
163
171
  extra_rdoc_files: []
164
- files:
172
+
173
+ files:
165
174
  - .gitignore
166
175
  - .rvmrc
167
176
  - Gemfile
@@ -172,10 +181,9 @@ files:
172
181
  - Rakefile
173
182
  - bin/blazing
174
183
  - blazing.gemspec
175
- - features/help_banner.feature
176
- - features/step_definitions/blazing_steps.rb
177
- - features/support/env.rb
178
184
  - lib/blazing.rb
185
+ - lib/blazing/cli_logger.rb
186
+ - lib/blazing/cli_logging.rb
179
187
  - lib/blazing/config.rb
180
188
  - lib/blazing/dsl_setter.rb
181
189
  - lib/blazing/recipe.rb
@@ -197,32 +205,40 @@ files:
197
205
  - spec/support/empty_config.rb
198
206
  homepage: https://github.com/effkay/blazing
199
207
  licenses: []
208
+
200
209
  post_install_message:
201
210
  rdoc_options: []
202
- require_paths:
211
+
212
+ require_paths:
203
213
  - lib
204
- required_ruby_version: !ruby/object:Gem::Requirement
214
+ required_ruby_version: !ruby/object:Gem::Requirement
205
215
  none: false
206
- requirements:
207
- - - ! '>='
208
- - !ruby/object:Gem::Version
209
- version: '0'
210
- required_rubygems_version: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ hash: 3
220
+ segments:
221
+ - 0
222
+ version: "0"
223
+ required_rubygems_version: !ruby/object:Gem::Requirement
211
224
  none: false
212
- requirements:
213
- - - ! '>'
214
- - !ruby/object:Gem::Version
225
+ requirements:
226
+ - - ">"
227
+ - !ruby/object:Gem::Version
228
+ hash: 25
229
+ segments:
230
+ - 1
231
+ - 3
232
+ - 1
215
233
  version: 1.3.1
216
234
  requirements: []
235
+
217
236
  rubyforge_project: blazing
218
237
  rubygems_version: 1.8.10
219
238
  signing_key:
220
239
  specification_version: 3
221
240
  summary: blazing fast deployment
222
- test_files:
223
- - features/help_banner.feature
224
- - features/step_definitions/blazing_steps.rb
225
- - features/support/env.rb
241
+ test_files:
226
242
  - spec/blazing/config_spec.rb
227
243
  - spec/blazing/integration/init_spec.rb
228
244
  - spec/blazing/integration/setup_local_spec.rb
@@ -1,13 +0,0 @@
1
- Feature: Help Banner
2
- In order to know what this gem does
3
- I want to see the help banner
4
-
5
- Scenario: Run blazing --help
6
- When I get help for "blazing"
7
- Then the exit status should be 0
8
- And the banner should be present
9
-
10
- Scenario:
11
- When I run `blazing`
12
- Then the exit status should not be 0
13
- And the output should contain "'command' is required"
@@ -1 +0,0 @@
1
- # Put your step defintions here
@@ -1,9 +0,0 @@
1
- require 'aruba/cucumber'
2
- require 'methadone/cucumber'
3
-
4
- ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
5
-
6
- Before do
7
- # Using "announce" causes massive warnings on 1.9.2
8
- @puts = true
9
- end