Top Level Namespace
Instance Method Summary collapse
- #add_to_data(test_name, package_name, class_name, data) ⇒ Object
- #main ⇒ Object
- #open_document(fn) ⇒ Object
- #parse_class_name(s) ⇒ Object
- #parse_package_name(s) ⇒ Object
- #process_file(fn, data) ⇒ Object
- #process_files(files) ⇒ Object
- #process_testcase(testcase, data) ⇒ Object
- #render_template(data) ⇒ Object
- #sentencize(s) ⇒ Object
- #template ⇒ Object
- #titlize(s) ⇒ Object
Instance Method Details
#add_to_data(test_name, package_name, class_name, data) ⇒ Object
56 57 58 59 60 |
# File 'lib/junitdoc.rb', line 56 def add_to_data test_name, package_name, class_name, data data[package_name] ||= {} data[package_name][class_name] ||= [] data[package_name][class_name] << test_name end |
#main ⇒ Object
4 5 6 7 8 9 |
# File 'lib/junitdoc.rb', line 4 def main files = Dir.glob ARGV data = process_files files doc = render_template data puts doc end |
#open_document(fn) ⇒ Object
29 30 31 |
# File 'lib/junitdoc.rb', line 29 def open_document fn File.open(fn) { |f| Nokogiri::XML(f) } end |
#parse_class_name(s) ⇒ Object
48 49 50 |
# File 'lib/junitdoc.rb', line 48 def parse_class_name s s.rpartition('.').last end |
#parse_package_name(s) ⇒ Object
52 53 54 |
# File 'lib/junitdoc.rb', line 52 def parse_package_name s s.rpartition('.').first end |
#process_file(fn, data) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/junitdoc.rb', line 22 def process_file fn, data doc = open_document fn doc.xpath('//testcase').each do |testcase| process_testcase testcase, data end end |
#process_files(files) ⇒ Object
11 12 13 14 15 |
# File 'lib/junitdoc.rb', line 11 def process_files files data = {} files.each { |fn| process_file fn, data } data end |
#process_testcase(testcase, data) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/junitdoc.rb', line 33 def process_testcase testcase, data test_name = sentencize testcase[:name] package_name = parse_package_name testcase[:classname] class_name = titlize parse_class_name(testcase[:classname]) add_to_data test_name, package_name, class_name, data end |
#render_template(data) ⇒ Object
17 18 19 20 |
# File 'lib/junitdoc.rb', line 17 def render_template data engine = Haml::Engine.new(template) engine.render 'teh data', :data => data end |
#sentencize(s) ⇒ Object
40 41 42 |
# File 'lib/junitdoc.rb', line 40 def sentencize s s.split(/(?=[A-Z0-9])/).map(&:downcase).join ' ' end |
#template ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/junitdoc.rb', line 62 def template %q( !!! 5 %html{:lang => 'en'} %head %title JUnit Test Descriptions %style body { font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; margin-left: 20px } %style h1 { font-size: 24px; margin-bottom: 0px } %style h2 { margin-left: 0px; margin-bottom: 0px; font-size: 18px } %style h2 span { font-size: 12px } %style ul { margin-top: 0px } %body %header %h1 Onesite Server-Side Test Suite %section - data.each do |package_name, classes| - classes.each do |class_name, tests| %h2< = class_name %span = "(#{package_name})" %ul - tests.each do |test_name| %li< = test_name ) end |
#titlize(s) ⇒ Object
44 45 46 |
# File 'lib/junitdoc.rb', line 44 def titlize s s.split(/(?=[A-Z0-9])/)[0...-1].join ' ' end |