roundtrip_xml 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/roundtrip_xml/dsl_runtime.rb +4 -1
- data/lib/roundtrip_xml/extractor.rb +7 -1
- data/lib/roundtrip_xml/sexp_dsl_builder.rb +3 -1
- metadata +71 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed71824b02e695d7398d8a74dd35186008b8b4e4
|
4
|
+
data.tar.gz: 0d8cfec6b03c3ab49be2ec57fb85adb65e6e7234
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e4bfa899cbfa7f9aab2dd6356ebbad6704a58ce4abd3ad81f803ce3f8617c10f76dd575b8046767ddc88092f636f220ee7e43766367f7bc34321a08b05a8e4b
|
7
|
+
data.tar.gz: d529ce7d02687948829b7758ab3e82ef21dd61f61948926f6730d0d9e95622cffca4b67176475c83b9407601e7d41776c06123a27c9668d5e2217da9afa88a01
|
@@ -5,6 +5,7 @@ require 'roundtrip_xml/root_cleanroom'
|
|
5
5
|
require 'roundtrip_xml/base_cleanroom'
|
6
6
|
require 'roundtrip_xml/utils'
|
7
7
|
require 'roundtrip_xml/sexp_dsl_builder'
|
8
|
+
require 'roundtrip_xml/extractor'
|
8
9
|
require 'tree'
|
9
10
|
require 'set'
|
10
11
|
# Class which evaluates DSL and read XML files to populate the namespace with classes
|
@@ -23,6 +24,8 @@ class DslRuntime
|
|
23
24
|
|
24
25
|
end
|
25
26
|
|
27
|
+
##
|
28
|
+
# @param root_method Symbol The method of the ROXML object to access its children
|
26
29
|
def populate_raw (raw, root_method = nil)
|
27
30
|
builder = RoxmlBuilder.new (Nokogiri::XML(raw).root), @classes
|
28
31
|
new_classes = builder.build_classes
|
@@ -38,7 +41,7 @@ class DslRuntime
|
|
38
41
|
roxml_root.send("#{root_method}=", new_objs)
|
39
42
|
builder = SexpDslBuilder.new [roxml_root], subclasses, self
|
40
43
|
|
41
|
-
builder.
|
44
|
+
builder.write_full_dsl
|
42
45
|
end
|
43
46
|
end
|
44
47
|
|
@@ -28,11 +28,17 @@ class Extractor
|
|
28
28
|
def similar_fields
|
29
29
|
keys = Set.new @hashes[0].keys
|
30
30
|
diff_keys = Set.new
|
31
|
+
compared = {}
|
31
32
|
@hashes.each do |hash_1|
|
32
33
|
@hashes.each do |hash_2|
|
33
|
-
|
34
|
+
compared[hash_2] ||= Set.new
|
35
|
+
next if hash_1 == hash_2 || compared[hash_1].include?(hash_2)
|
36
|
+
compared[hash_2].add hash_1
|
37
|
+
|
38
|
+
diffs = HashDiff.diff(hash_1, hash_2).map do |diff|
|
34
39
|
diff[1].match(/(\w+)\.?/)[1]
|
35
40
|
end
|
41
|
+
|
36
42
|
diff_keys.merge diffs
|
37
43
|
end
|
38
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roundtrip_xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Usick
|
@@ -66,6 +66,76 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: ruby2ruby
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.3'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubytree
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.9'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.9'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: hashdiff
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.3'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.3'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: multiset
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.5'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.5'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: sexp_processor
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '4.0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '4.0'
|
69
139
|
description: A DSL that reads existing XML, generating an internal schema and using
|
70
140
|
it to create a (somewhat) type safe DSL
|
71
141
|
email: chris.usick@northfieldit.com
|