1
0
Fork 0
mirror of https://github.com/capistrano/capistrano synced 2023-03-27 23:21:18 -04:00

Allow roles to be fetched with an array

For the case where the array may be stored in a variable, for example:

    set :my_roles, [:app, :web]

    on roles fetch(:my_roles) do
      #
    end

This will allow https://github.com/capistrano/rails/pull/30 to be
refactored
This commit is contained in:
seenmyfate 2013-11-22 15:49:37 +00:00
parent aa4902784c
commit ac95f5147b
3 changed files with 18 additions and 1 deletions

View file

@ -25,6 +25,7 @@ Reverse Chronological Order:
* Add command line option to control role filtering (@andytinycat)
* Make use of recent changes in Rake to over-ride the application name (@shime)
* Readme corrections (@nathanstitt)
* Allow roles to be fetched with a variable containing an array (@seenmyfate)
## `3.0.1`

View file

@ -40,7 +40,7 @@ module Capistrano
end
def roles(*names)
env.roles_for(names)
env.roles_for(names.flatten)
end
def release_roles(*names)

View file

@ -60,6 +60,14 @@ describe Capistrano::DSL do
end
end
describe 'fetching servers by an array of roles' do
subject { dsl.roles([:app]) }
it 'returns the servers' do
expect(subject.map(&:hostname)).to eq %w{example3.com example4.com}
end
end
describe 'fetching filtered servers by role' do
subject { dsl.roles(:app, filter: :active) }
@ -148,6 +156,14 @@ describe Capistrano::DSL do
end
end
describe 'fetching servers by an array of roles' do
subject { dsl.roles([:app]) }
it 'returns the servers' do
expect(subject.map(&:hostname)).to eq %w{example3.com example4.com}
end
end
describe 'fetching filtered servers by role' do
subject { dsl.roles(:app, filter: :active) }