class Hocho::PropertyProviders::RubyScript

Constants

Template

Public Class Methods

new(name: nil, script: nil, file: nil) click to toggle source
# File lib/hocho/property_providers/ruby_script.rb, line 4
def initialize(name: nil, script: nil, file: nil)
  @template = case
  when script
    compile(script, "(#{name || 'ruby_script'})")
  when file
    compile(File.read(file), name ? "(#{name})" : file)
  end
end

Public Instance Methods

determine(host) click to toggle source
# File lib/hocho/property_providers/ruby_script.rb, line 13
def determine(host)
  @template.new(host).run
  nil
end

Private Instance Methods

compile(script, name) click to toggle source
# File lib/hocho/property_providers/ruby_script.rb, line 22
def compile(script, name)
  binding.eval("Class.new(Template) { def run;\n#{script}\nend; }", name, 0)
end