lib/cello/pageobjects/recorder.rb in cello-0.0.21 vs lib/cello/pageobjects/recorder.rb in cello-0.0.23

- old
+ new

@@ -1,32 +1,35 @@ require "rest-client" class Elem < Struct.new(:element_id, :element_name, :element_type); end -class Recorder - def get_elements page_url - foo = RestClient.get page_url - title = foo.scan(/\<title\>(.*?)\<\/title\>/)[0].to_s.gsub!(/\W+/, ' ').strip!.split(" ").each { |w| w.capitalize! }.join("") - page = "require 'cello'\n" - page += "class #{title} < Cello::PageObjects::Page\n\n" - ary = Array.new() - foo.scan(/\<input(.*?)\>/).each do |raw_element| - bar = Elem.new nil, nil, nil - raw_element.to_s.split(" ").each do |element| - bar.element_type = element.split("=")[1].gsub!(/\W+/, '') if !element.scan(/type/).empty? - bar.element_name = element.split("=")[1].gsub!(/\W+/, '') if !element.scan(/name/).empty? - bar.element_id = element.split("=")[1].gsub!(/\W+/, '') if !element.scan(/id/).empty? +class Cello::PageObjects::Recorder + class << self + def record args + page_url = args.shift + page_source = RestClient.get page_url + title = page_source.scan(/\<title\>(.*?)\<\/title\>/)[0].to_s.gsub!(/\W+/, ' ').strip!.split(" ").each { |w| w.capitalize! }.join("") + page = "require 'cello'\n\n" + page += "class #{title} < Cello::PageObjects::Page\n\n" + ary = Array.new() + page_source.scan(/\<input(.*?)\>/).each do |raw_element| + element_object = Elem.new nil, nil, nil + raw_element.to_s.split(" ").each do |element| + element_object.element_type = element.split("=")[1].gsub!(/\W+/, '') if !element.scan(/type/).empty? + element_object.element_name = element.split("=")[1].gsub!(/\W+/, '') if !element.scan(/name/).empty? + element_object.element_id = element.split("=")[1].gsub!(/\W+/, '') if !element.scan(/id/).empty? + end + ary.push element_object if (!element_object.element_type.nil? && (!element_object.element_id.nil? || !element_object.element_name.nil?)) end - ary.push bar if (!bar.element_type.nil? && (!bar.element_id.nil? || !bar.element_name.nil?)) - end - ary.each do |yup| - key = ":id" - yup.element_name = yup.element_id if yup.element_name.nil? - key = ":name" if yup.element_id.nil? - yup.element_id = yup.element_name if yup.element_id.nil? - page += " element :#{yup.element_name}, :#{yup.element_type}, #{key} => '#{yup.element_id }'\n" if !yup.element_type.empty? && !yup.element_type != "hidden" + ary.each do |yup| + key = ":id" + yup.element_name = yup.element_id if yup.element_name.nil? + key = ":name" if yup.element_id.nil? + yup.element_id = yup.element_name if yup.element_id.nil? + page += " element :#{yup.element_name}, :#{yup.element_type}, #{key} => '#{yup.element_id }'\n" if !yup.element_type.empty? && !yup.element_type != "hidden" + end + page += "\n url(\"#{page_url}\")\n\n" + page += "end\n" + File.open("./features/pages/#{title}.rb", 'w') {|f| f.write( page ) } end - page += "\n url(\"#{page_url}\")\n\n" - page += "end\n" - page end end