mina-proteus 0.5.0 → 0.5.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5fb55d1a708f4fec34cd44a2938a15e4db82f78024350776a4b80113dbe54fd1
4
- data.tar.gz: 44f0b32ef4b148d2b8362d5541a636e4265773048fb8682e553dc0d277b45d62
3
+ metadata.gz: 919c886601e153876d057aa6a73162ecea6dfe5dc3deec3ad662df23cb7f0988
4
+ data.tar.gz: a0d2da436e1840c9f500e6481b68e49f23a5736924eb2684769e05cec33c4c0e
5
5
  SHA512:
6
- metadata.gz: 32c09980fc70e5d642b97a9b66e47d72c391e5f2786cf629f58801d862e1d792a17a0d8ca0d4e5056971845d48bb9ace166c64f152a208851e639097e81d957f
7
- data.tar.gz: 6766a35f50ad165d009619a221f662c02d01004de19f9c63f7a82741673f3bdb84eb36eac00288c4453d368ef333de942eb580b8707d513112e6d42ed219a599
6
+ metadata.gz: de1870b85fcaebd04ea8d408416c81b1984676f7ceaa25b28eedd282b67beb69e64df2a946fa6db21db662eebe160f202cc1e7af235fd568176ab734eed42533
7
+ data.tar.gz: 46e41a8eb2c826386461263255b50f6b6929d11d6028b245ba73ad237529a102aed973f29b5c7887a436430fe592fa8b2544531d80ce118d062ceffd59df7626
data/.gitignore CHANGED
@@ -1 +1,2 @@
1
1
  .DS_Store
2
+ *.gem
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
- [![Gem Version](https://badge.fury.io/rb/mina-multistage.png)](http://badge.fury.io/rb/mina-multistage)
1
+ [![Gem Version](https://badge.fury.io/rb/mina-proteus.svg)](https://badge.fury.io/rb/mina-proteus) ![Gem](https://img.shields.io/gem/dt/mina-proteus.svg?color=brightgreen)
2
2
 
3
3
  # Mina::Proteus
4
4
 
5
- Plugin for Mina that adds support for multiple stages and multiple apps to Mina, specifically built for Hanami ruby framework.
5
+ Plugin for Mina that adds support for multiple stages and multiple apps to Mina, specifically built for [Hanami ruby framework](https://hanamirb.org/).
6
6
  This gem is based on [endoze's mina-multistage gem](https://github.com/endoze/mina-multistage), huge thanks to him!
7
7
 
8
8
  ## Installation & Usage
@@ -28,6 +28,8 @@ $ gem install mina-proteus
28
28
  Require `mina/proteus` in your `config/deploy.rb`:
29
29
 
30
30
  ```rb
31
+ # config/deploy.rb
32
+
31
33
  require 'mina/proteus'
32
34
  require 'mina/bundler'
33
35
  require 'mina/git'
@@ -46,6 +48,8 @@ end
46
48
  You then need to specify your hanami apps like this:
47
49
 
48
50
  ```rb
51
+ # config/deploy.rb
52
+
49
53
  set :hanami_apps, %w(app1 app2 app3)
50
54
  ```
51
55
 
@@ -54,12 +58,14 @@ That's the only required parameter, optional parameters are:
54
58
  ```rb
55
59
  # config/deploy.rb
56
60
 
57
- set :stages, %w(staging production) #specify your stages
58
- set :stages_dir, 'config/deploy' #specify which directory will have all the configurations files
59
- set :default_stage, 'staging' #specify your default stage
61
+ set :stages, %w(staging production) #specify your stages
62
+ set :stages_dir, 'config/deploy' #specify which directory will have all the configurations files
63
+ set :default_stage, 'staging' #specify your default stage
60
64
 
61
- set :bundle_prefix, -> { %{HANAMI_ENV="#{fetch(:current_stage)}" HANAMI_APPS="#{fetch(:current_app)}" #{fetch(:bundle_bin)} exec} } #used to deploy a single application in a specific environment
65
+ #this is used to deploy a single application in a specific environment
66
+ set :bundle_prefix, -> { %{HANAMI_ENV="#{fetch(:current_stage)}" HANAMI_APPS="#{fetch(:current_app)}" #{fetch(:bundle_bin)} exec} }
62
67
  ```
68
+ Note that `current_stage` and `current_app` are respectively the stage and the application being called.
63
69
 
64
70
  Then to create every file run:
65
71
 
@@ -74,7 +80,7 @@ Use them to define stage and app specific configuration.
74
80
  Now you can deploy the default stage with:
75
81
 
76
82
  ```shell
77
- $ mina <APP-NAME> deploy # this deploys staging by default
83
+ $ mina <APP-NAME> deploy # this deploys to :default_stage
78
84
  ```
79
85
 
80
86
  Or specify a stage explicitly:
@@ -84,5 +90,6 @@ $ mina staging <APP-NAME> deploy
84
90
  $ mina production <APP-NAME> deploy
85
91
  ```
86
92
 
87
- ## Maintenance
88
- I'll be rearely maintaining this gem due to lack of time, if you want to contibute feel free to fork it, branch it and then create a pull request
93
+ # Maintenance and Contribution
94
+ I'll be rarely maintaining this source code due to lack of time, but i will do as much as i can to resolve any open issues.
95
+ If you want to contribute, feel free to fork it, branch it and to create a pull request.
data/lib/mina/proteus.rb CHANGED
@@ -55,6 +55,10 @@ def _argument_included_in_stages?(arg)
55
55
  fetch(:all_stages).include?(arg)
56
56
  end
57
57
 
58
+ def _argument_included_in_apps?(arg)
59
+ fetch(:all_apps).include?(arg)
60
+ end
61
+
58
62
  set :all_stages, _get_all_stages if _all_stages_empty?
59
63
  set :all_apps, _get_all_apps if _apps_empty?
60
64
 
@@ -65,14 +69,14 @@ fetch(:all_stages).each do |stage_name|
65
69
  file = "#{_stages_dir}/#{fetch(:current_stage)}.rb"
66
70
  load file
67
71
  end
72
+ end
68
73
 
69
- fetch(:all_apps).each do |app_name|
70
- desc "Set the target app to '#{app_name}'."
71
- task(app_name) do
72
- set :current_app, app_name
73
- file = "#{_stages_dir}/#{fetch(:current_stage)}/#{fetch(:current_app)}.rb"
74
- load file
75
- end
74
+ fetch(:all_apps).each do |app_name|
75
+ desc "Set the target app to '#{app_name}'."
76
+ task(app_name) do
77
+ set :current_app, app_name
78
+ file = "#{_stages_dir}/#{fetch(:current_stage)}/#{fetch(:current_app)}.rb"
79
+ load file
76
80
  end
77
81
  end
78
82
 
@@ -80,8 +84,10 @@ _potential_stage = ARGV.first
80
84
 
81
85
  if _stage_file_exists?(_potential_stage) && _argument_included_in_stages?(_potential_stage)
82
86
  invoke _potential_stage
87
+ invoke ARGV[1] if _app_file_in_stage_exists?(_potential_stage, ARGV[1]) && _argument_included_in_apps?(ARGV[1])
83
88
  elsif _stage_file_exists?(_default_stage)
84
89
  invoke _default_stage
90
+ invoke ARGV[0] if _app_file_in_stage_exists?(_default_stage, ARGV[0]) && _argument_included_in_apps?(ARGV[0])
85
91
  end
86
92
 
87
93
  namespace :proteus do
@@ -1,5 +1,5 @@
1
1
  module Mina
2
- module Multistage
3
- VERSION = "0.5.0"
2
+ module Proteus
3
+ VERSION = "0.5.2"
4
4
  end
5
5
  end
data/mina_proteus.gemspec CHANGED
@@ -5,7 +5,7 @@ require 'mina/proteus/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "mina-proteus"
8
- spec.version = Mina::Multistage::VERSION
8
+ spec.version = Mina::Proteus::VERSION
9
9
  spec.authors = ["apontini"]
10
10
  spec.email = ["alberto.pontini@gmail.com"]
11
11
  spec.description = %q{Adds multistage and multiapps capabilities to Mina, specifically built for Hanami ruby framework}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mina-proteus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - apontini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-16 00:00:00.000000000 Z
11
+ date: 2019-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mina