class RSFHelper::Package

Public Class Methods

new(drb_obj, parent_url, package) click to toggle source
# File lib/rsfhelper.rb, line 44
def initialize(drb_obj, parent_url, package)

  @obj = drb_obj

  @url = File.join(parent_url, package + '.rsf')
  doc = Rexle.new URI.open(@url, 'UserAgent' => 'ClientRscript').read
  a = doc.root.xpath 'job/attribute::id'

  a.each do |attr|
    method_name = attr.gsub('-','_')
    method = "def %s(*args); run_job('%s', args) ; end" % \
                                                        ([method_name] * 2)
    self.instance_eval(method)
  end

end

Private Instance Methods

run_job(method_name, *args) click to toggle source
# File lib/rsfhelper.rb, line 63
def run_job(method_name, *args)

  args.flatten!(1)
  params = args.pop if args.find {|x| x.is_a? Hash}
  a = ['//job:' + method_name, @url, args].flatten(1)
  params ? @obj.run(a, params) : @obj.run(a)
end