capistrano_banner 0.0.4 → 0.1.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 68e22bb02144e977f49d7ae355b53a3511d0cbf8
4
+ data.tar.gz: a5d368282895419acc92e8a81c63b73018e16c76
5
+ SHA512:
6
+ metadata.gz: 9056944f37f628f0d766d1362be58572a82e07777baabe6ff4cef58b89d5836d83f0251b8b3f10a10428c3f0bf2b127da04197ee2c73c814b70bbc0f70556da2
7
+ data.tar.gz: 322d117f4d36669319147611456d18dfe68c587228c627d255264138d89bc7671bf4b8c3191509cb34447393d469c9b832fb74a7b4caf5a189fba99e2d5b3b81
data/README.md CHANGED
@@ -1,20 +1,22 @@
1
- # CapistranoBanner
1
+ # capistrano_banner
2
2
 
3
- display application banner, and pause in production environment
3
+ `capistrano_banner` displays application banner, and pause in production stage
4
4
 
5
5
  ## Installation
6
6
 
7
- Add this line to your application's Gemfile:
7
+ Gemfile:
8
8
 
9
9
  gem 'capistrano_banner'
10
10
 
11
- And then execute:
11
+ Then:
12
12
 
13
13
  $ bundle
14
14
 
15
- Or install it yourself as:
15
+ ### Note
16
16
 
17
- $ gem install capistrano_banner
17
+ After version 0.1.0, `capistrano_banner` works well just with capistrano >= 3.
18
+
19
+ If you're using capistrano =< 2, please use this gem versioned 0.0.x
18
20
 
19
21
  ## Usage
20
22
 
@@ -29,23 +31,18 @@ $ artii --font=banner3-D yourapp > config/banner.txt
29
31
 
30
32
  (about artii: https://github.com/miketierney/artii )
31
33
 
32
- Then, call banner method in the bottom of your deploy.rb
34
+ Then enable in Capfile:
33
35
 
34
- ```ruby
35
- require 'capistrano_banner' # if you wouldn't use bundle exec
36
- set :rails_env, 'production' # rails_env or rack_env must be fixed before call banner
37
- set :deploy_to, '/u/apps/yourapp'
36
+ require 'capistrano/banner'
38
37
 
39
- # :
40
- # :
38
+ This line hooks `deploy:banner` task just before `deploy:starting`.
41
39
 
42
- banner
43
- ```
40
+ See also [capistrano(3) flow](http://capistranorb.com/documentation/getting-started/flow/).
44
41
 
45
- Let's execute cap!
42
+ After all, let's execute cap!
46
43
 
47
44
  ```
48
- $ cap shell
45
+ $ cap production deploy
49
46
  '##:::'##::'#######::'##::::'##:'########:::::'###::::'########::'########::
50
47
  . ##:'##::'##.... ##: ##:::: ##: ##.... ##:::'## ##::: ##.... ##: ##.... ##:
51
48
  :. ####::: ##:::: ##: ##:::: ##: ##:::: ##::'##:. ##:: ##:::: ##: ##:::: ##:
@@ -55,26 +52,34 @@ $ cap shell
55
52
  ::: ##::::. #######::. #######:: ##:::. ##: ##:::: ##: ##:::::::: ##::::::::
56
53
  :::..::::::.......::::.......:::..:::::..::..:::::..::..:::::::::..:::::::::
57
54
 
58
- This is production environment. Are you ready? (y/N) >
55
+ This is production stage. Are you ready? (y/N) >
59
56
  ```
60
57
 
61
- In production environment, capistarano pauses and waits your input.
58
+ In production stage, capistarano pauses and waits your input.
62
59
 
63
- ## Options
60
+ ### Custom banner hook
64
61
 
65
- banner method can take options:
62
+ In another way, you can call banner method in your task:
66
63
 
67
- - `:path => 'filepath'` path to your favor banner file
68
- - `:color => :colorname'` banner color (e.g. :red, :green and :blue ... see https://github.com/flori/term-ansicolor )
69
- - `:pause => true` anyway pause
70
- - `:force => true` don't pause even if production env
64
+ ```
65
+ task :foobar do
66
+ CapistranoBanner.banner("./config/custom.txt")
67
+ end
68
+ ```
69
+
70
+ ## Options
71
71
 
72
+ `capistrano_banner` respects some capistrano settings:
72
73
 
73
- ## Etc
74
+ - `:banner_path` : A path to banner source file. Default to `"./config/banner.txt"`
75
+ - `:banner_options` : Set specifc banner options with Hash:
76
+ - `:color => :colorname'` banner color (e.g. :red, :green and :blue ... see https://github.com/flori/term-ansicolor )
77
+ - `:pause => true` anyway pause
78
+ - `:force => true` don't pause even if production env
74
79
 
75
- ### multistage
80
+ ## LICENSE
76
81
 
77
- If you use capistrano/ext/multistage, you need write `banner` method call to *all* stages. capistrano_banner requires to set :rails_env or :rack_env before `banner`.
82
+ See LICENSE.txt.
78
83
 
79
84
  ## Contributing
80
85
 
@@ -6,10 +6,10 @@ require 'capistrano_banner/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "capistrano_banner"
8
8
  gem.version = CapistranoBanner::VERSION
9
- gem.authors = ["HORII Keima"]
10
- gem.email = ["holysugar@gmail.com"]
9
+ gem.authors = ["HORII Keima", "KONDO Uchio"]
10
+ gem.email = ["holysugar@gmail.com", "udzura@udzura.jp"]
11
11
  gem.description = %q{capistrano application banner}
12
- gem.summary = %q{provids banner method to display application banner}
12
+ gem.summary = %q{provides a task to display application banner}
13
13
  gem.homepage = "https://github.com/holysugar/capistrano_banner"
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_runtime_dependency 'capistrano'
20
+ gem.add_runtime_dependency 'capistrano', '>= 3.0.0'
21
21
  gem.add_runtime_dependency 'term-ansicolor'
22
- gem.add_runtime_dependency 'thor'
22
+ gem.add_runtime_dependency 'highline'
23
23
  end
@@ -0,0 +1,3 @@
1
+ require 'capistrano_banner'
2
+ require 'capistrano/deploy'
3
+ load File.expand_path("../tasks/banner.rake", __FILE__)
@@ -0,0 +1,14 @@
1
+ require 'capistrano_banner/base'
2
+
3
+ namespace :deploy do
4
+ desc 'Show banner of service'
5
+ task :banner do
6
+ path = fetch(:banner_path, "./config/banner.txt")
7
+ stage = fetch(:stage, :development)
8
+ options = fetch(:banner_options, {})
9
+
10
+ CapistranoBanner::Base.new(stage, path).print_banner(options)
11
+ end
12
+
13
+ before :starting, :banner
14
+ end
@@ -1,11 +1,12 @@
1
1
  require 'term/ansicolor'
2
- require 'thor'
2
+ require 'highline'
3
3
 
4
4
  module CapistranoBanner
5
5
  class Base
6
- def initialize(env, path)
7
- @env = env
6
+ def initialize(stage, path)
7
+ @stage = stage
8
8
  @path = path
9
+ @ui = HighLine.new
9
10
  end
10
11
 
11
12
  def banner
@@ -17,20 +18,20 @@ module CapistranoBanner
17
18
  end
18
19
 
19
20
  def pause
20
- exit unless Thor::Shell::Basic.new.yes?(prompt)
21
+ exit unless @ui.agree(prompt)
21
22
  end
22
23
 
23
- def prompt
24
- "This is #{Term::ANSIColor.red @env} environment. Are you ready? (y/N) >"
24
+ def prompt
25
+ "This is #{Term::ANSIColor.send(color, @stage.to_s)} stage. Are you ready? (y/N) >"
25
26
  end
26
27
 
27
28
  def color(overwrite = nil)
28
29
  return overwrite if overwrite
29
30
 
30
- case @env
31
- when 'production' ; :red
32
- when 'development' ; :green
33
- else 'yellow' ; :yellow
31
+ case @stage
32
+ when :production ; :red
33
+ when :staging ; :yellow
34
+ else :green ; :green
34
35
  end
35
36
  end
36
37
 
@@ -48,12 +49,7 @@ module CapistranoBanner
48
49
  end
49
50
  end
50
51
 
51
- module IntegrationMethods
52
- def banner(options = {})
53
- path = self[:banner_path] || "./config/banner.txt"
54
- env = self[:rack_env] || self[:rails_env] || (raise "rails_env or rack_env is required.") # FIXME: or anything else?
55
-
56
- Base.new(env, path).print_banner(options)
57
- end
52
+ def self.banner(banner_path = "./config/banner.txt", stage = fetch(:stage), options = {})
53
+ Base.new(stage, banner_path).print_banner(options)
58
54
  end
59
55
  end
@@ -1,3 +1,3 @@
1
1
  module CapistranoBanner
2
- VERSION = "0.0.4"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,6 +1,3 @@
1
1
  require 'capistrano'
2
-
3
2
  require "capistrano_banner/version"
4
3
  require "capistrano_banner/base"
5
-
6
- Capistrano::Configuration.send(:include, CapistranoBanner::IntegrationMethods)
metadata CHANGED
@@ -1,103 +1,98 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano_banner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - HORII Keima
8
+ - KONDO Uchio
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-18 00:00:00.000000000 Z
12
+ date: 2014-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
- - - ! '>='
18
+ - - ">="
20
19
  - !ruby/object:Gem::Version
21
- version: '0'
20
+ version: 3.0.0
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
- - - ! '>='
25
+ - - ">="
28
26
  - !ruby/object:Gem::Version
29
- version: '0'
27
+ version: 3.0.0
30
28
  - !ruby/object:Gem::Dependency
31
29
  name: term-ansicolor
32
30
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
31
  requirements:
35
- - - ! '>='
32
+ - - ">="
36
33
  - !ruby/object:Gem::Version
37
34
  version: '0'
38
35
  type: :runtime
39
36
  prerelease: false
40
37
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
38
  requirements:
43
- - - ! '>='
39
+ - - ">="
44
40
  - !ruby/object:Gem::Version
45
41
  version: '0'
46
42
  - !ruby/object:Gem::Dependency
47
- name: thor
43
+ name: highline
48
44
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
45
  requirements:
51
- - - ! '>='
46
+ - - ">="
52
47
  - !ruby/object:Gem::Version
53
48
  version: '0'
54
49
  type: :runtime
55
50
  prerelease: false
56
51
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
52
  requirements:
59
- - - ! '>='
53
+ - - ">="
60
54
  - !ruby/object:Gem::Version
61
55
  version: '0'
62
56
  description: capistrano application banner
63
57
  email:
64
58
  - holysugar@gmail.com
59
+ - udzura@udzura.jp
65
60
  executables: []
66
61
  extensions: []
67
62
  extra_rdoc_files: []
68
63
  files:
69
- - .gitignore
64
+ - ".gitignore"
70
65
  - Gemfile
71
66
  - LICENSE.txt
72
67
  - README.md
73
68
  - Rakefile
74
69
  - capistrano_banner.gemspec
70
+ - lib/capistrano/banner.rb
71
+ - lib/capistrano/tasks/banner.rake
75
72
  - lib/capistrano_banner.rb
76
73
  - lib/capistrano_banner/base.rb
77
74
  - lib/capistrano_banner/version.rb
78
75
  homepage: https://github.com/holysugar/capistrano_banner
79
76
  licenses: []
77
+ metadata: {}
80
78
  post_install_message:
81
79
  rdoc_options: []
82
80
  require_paths:
83
81
  - lib
84
82
  required_ruby_version: !ruby/object:Gem::Requirement
85
- none: false
86
83
  requirements:
87
- - - ! '>='
84
+ - - ">="
88
85
  - !ruby/object:Gem::Version
89
86
  version: '0'
90
87
  required_rubygems_version: !ruby/object:Gem::Requirement
91
- none: false
92
88
  requirements:
93
- - - ! '>='
89
+ - - ">="
94
90
  - !ruby/object:Gem::Version
95
91
  version: '0'
96
92
  requirements: []
97
93
  rubyforge_project:
98
- rubygems_version: 1.8.24
94
+ rubygems_version: 2.2.0
99
95
  signing_key:
100
- specification_version: 3
101
- summary: provids banner method to display application banner
96
+ specification_version: 4
97
+ summary: provides a task to display application banner
102
98
  test_files: []
103
- has_rdoc: