Skip to content

Instantly share code, notes, and snippets.

@sousk
Created June 29, 2009 00:12
Show Gist options
  • Save sousk/137413 to your computer and use it in GitHub Desktop.
Save sousk/137413 to your computer and use it in GitHub Desktop.
require 'rubygems'
class Trac
def initialize(url)
@url = url
end
def newticket
@url + '/newticket'
end
def input_type_of(name)
case name
when :summary, :owner then :text_field
when :type, :milestone, :version, :priority then :select_list
else nil
end
end
end
class TracOperator
def initialize(trac, type=:safari)
@trac = trac
@klass = case type
when :safari
require 'safariwatir'
Watir::Safari
end
end
def trac
@trac
end
def newticket(params={})
browser.goto trac.newticket
params.each { |name, value|
type = trac.input_type_of(name)
if type
input = browser.send(type, :name, name)
method = case
when input.respond_to?(:set) then :set
when input.respond_to?(:select) then :select
end
input.send(method, value) if method
else
puts "type of #{name} not defined"
end
}
end
def browser
@browser ||= @klass.new
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment