Module: BuildTasks::Mixins::DSL
- Included in:
- FPMCookery::DSL, GitBuildpackage::DSL
- Defined in:
- lib/buildtasks/mixins/dsl.rb
Instance Method Summary collapse
- #_validate(symbol, arg, validation) ⇒ Object
- #codename(name = nil) ⇒ Object
- #set_or_return(symbol, arg, validation = nil) ⇒ Object
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) } raise 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 |