Class: Dockly::BashBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/dockly/bash_builder.rb

Constant Summary collapse

SNIPPET_PATH =
File.expand_path("../../../snippets", __FILE__)

Class Method Summary collapse

Class Method Details

.generate_snippet_for(name, opts, defaults = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/dockly/bash_builder.rb', line 8

def self.generate_snippet_for(name, opts, defaults={})
  define_method(name) do |*args|
    zipped_array = opts.zip(args).flatten
    snippet = File.read(File.join(SNIPPET_PATH, "#{name}.erb"))
    hash = Hash[*zipped_array].delete_if { |_,v| v.nil? }
    data = defaults.merge(hash)
    ERB.new(snippet).result(binding)
  end
end