blob: fa14e687665611e9defb0359354f4aaf9add6795 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
require 'socket'
require_relative 'keyword'
module RCM
# Given (e.g. run on host foo)
class Given < Keyword
def initialize(dsl_id)
super(dsl_id)
@conds = {}
end
def is(arg) = arg
def method_missing(method_name, *args) = @conds[method_name] = args.first
def respond_to_missing? = true
def met?
return false if @conds.key?(:hostname) && Socket.gethostname != @conds[:hostname].to_s
true
end
end
# Add 'only_when' to DSL
class DSL
def given(&block)
conds = Given.new(id)
conds.instance_eval(&block)
@conds_met = conds.met?
end
end
end
|