Module: BuildTasks::Mixins::DSL

Included in:
FPMCookery::DSL, GitBuildpackage::DSL
Defined in:
lib/buildtasks/mixins/dsl.rb

Instance Method Summary collapse

Instance Method Details

#_validate(symbol, arg, validation) ⇒ Object



4
5
6
7
8
9
# File 'lib/buildtasks/mixins/dsl.rb', line 4

def _validate(symbol, arg, validation)
  kinds = Array(validation.fetch(:kind_of))
  unless kinds.any? { |k| arg.is_a?(k) }
    fail ArgumentError, "#{symbol} must be of kind #{kinds}"
  end
end

#codename(name = nil) ⇒ Object



21
22
23
24
25
# File 'lib/buildtasks/mixins/dsl.rb', line 21

def codename(name = nil)
  @codename ||= `lsb_release -cs`.strip.to_sym
  return @codename if name.nil?
  yield if name == @codename
end

#set_or_return(symbol, arg, validation = nil) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/buildtasks/mixins/dsl.rb', line 11

def set_or_return(symbol, arg, validation = nil)
  iv_symbol = "@#{symbol}".to_sym
  if arg.nil? && instance_variable_defined?(iv_symbol)
    instance_variable_get(iv_symbol)
  else
    _validate(symbol, arg, validation) if validation
    instance_variable_set(iv_symbol, arg)
  end
end