pkm_level2_converter 0.2.0 → 0.3.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.
- checksums.yaml +4 -4
- data/.gitignore +56 -8
- data/.rspec +3 -3
- data/.rspec_status +5 -5
- data/.rubocop.yml +6 -0
- data/.ruby-version +1 -0
- data/Gemfile +15 -9
- data/Gemfile.lock +49 -12
- data/LICENSE.txt +21 -21
- data/README.md +27 -27
- data/Rakefile +8 -8
- data/bin/console +15 -15
- data/bin/setup +8 -8
- data/exe/pkmlevel2 +21 -22
- data/lib/pkm_level2_converter/ka/pkm/1/XML-Schema_PKM.xsd +2847 -2847
- data/lib/pkm_level2_converter/ka/pkm/1/XML-Schema_PKM_TX.xsd +221 -221
- data/lib/pkm_level2_converter/ka/pkm/2/XML-Schema_PKM.xsd +4082 -4082
- data/lib/pkm_level2_converter/ka/pkm/2/XML-Schema_PKM.xsd.MD5 +1 -1
- data/lib/pkm_level2_converter/ka/pkm/2/XML-Schema_PKM_TX.xsd +178 -178
- data/lib/pkm_level2_converter/ka/pkm/2/XML-Schema_PKM_TX.xsd.MD5 +1 -1
- data/lib/pkm_level2_converter/pkm.rb +57 -0
- data/lib/pkm_level2_converter/pkm_xml.rb +202 -0
- data/lib/pkm_level2_converter/pools.rb +97 -0
- data/lib/pkm_level2_converter/types.rb +112 -0
- data/lib/pkm_level2_converter/version.rb +5 -5
- data/lib/pkm_level2_converter.rb +11 -175
- data/pkm_level2_converter.gemspec +38 -39
- metadata +16 -37
@@ -0,0 +1,97 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'types'
|
4
|
+
|
5
|
+
# Generische Pool-Klasse
|
6
|
+
class Pool
|
7
|
+
# MOVED TO PKM-Class
|
8
|
+
def self.parse_pool(xml_node, path_of_pool, type_of_pool)
|
9
|
+
# pool = @@pools[poolSymbol]
|
10
|
+
node = xml_node.at_xpath(path_of_pool)
|
11
|
+
type_of_pool.new(node)
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize(xml_node, type)
|
15
|
+
@type = type
|
16
|
+
@key = xml_node['key'].to_i
|
17
|
+
children = xml_node.children
|
18
|
+
@items = children.map.with_index { |parameter, index| type.new(parameter, @key, index) }
|
19
|
+
end
|
20
|
+
|
21
|
+
attr_reader :items, :key
|
22
|
+
|
23
|
+
def get_by_reference(key)
|
24
|
+
@items.find { |item| item.key == key }
|
25
|
+
end
|
26
|
+
|
27
|
+
def empty?
|
28
|
+
(@items.nil? || @items.empty?)
|
29
|
+
end
|
30
|
+
|
31
|
+
def length
|
32
|
+
@items.length
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# Spezifische Pool-Klassen
|
37
|
+
|
38
|
+
# Ein XML-Ausgangskontext-Pool kodiert die Auflistung aller Ausgangskontext einesTarifmoduls.
|
39
|
+
class AusgangskontextPool < Pool
|
40
|
+
def self.type
|
41
|
+
Ausgangskontext
|
42
|
+
end
|
43
|
+
|
44
|
+
def initialize(xml_node)
|
45
|
+
super(xml_node, AusgangskontextPool.type)
|
46
|
+
end
|
47
|
+
|
48
|
+
def get_by_parameter(parameter)
|
49
|
+
@items.select { |ausgangskontext| ausgangskontext.contains_parameter?(parameter) }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# Ein XML-Ausgangsparameter-Poolkodiert die Auflistung allerAusgangsparametereinerAusgangsschnittstelle.
|
54
|
+
class AusgangsparameterPool < Pool
|
55
|
+
# TODO... Das passt noch nicht zur Pool-Implementierung
|
56
|
+
def self.type
|
57
|
+
Ausgangsparameter
|
58
|
+
end
|
59
|
+
|
60
|
+
def initialize(xml_node)
|
61
|
+
super(xml_node, AusgangsparameterPool.type)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Ein XML-Ausgangsschnittstelle-Poolkodiert die Auflistung allerAusgangsschnittstellen einesTarifmoduls.
|
66
|
+
class AusgangsschnittstellenPool < Pool
|
67
|
+
def self.type
|
68
|
+
Ausgangsschnittstelle
|
69
|
+
end
|
70
|
+
|
71
|
+
def initialize(xml_node)
|
72
|
+
super(xml_node, AusgangsschnittstellenPool.type)
|
73
|
+
end
|
74
|
+
|
75
|
+
def cr374
|
76
|
+
@items.select(&:cr374?)
|
77
|
+
end
|
78
|
+
|
79
|
+
# def cr374_asst_pool_set
|
80
|
+
# cr374.to_set
|
81
|
+
# end
|
82
|
+
|
83
|
+
def cr374?
|
84
|
+
!cr374.empty?
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# Ein XML-Sprache-Pool kodiert die Auflistung aller unterstützten Sprachen eines Tarifmoduls.
|
89
|
+
class SprachePool < Pool
|
90
|
+
def self.type
|
91
|
+
Sprache
|
92
|
+
end
|
93
|
+
|
94
|
+
def initialize(xml_node)
|
95
|
+
super(xml_node, SprachePool.type)
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Generische Klasse Poolelement
|
4
|
+
class Poolelement
|
5
|
+
class << self
|
6
|
+
def add(instance)
|
7
|
+
@all_instances ||= []
|
8
|
+
@all_instances.push(instance)
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_by_ref(ref)
|
12
|
+
@all_instances.find { |element| element.key == ref }
|
13
|
+
end
|
14
|
+
attr_reader :all_instances
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize(key, index)
|
18
|
+
@key = key + index
|
19
|
+
Poolelement.add(self)
|
20
|
+
end
|
21
|
+
|
22
|
+
attr_reader :key
|
23
|
+
end
|
24
|
+
|
25
|
+
# Pool-Elemente
|
26
|
+
|
27
|
+
# Ein Ausgangsparameter identifiziert die Rolle einer Information, die von der Geräte-Software zur Anzeige,
|
28
|
+
# allgemeinen Ausgabe oder Steuerung verwendet wird.
|
29
|
+
class Ausgangsparameter < Poolelement
|
30
|
+
def initialize(node, index, key)
|
31
|
+
super(key, index)
|
32
|
+
@nr = node.at('./xmlns:nr').text.to_i
|
33
|
+
@name = node.at('./xmlns:name').text
|
34
|
+
end
|
35
|
+
|
36
|
+
attr_reader :nr, :name
|
37
|
+
|
38
|
+
def cr374?
|
39
|
+
(nr >= 9000 && nr <= 9999)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Eine Ausgangsschnittstelle identifiziert eine Schnittstelle der Geräte-Software, über welche
|
44
|
+
# Informationen von einer Strategie an die Geräte-Software übergegeben werden können.
|
45
|
+
class Ausgangsschnittstelle < Poolelement
|
46
|
+
def initialize(asst, key, index)
|
47
|
+
super(key, index)
|
48
|
+
@nr = asst.at('nr').text.to_i
|
49
|
+
@name = asst.at('name').text
|
50
|
+
parameter_pool_raw = asst.at_xpath('//xmlns:parameter-pool')
|
51
|
+
@parameter_pool = AusgangsparameterPool.new(parameter_pool_raw)
|
52
|
+
end
|
53
|
+
|
54
|
+
attr_reader :parameter_pool, :nr, :name
|
55
|
+
|
56
|
+
def cr374?
|
57
|
+
(@nr == 3 || @nr == 4)
|
58
|
+
end
|
59
|
+
|
60
|
+
def ermittle_alle_cr374_ausgangskontexte_zu_ausgangsparametern(ausgangskontext_pool)
|
61
|
+
filtered_parameters = @parameter_pool.items.select(&:cr374?).map do |parameter|
|
62
|
+
puts "Parameter Nr. #{parameter.nr} (\"#{parameter.name}\")"
|
63
|
+
ausgangskontext_pool.get_by_parameter(parameter)
|
64
|
+
end
|
65
|
+
filtered_parameters.flatten.to_set
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# Eine Sprache beschreibt das natürliche Format, in dem eine Ausgabe an den Nutzer erfolgt.
|
70
|
+
class Sprache < Poolelement
|
71
|
+
def initialize(asst, key, index)
|
72
|
+
super(key, index)
|
73
|
+
@nr = asst.at('nr').text.to_i
|
74
|
+
@name = asst.at('name').text
|
75
|
+
end
|
76
|
+
end
|
77
|
+
# <ausgangskontext-pool key="10">
|
78
|
+
# <item>
|
79
|
+
# <name>AK-Deutschlandticket-PV</name>
|
80
|
+
# <sprache>
|
81
|
+
# <ref>3</ref>
|
82
|
+
# </sprache>
|
83
|
+
# <parameter>
|
84
|
+
# <ref>5</ref>
|
85
|
+
# <ref>6</ref>
|
86
|
+
# <ref>7</ref>
|
87
|
+
# <ref>8</ref>
|
88
|
+
# <ref>9</ref>
|
89
|
+
# </parameter>
|
90
|
+
# </item>
|
91
|
+
# </ausgangskontext-pool>
|
92
|
+
|
93
|
+
# Ein Ausgangstext steht für eine statische Information, die von einem als-Text-ausgebbaren Datenelement im Rahmen eines
|
94
|
+
# Ausgangskontexts bereitgestellt wird.
|
95
|
+
class Ausgangskontext
|
96
|
+
def initialize(node, index, key)
|
97
|
+
@key = key + index
|
98
|
+
@name = node.at('./xmlns:name').text
|
99
|
+
@sprache = node.xpath('./xmlns:sprache/xmlns:ref').map do |sprache_ref|
|
100
|
+
Poolelement.get_by_ref(sprache_ref.text.to_i)
|
101
|
+
end
|
102
|
+
@parameter = node.xpath('./xmlns:parameter/xmlns:ref').map do |parameter_ref|
|
103
|
+
Poolelement.get_by_ref(parameter_ref.text.to_i)
|
104
|
+
end
|
105
|
+
# ausgangsparameter # 1..N
|
106
|
+
end
|
107
|
+
attr_reader :key, :name, :sprache, :parameter
|
108
|
+
|
109
|
+
def contains_parameter?(parameter)
|
110
|
+
@parameter.find { |p| p == parameter }
|
111
|
+
end
|
112
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module PkmLevel2Converter
|
4
|
-
VERSION =
|
5
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module PkmLevel2Converter
|
4
|
+
VERSION = '0.3.2'
|
5
|
+
end
|
data/lib/pkm_level2_converter.rb
CHANGED
@@ -1,175 +1,11 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
4
|
-
require_relative
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
class
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
def filename
|
14
|
-
@filename
|
15
|
-
end
|
16
|
-
|
17
|
-
def convertFileName()
|
18
|
-
pn = Pathname.new(@filename)
|
19
|
-
dir, base = File.split(pn)
|
20
|
-
f = base.split('_')
|
21
|
-
org_id_l3 = f[1].to_i
|
22
|
-
org_id_l2 = org_id_l3 + 0x8000
|
23
|
-
f[1] = org_id_l2.to_s
|
24
|
-
return Pathname.new(dir).join(f.join("_"))
|
25
|
-
end
|
26
|
-
|
27
|
-
def save_file(file)
|
28
|
-
#SAVE FILE with NEW name
|
29
|
-
new_file_name = self.convertFileName()
|
30
|
-
output = File.open( new_file_name, "w" )
|
31
|
-
output << file.to_xml(:indent_text => "", :indent => 0).gsub(/>\n/,">")
|
32
|
-
output.close
|
33
|
-
puts "File saved as: #{new_file_name}"
|
34
|
-
end
|
35
|
-
|
36
|
-
def check_xsd(xsd, xml)
|
37
|
-
puts "Check XML-Schema..."
|
38
|
-
xsd = Nokogiri::XML::Schema(xsd)
|
39
|
-
error = xsd.validate(xml)
|
40
|
-
if error.empty?
|
41
|
-
puts "XML-Schema is valid."
|
42
|
-
return true
|
43
|
-
else
|
44
|
-
puts "XML-Schema is invalid."
|
45
|
-
error.each do |e|
|
46
|
-
puts e.message
|
47
|
-
end
|
48
|
-
return false
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def convert_pkm()
|
53
|
-
orig_file_name = @filename
|
54
|
-
if File.file?(orig_file_name)
|
55
|
-
@xml_doc = File.open(orig_file_name) { |f| Nokogiri::XML(f) }
|
56
|
-
case @xml_doc.root.name
|
57
|
-
when "pv-km"
|
58
|
-
convert_ids_pvkm
|
59
|
-
when "dl-km"
|
60
|
-
convert_ids_dlkm
|
61
|
-
when "rntm"
|
62
|
-
convert_ids_rntm
|
63
|
-
else
|
64
|
-
puts(@xml_doc.root.name + " wird nicht unterstützt.")
|
65
|
-
end
|
66
|
-
|
67
|
-
if xml_is_valid_pkm(@xml_doc)
|
68
|
-
save_file(@xml_doc)
|
69
|
-
end
|
70
|
-
else
|
71
|
-
puts "File ('#{orig_file_name}') not found."
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def xml_is_valid_pkm(xml)
|
76
|
-
#xsd = File.read("./ka/pkm/1/XML-Schema_PKM.xsd")
|
77
|
-
path=''
|
78
|
-
case @xml_doc.root.name
|
79
|
-
when "pv-km"
|
80
|
-
path = './pkm_level2_converter/ka/pkm/1/XML-Schema_PKM.xsd'
|
81
|
-
when "dl-km"
|
82
|
-
path = './pkm_level2_converter/ka/pkm/1/XML-Schema_PKM.xsd'
|
83
|
-
when "rntm"
|
84
|
-
path = './pkm_level2_converter/ka/pkm/2/XML-Schema_PKM.xsd'
|
85
|
-
end
|
86
|
-
|
87
|
-
file_path = File.join(File.dirname(__FILE__), path)
|
88
|
-
|
89
|
-
xsd = File.read(file_path)
|
90
|
-
return self.check_xsd(xsd,xml)
|
91
|
-
end
|
92
|
-
|
93
|
-
def convert_xpath_l3_id(node, x_path)
|
94
|
-
map = node.at_xpath x_path
|
95
|
-
id = map.content.to_i
|
96
|
-
map.content = (id + 0x8000).to_s
|
97
|
-
end
|
98
|
-
|
99
|
-
def convert_ids_dlkm
|
100
|
-
#Organisations-ID des DL:
|
101
|
-
#dl-km/organisation/id
|
102
|
-
convert_xpath_l3_id(@xml_doc, 'xmlns:dl-km/xmlns:organisation/xmlns:id')
|
103
|
-
puts "Converted following IDs:"
|
104
|
-
puts "/dl-km/organisation/id = " + @xml_doc.xpath('/xmlns:dl-km/xmlns:organisation/xmlns:id').text
|
105
|
-
|
106
|
-
@xml_doc.xpath('/xmlns:dl-km/xmlns:kontrollmodul-pool/xmlns:item').each do |node|
|
107
|
-
|
108
|
-
#Organisations-ID des PV:
|
109
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/organisation/id
|
110
|
-
convert_xpath_l3_id(node, 'xmlns:moduldaten/xmlns:organisation/xmlns:id')
|
111
|
-
puts "# dl-km/kontrollmodul-pool/item/moduldaten/organisation/id = " + node.xpath('xmlns:moduldaten/xmlns:organisation/xmlns:id').text
|
112
|
-
#Für PVKM zulässige Organisations-IDs der DL:
|
113
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/organisation-pool/item/id
|
114
|
-
node.xpath('xmlns:moduldaten/xmlns:organisation-pool/xmlns:item').each do |child|
|
115
|
-
convert_xpath_l3_id(child, 'xmlns:id')
|
116
|
-
puts "## dl-km/kontrollmodul-pool/item/moduldaten/organisation-pool/item/id = " + child.xpath('xmlns:id').text
|
117
|
-
end
|
118
|
-
end
|
119
|
-
#Für Anzeige von KVP als Klartext:
|
120
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/nummerninterpretation-pool/item[nr=2]/nummerntext-pool/item/nr
|
121
|
-
end
|
122
|
-
|
123
|
-
def convert_ids_pvkm
|
124
|
-
#Organisations-ID des DL:
|
125
|
-
#dl-km/organisation/id
|
126
|
-
# convert_xpath_l3_id(@xml_doc, 'xmlns:dl-km/xmlns:organisation/xmlns:id')
|
127
|
-
# puts "Converted following IDs:"
|
128
|
-
# puts "/dl-km/organisation/id = " + @xml_doc.xpath('/xmlns:dl-km/xmlns:organisation/xmlns:id').text
|
129
|
-
|
130
|
-
# @xml_doc.xpath('/xmlns:dl-km/xmlns:kontrollmodul-pool/xmlns:item').each do |node|
|
131
|
-
node = @xml_doc.xpath('/xmlns:pv-km')
|
132
|
-
#Organisations-ID des PV:
|
133
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/organisation/id
|
134
|
-
# convert_xpath_l3_id(node, '/xmlns:pv-km/xmlns:organisation/xmlns:id')
|
135
|
-
convert_xpath_l3_id(node, 'xmlns:organisation/xmlns:id')
|
136
|
-
puts "# pv-km/organisation/id = " + node.xpath('xmlns:organisation/xmlns:id').text
|
137
|
-
#Für PVKM zulässige Organisations-IDs der DL:
|
138
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/organisation-pool/item/id
|
139
|
-
node.xpath('xmlns:organisation-pool/xmlns:item').each do |child|
|
140
|
-
convert_xpath_l3_id(child, 'xmlns:id')
|
141
|
-
puts "## pv-km/organisation-pool/item/id = " + child.xpath('xmlns:id').text
|
142
|
-
end
|
143
|
-
# end
|
144
|
-
#Für Anzeige von KVP als Klartext:
|
145
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/nummerninterpretation-pool/item[nr=2]/nummerntext-pool/item/nr
|
146
|
-
end
|
147
|
-
|
148
|
-
def convert_ids_rntm
|
149
|
-
#Organisations-ID des RN:
|
150
|
-
#rntm/herausgeber/nr
|
151
|
-
convert_xpath_l3_id(@xml_doc, 'xmlns:rntm/xmlns:herausgeber/xmlns:nr')
|
152
|
-
puts "Converted following IDs:"
|
153
|
-
puts "rntm/herausgeber/nr = " + @xml_doc.xpath('xmlns:rntm/xmlns:herausgeber/xmlns:nr').text
|
154
|
-
|
155
|
-
@xml_doc.xpath('/xmlns:rntm/xmlns:tarifmodul-pool/xmlns:item').each do |node|
|
156
|
-
|
157
|
-
#Organisations-ID des PV:
|
158
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/organisation/id
|
159
|
-
|
160
|
-
convert_xpath_l3_id(node, 'xmlns:tarifmodul/xmlns:herausgeber/xmlns:nr')
|
161
|
-
puts "# /rntm/tarifmodul-pool/item/tarifmodul/herausgeber/nr/ = " + node.xpath('xmlns:tarifmodul/xmlns:herausgeber/xmlns:nr').text
|
162
|
-
#Für PVKM zulässige Organisations-IDs der DL:
|
163
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/organisation-pool/item/id
|
164
|
-
node.xpath('xmlns:tarifmodul/xmlns:organisation-pool/xmlns:item').each do |child|
|
165
|
-
convert_xpath_l3_id(child, 'xmlns:nr')
|
166
|
-
puts "## /rntm/tarifmodul-pool/item/tarifmodul/organisation-pool/item/nr = " + child.xpath('xmlns:nr').text
|
167
|
-
end
|
168
|
-
end
|
169
|
-
#Für Anzeige von KVP als Klartext:
|
170
|
-
#dl-km/kontrollmodul-pool/item/moduldaten/nummerninterpretation-pool/item[nr=2]/nummerntext-pool/item/nr
|
171
|
-
end
|
172
|
-
|
173
|
-
end
|
174
|
-
|
175
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'pkm_level2_converter/version'
|
4
|
+
require_relative 'pkm_level2_converter/pkm'
|
5
|
+
require_relative 'pkm_level2_converter/pkm_xml'
|
6
|
+
|
7
|
+
module PkmLevel2Converter
|
8
|
+
class Error < StandardError; end
|
9
|
+
PKM = ::PKM
|
10
|
+
PKMXml = ::PKMXml
|
11
|
+
end
|
@@ -1,39 +1,38 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name =
|
7
|
-
spec.version = PkmLevel2Converter::VERSION
|
8
|
-
spec.authors = [
|
9
|
-
spec.email = [
|
10
|
-
|
11
|
-
spec.summary =
|
12
|
-
# spec.description = "TODO: Write a longer description or delete this line."
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
15
|
-
spec.required_ruby_version =
|
16
|
-
|
17
|
-
#spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
18
|
-
|
19
|
-
spec.metadata[
|
20
|
-
spec.metadata[
|
21
|
-
#spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
22
|
-
|
23
|
-
# Specify which files should be added to the gem when it is released.
|
24
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
27
|
-
end
|
28
|
-
spec.bindir =
|
29
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
|
-
spec.require_paths = [
|
31
|
-
|
32
|
-
# Uncomment to register a new dependency of your gem
|
33
|
-
# spec.add_dependency "example-gem", "~> 1.0"
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/pkm_level2_converter/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'pkm_level2_converter'
|
7
|
+
spec.version = PkmLevel2Converter::VERSION
|
8
|
+
spec.authors = ['Francis Doege']
|
9
|
+
spec.email = ['hello@francisdoege.com']
|
10
|
+
|
11
|
+
spec.summary = 'Converts PKM modules for testing'
|
12
|
+
# spec.description = "TODO: Write a longer description or delete this line."
|
13
|
+
spec.homepage = 'https://rubygems.org/gems/pkm_level2_converter'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
spec.required_ruby_version = '>= 3.2.2'
|
16
|
+
|
17
|
+
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
18
|
+
|
19
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
20
|
+
spec.metadata['source_code_uri'] = 'https://github.com/justusjonas74/pkm_level2_converter'
|
21
|
+
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
22
|
+
|
23
|
+
# Specify which files should be added to the gem when it is released.
|
24
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
27
|
+
end
|
28
|
+
spec.bindir = 'exe'
|
29
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ['lib']
|
31
|
+
|
32
|
+
# Uncomment to register a new dependency of your gem
|
33
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
34
|
+
|
35
|
+
# For more information and examples about making a new gem, checkout our
|
36
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
37
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
38
|
+
end
|
metadata
CHANGED
@@ -1,44 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pkm_level2_converter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francis Doege
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
name: nokogiri
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.10.4
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 1.10.4
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '3.2'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '3.2'
|
41
|
-
description:
|
11
|
+
date: 2023-08-08 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description:
|
42
14
|
email:
|
43
15
|
- hello@francisdoege.com
|
44
16
|
executables:
|
@@ -49,6 +21,8 @@ files:
|
|
49
21
|
- ".gitignore"
|
50
22
|
- ".rspec"
|
51
23
|
- ".rspec_status"
|
24
|
+
- ".rubocop.yml"
|
25
|
+
- ".ruby-version"
|
52
26
|
- Gemfile
|
53
27
|
- Gemfile.lock
|
54
28
|
- LICENSE.txt
|
@@ -64,6 +38,10 @@ files:
|
|
64
38
|
- lib/pkm_level2_converter/ka/pkm/2/XML-Schema_PKM.xsd.MD5
|
65
39
|
- lib/pkm_level2_converter/ka/pkm/2/XML-Schema_PKM_TX.xsd
|
66
40
|
- lib/pkm_level2_converter/ka/pkm/2/XML-Schema_PKM_TX.xsd.MD5
|
41
|
+
- lib/pkm_level2_converter/pkm.rb
|
42
|
+
- lib/pkm_level2_converter/pkm_xml.rb
|
43
|
+
- lib/pkm_level2_converter/pools.rb
|
44
|
+
- lib/pkm_level2_converter/types.rb
|
67
45
|
- lib/pkm_level2_converter/version.rb
|
68
46
|
- pkm_level2_converter.gemspec
|
69
47
|
homepage: https://rubygems.org/gems/pkm_level2_converter
|
@@ -72,7 +50,8 @@ licenses:
|
|
72
50
|
metadata:
|
73
51
|
homepage_uri: https://rubygems.org/gems/pkm_level2_converter
|
74
52
|
source_code_uri: https://github.com/justusjonas74/pkm_level2_converter
|
75
|
-
|
53
|
+
rubygems_mfa_required: 'true'
|
54
|
+
post_install_message:
|
76
55
|
rdoc_options: []
|
77
56
|
require_paths:
|
78
57
|
- lib
|
@@ -80,15 +59,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
59
|
requirements:
|
81
60
|
- - ">="
|
82
61
|
- !ruby/object:Gem::Version
|
83
|
-
version: 2.
|
62
|
+
version: 3.2.2
|
84
63
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
64
|
requirements:
|
86
65
|
- - ">="
|
87
66
|
- !ruby/object:Gem::Version
|
88
67
|
version: '0'
|
89
68
|
requirements: []
|
90
|
-
rubygems_version: 3.
|
91
|
-
signing_key:
|
69
|
+
rubygems_version: 3.4.16
|
70
|
+
signing_key:
|
92
71
|
specification_version: 4
|
93
72
|
summary: Converts PKM modules for testing
|
94
73
|
test_files: []
|