normalizexml 0.1.2

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.
@@ -0,0 +1,145 @@
1
+ require 'spec_helper'
2
+
3
+ describe NormalizeXml::Parser do
4
+
5
+ let(:parser) { NormalizeXml::Parser.new }
6
+ let(:outdir) { Pathname.new 'tmp/spec/normalizexml.parser' }
7
+ let(:srcxml) { 'spec/data/test.xml' }
8
+ let(:srcxml2) { 'spec/data/test2.xml' }
9
+
10
+
11
+ before :each do
12
+ out = Pathname.new outdir
13
+ out.rmtree if out.exist? && out.directory?
14
+ # Parser does NOT create the output directory.
15
+ out.mkpath
16
+ end
17
+
18
+
19
+ let(:outfile) { outdir + 'test.nml.xml' }
20
+ let(:outfile2) { outdir + 'test2.nml.xml' }
21
+
22
+
23
+ context "#normalize" do
24
+
25
+ it "generates an output file" do
26
+ parser.infile = srcxml
27
+ parser.outfile = outfile.to_s
28
+ parser.normalize()
29
+
30
+ expect(outfile.exist?).to eq true
31
+ end
32
+
33
+
34
+
35
+ let(:outputfile1) do
36
+ parser.infile = srcxml
37
+ parser.outfile = outfile.to_s
38
+ parser.normalize()
39
+
40
+ outfile
41
+ end
42
+
43
+ let(:outputfile2) do
44
+ parser.infile = srcxml
45
+ parser.outfile = outfile2.to_s
46
+ parser.normalize()
47
+
48
+ outfile2
49
+ end
50
+
51
+ context "outputfile" do
52
+
53
+ it "starts with an XML declaration statement" do
54
+ lines = file_to_array(outputfile1)
55
+ lines[0].should include '<?xml version="1.0"?>'
56
+ end
57
+
58
+ it "contains GuidelineRoot opening and closing tags" do
59
+ lines = file_to_array(outputfile1)
60
+ lines[1].should include "<GuidelineRoot>"
61
+ lines[lines.size - 1].should include "</GuidelineRoot>"
62
+ end
63
+
64
+ it "all IDs are normalized to 0" do
65
+ lines = file_to_array(outputfile1)
66
+ lines.each do |line|
67
+ if line.include?(' Id="')
68
+ line.should include 'Id="0"'
69
+ end
70
+ end
71
+ end
72
+
73
+ it "AssignTo lines are correctly pretty printed" do
74
+ lines = file_to_array(outputfile2)
75
+ lines.each do |line|
76
+ if line.include?('<AssignTo>')
77
+ line.should_not include '</AssignTo>'
78
+ end
79
+ end
80
+ end
81
+
82
+
83
+ context "Order attributes" do
84
+
85
+ it "are stripped from Compute elements" do
86
+ lines = file_to_array(outputfile2)
87
+ lines.each do |line|
88
+ if line.include?('<Compute')
89
+ line.should_not include 'Order='
90
+ end
91
+ end
92
+ end
93
+
94
+ it "are stripped from AssignTo elements" do
95
+ lines = file_to_array(outputfile2)
96
+ lines.each do |line|
97
+ if line.include?('<AssignTo')
98
+ line.should_not include 'Order='
99
+ end
100
+ end
101
+ end
102
+
103
+ it "are stripped from Message elements" do
104
+ lines = file_to_array(outputfile2)
105
+ lines.each do |line|
106
+ if line.include?('<Message')
107
+ line.should_not include 'Order='
108
+ end
109
+ end
110
+ end
111
+ end # context "Order attributes"
112
+
113
+
114
+ context "Id attributes" do
115
+
116
+ it "are stripped from DPM elements" do
117
+ lines = file_to_array(outputfile2)
118
+ lines.each do |line|
119
+ if line.include?('<DPM')
120
+ line.should_not include 'Id='
121
+ end
122
+ end
123
+ end
124
+
125
+ it "are stripped from Ruleset elements" do
126
+ lines = file_to_array(outputfile2)
127
+ lines.each do |line|
128
+ if line.include?('<Ruleset')
129
+ line.should_not include 'Id='
130
+ end
131
+ end
132
+ end
133
+
134
+ it "are stripped from Rule elements" do
135
+ lines = file_to_array(outputfile2)
136
+ lines.each do |line|
137
+ if line.include?('<Rule')
138
+ line.should_not include 'Id='
139
+ end
140
+ end
141
+ end
142
+ end # context "Order attributes"
143
+ end # context "outputfile"
144
+ end # context "#normalize"
145
+ end
@@ -0,0 +1,42 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.run_all_when_everything_filtered = true
9
+ config.filter_run :focus
10
+
11
+ # Run specs in random order to surface order dependencies. If you find an
12
+ # order dependency and want to debug it, you can fix the order by providing
13
+ # the seed, which is printed after each run.
14
+ # --seed 1234
15
+ config.order = 'random'
16
+
17
+ # Enable both 'should' and 'expect' syntax
18
+ config.expect_with :rspec do |c|
19
+ # Disable the `expect` sytax...
20
+ #c.syntax = :should
21
+
22
+ # ...or disable the `should` syntax...
23
+ #c.syntax = :expect
24
+
25
+ # ...or explicitly enable both
26
+ c.syntax = [:should, :expect]
27
+ end
28
+
29
+ end
30
+
31
+
32
+ require_relative '../lib/normalizexml'
33
+ require 'pathname'
34
+
35
+ def file_to_array(filepath)
36
+ dump = []
37
+ File.open(filepath) do |f|
38
+ f.each_line {|line| dump << line}
39
+ end
40
+ dump
41
+ end
42
+
metadata ADDED
@@ -0,0 +1,183 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: normalizexml
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Jeff McAffee
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-08-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-mocks
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: nokogiri
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: ktcommon
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: user-choices
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: NormalizeXml is a utility to normalize XML files for easy comparison.
126
+ email:
127
+ - jeff@ktechsystems.com
128
+ executables:
129
+ - normalizexml
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - ".gitignore"
134
+ - ".rspec"
135
+ - Gemfile
136
+ - LICENSE
137
+ - README.md
138
+ - bin/normalizexml
139
+ - docs/README.CODE.txt
140
+ - lib/normalizexml.rb
141
+ - lib/normalizexml/config.rb
142
+ - lib/normalizexml/controller.rb
143
+ - lib/normalizexml/normalize_xml_task.rb
144
+ - lib/normalizexml/parser.rb
145
+ - lib/normalizexml/version.rb
146
+ - normalizexml.gemspec
147
+ - rakefile.rb
148
+ - spec/data/test.xml
149
+ - spec/data/test2.xml
150
+ - spec/normalize_xml_task_spec.rb
151
+ - spec/parser_spec.rb
152
+ - spec/spec_helper.rb
153
+ homepage: https://github.com/jmcaffee/normalizexml
154
+ licenses:
155
+ - MIT
156
+ metadata: {}
157
+ post_install_message:
158
+ rdoc_options: []
159
+ require_paths:
160
+ - lib
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements: []
172
+ rubyforge_project:
173
+ rubygems_version: 2.3.0
174
+ signing_key:
175
+ specification_version: 4
176
+ summary: Normalize XML files for easy comparison
177
+ test_files:
178
+ - spec/data/test.xml
179
+ - spec/data/test2.xml
180
+ - spec/normalize_xml_task_spec.rb
181
+ - spec/parser_spec.rb
182
+ - spec/spec_helper.rb
183
+ has_rdoc: