Improve naming and optimize methods of the build class

This commit is contained in:
Grzegorz Bizon 2018-03-30 10:32:28 +02:00
parent 1cc96d7a62
commit 0a203f4087
2 changed files with 13 additions and 7 deletions

View file

@ -289,7 +289,9 @@ module Ci
# Variables that do not depend on the environment name. # Variables that do not depend on the environment name.
# #
def simple_variables def simple_variables
scoped_variables(environment: nil).to_runner_variables strong_memoize(:simple_variables) do
scoped_variables(environment: nil).to_runner_variables
end
end end
## ##
@ -303,7 +305,11 @@ module Ci
.to_runner_variables .to_runner_variables
end end
def variables_hash ##
# Regular Ruby hash of scoped variables, without duplicates that are
# possible to be present in an array of hashes returned from `variables`.
#
def scoped_variables_hash
scoped_variables.to_hash scoped_variables.to_hash
end end

View file

@ -2070,7 +2070,7 @@ describe Ci::Build do
end end
end end
describe '#variables_hash' do describe '#scoped_variables_hash' do
context 'when overriding secret variables' do context 'when overriding secret variables' do
before do before do
project.variables.create!(key: 'MY_VAR', value: 'my value 1') project.variables.create!(key: 'MY_VAR', value: 'my value 1')
@ -2078,8 +2078,8 @@ describe Ci::Build do
end end
it 'returns a regular hash created using valid ordering' do it 'returns a regular hash created using valid ordering' do
expect(build.variables_hash).to include('MY_VAR': 'my value 2') expect(build.scoped_variables_hash).to include('MY_VAR': 'my value 2')
expect(build.variables_hash).not_to include('MY_VAR': 'my value 1') expect(build.scoped_variables_hash).not_to include('MY_VAR': 'my value 1')
end end
end end
@ -2090,8 +2090,8 @@ describe Ci::Build do
end end
it 'returns a hash including variable with higher precedence' do it 'returns a hash including variable with higher precedence' do
expect(build.variables_hash).to include('MY_VAR': 'pipeline value') expect(build.scoped_variables_hash).to include('MY_VAR': 'pipeline value')
expect(build.variables_hash).not_to include('MY_VAR': 'myvar') expect(build.scoped_variables_hash).not_to include('MY_VAR': 'myvar')
end end
end end
end end