Top Level Namespace

Instance Method Summary collapse

Instance Method Details

#compile(array) ⇒ Object



1
2
3
4
5
6
# File 'lib/dockerfile-dsl/compile.rb', line 1

def compile array
  array.map do |entry|
    [entry[0].to_s.upcase, *entry[1..-1].map { |o| compile_object o }] \
        .join(' ') + "\n"
  end.join
end

#compile_object(object) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/dockerfile-dsl/compile.rb', line 8

def compile_object object
  case object
  when Array
    '[' + object.map{ |o| o.to_s.dump }.join(', ') + ']'
  when -> (o) { o.respond_to? :to_s }
    object.to_s
  else
    raise "Invalid object is detected.: #{object}"
  end
end

#dockerfile(&block) ⇒ Object



7
8
9
# File 'lib/dockerfile-dsl/function.rb', line 7

def dockerfile &block
  compile block_is_array(&block)
end