Add DSL for adding nodes in Ci config interface
This commit is contained in:
parent
df25c19699
commit
c2d6d61dac
|
@ -5,10 +5,6 @@ module Gitlab
|
|||
class BeforeScript < Entry
|
||||
include ValidationHelpers
|
||||
|
||||
def keys
|
||||
{}
|
||||
end
|
||||
|
||||
def validate!
|
||||
unless validate_array_of_strings(@value)
|
||||
@errors << 'before_script should be an array of strings'
|
||||
|
|
|
@ -48,12 +48,22 @@ module Gitlab
|
|||
end
|
||||
|
||||
def keys
|
||||
raise NotImplementedError
|
||||
self.class.nodes || {}
|
||||
end
|
||||
|
||||
def validate!
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
class << self
|
||||
attr_reader :nodes
|
||||
|
||||
private
|
||||
|
||||
def add_node(symbol, entry_class)
|
||||
(@nodes ||= {}).merge!(symbol.to_sym => entry_class)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,9 +3,7 @@ module Gitlab
|
|||
class Config
|
||||
module Node
|
||||
class Global < Entry
|
||||
def keys
|
||||
{ before_script: BeforeScript }
|
||||
end
|
||||
add_node :before_script, BeforeScript
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,10 +3,6 @@ module Gitlab
|
|||
class Config
|
||||
module Node
|
||||
class Null < Entry
|
||||
def keys
|
||||
{}
|
||||
end
|
||||
|
||||
def method_missing(*)
|
||||
nil
|
||||
end
|
||||
|
|
|
@ -7,6 +7,10 @@ describe Gitlab::Ci::Config::Node::Global do
|
|||
it 'can contain global config keys' do
|
||||
expect(global.keys).to include :before_script
|
||||
end
|
||||
|
||||
it 'returns a hash' do
|
||||
expect(global.keys).to be_a Hash
|
||||
end
|
||||
end
|
||||
|
||||
context 'when hash is valid' do
|
||||
|
|
Loading…
Reference in New Issue