xmatch 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Rakefile CHANGED
@@ -27,5 +27,5 @@ task :match, :lhs, :rhs do |t, args|
27
27
  puts "** Matching #{args[:lhs]} with #{args[:rhs]}"
28
28
  xml = Matcher::Xml.new(File.read(args[:lhs]))
29
29
  xml.match(File.read(args[:rhs]))
30
- Matcher::HtmlFormatter.new(xml).format
30
+ Matcher::HtmlFormatter.new(xml, :prefix => "test").format
31
31
  end
@@ -11,6 +11,7 @@ module Matcher
11
11
  def initialize(matcher, args = {})
12
12
  @matcher = matcher
13
13
  @report_dir = args[:report_dir] || '/tmp/xmatch'
14
+ @prefix = args[:prefix]
14
15
  end
15
16
 
16
17
  def format
@@ -23,7 +24,9 @@ module Matcher
23
24
  match_data.sort! {|a, b| a.line <=> b.line}
24
25
 
25
26
  FileUtils.mkdir_p(@report_dir)
26
- File.open(File.join(@report_dir, "xmatch.html"), 'w') { |f| f.write(generate_html(match_data)) }
27
+ filename = "xmatch.html"
28
+ filename = "#{@prefix}-xmatch.html" if @prefix
29
+ File.open(File.join(@report_dir, filename), 'w') { |f| f.write(generate_html(match_data)) }
27
30
  end
28
31
 
29
32
  private
@@ -37,26 +40,31 @@ module Matcher
37
40
  def generate_html(data)
38
41
  actual_filename = create_actual_file
39
42
  expected_filename = create_expected_file
40
- xml = @matcher
43
+ xml = @matcher
44
+ completedness = compute_completedness
41
45
  match_info = data
42
46
  html = ERB.new(File.read(TEMPLATE))
43
47
  html.result(binding)
44
48
  end
45
49
 
50
+ def compute_completedness
51
+ (@matcher.matches.size.to_f / @matcher.results.size.to_f * 100).to_i
52
+ end
53
+
46
54
  def create_expected_file
47
- write_xml("expected.xml", @matcher.lhs)
55
+ write_xml("expected", @matcher.lhs)
48
56
  end
49
57
 
50
58
  def create_actual_file
51
- write_xml("actual.xml", @matcher.rhs)
59
+ write_xml("actual", @matcher.rhs)
52
60
  end
53
61
 
54
62
  def write_xml(name, xml)
55
- File.open(File.join(@report_dir, name), 'w') { |f| f.write(xml)}
56
- name
63
+ file_name = "#{name}-#{Time.now.to_i}.xml"
64
+ file_name = "#{@prefix}-#{file_name}" if @prefix
65
+ File.open(File.join(@report_dir, file_name), 'w') { |f| f.write(xml)}
66
+ file_name
57
67
  end
58
-
59
-
60
68
 
61
69
  end
62
70
 
@@ -1,3 +1,3 @@
1
1
  module Representative
2
- VERSION = "0.1.3".freeze
2
+ VERSION = "0.1.4".freeze
3
3
  end
@@ -26,7 +26,9 @@
26
26
  <body>
27
27
 
28
28
  <h2>XMatch Report</h2>
29
- <p><%= xml.mismatches.size %> mismatches found</p>
29
+ <p><%= xml.mismatches.size %> mismatches found from <%= xml.results.size %> elements.<br/>
30
+ Expected xml document is <b><%= completedness %>%</b> 'matched'.
31
+ </p>
30
32
  <p><a href='<%=expected_filename%>'>Expected xml</a> | <a href='<%=actual_filename%>'>Actual xml</a></p>
31
33
 
32
34
  <table border="0" cellspacing="2" cellpadding="5">
@@ -5,9 +5,9 @@ module Matcher
5
5
 
6
6
  class Xml
7
7
 
8
- NOT_FOUND = "Not found compared document"
8
+ NOT_FOUND = "Not found in compared document"
9
9
 
10
- attr_reader :lhs, :rhs, :custom_matchers
10
+ attr_reader :lhs, :rhs, :custom_matchers, :results
11
11
 
12
12
  def initialize(lhs, custom_matchers = {})
13
13
  @lhs = parse(lhs)
@@ -203,6 +203,10 @@ describe Matcher::Xml do
203
203
  Matcher::Xml.new(@lhs).mismatches.should be_empty
204
204
  end
205
205
 
206
+ it "provides all results" do
207
+ Matcher::Xml.new(@lhs).results.should be_empty
208
+ end
209
+
206
210
  it "should be reset when rematching" do
207
211
  rhs = <<-eos
208
212
  <bookstore>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xmatch
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Peter Moran