opener-kaf2json 1.0.6-java → 1.0.7-java
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/README.md +1 -11
- data/lib/opener/kaf_to_json.rb +11 -5
- data/lib/opener/kaf_to_json/error_layer.rb +90 -0
- data/lib/opener/kaf_to_json/version.rb +1 -1
- data/opener-kaf2json.gemspec +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b118beaf31c6aee85706eae29cb86c0955d4f88
|
4
|
+
data.tar.gz: 00331c7616df86de908012522b6d20b0c6e625e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 245ac3d40b4b97bb7fc2ff61f1f78e0705fe191d329736e3b9e1ee62af71179d8343cbd5234553b308e5a477cdfa43f58a8a95f9e5e5cd99c26feb8782ac310e
|
7
|
+
data.tar.gz: 52874be1c94d65b512cf97aa686b1252459ffdb07df98bb769c3d20ca48174452675e87f305d9a862bcbf1f21fbc648378c5d884fc647cdaa238e3455566fc61
|
data/README.md
CHANGED
@@ -75,16 +75,6 @@ At least you need the following system setup:
|
|
75
75
|
|
76
76
|
* JRuby 1.7.9 or newer
|
77
77
|
|
78
|
-
Domain Adaption
|
79
|
-
---------------
|
80
|
-
|
81
|
-
TODO
|
82
|
-
|
83
|
-
Language Extension
|
84
|
-
------------------
|
85
|
-
|
86
|
-
TODO
|
87
|
-
|
88
78
|
The Core
|
89
79
|
--------
|
90
80
|
|
@@ -95,7 +85,7 @@ The component is a fat wrapper around the actual language technology core. You c
|
|
95
85
|
Where to go from here
|
96
86
|
---------------------
|
97
87
|
|
98
|
-
* [Check the project
|
88
|
+
* [Check the project website](http://opener-project.github.io)
|
99
89
|
* [Checkout the webservice](http://opener.olery.com/kaf2json)
|
100
90
|
|
101
91
|
Report problem/Get help
|
data/lib/opener/kaf_to_json.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
require 'saxon-xslt'
|
2
|
+
|
1
3
|
require_relative 'kaf_to_json/version'
|
2
4
|
require_relative 'kaf_to_json/server'
|
3
|
-
|
4
|
-
require 'saxon-xslt'
|
5
|
+
require_relative 'kaf_to_json/error_layer'
|
5
6
|
|
6
7
|
|
7
8
|
|
@@ -43,9 +44,14 @@ module Opener
|
|
43
44
|
# @return [Array]
|
44
45
|
#
|
45
46
|
def run(input)
|
46
|
-
|
47
|
-
|
48
|
-
|
47
|
+
begin
|
48
|
+
doc = Saxon::XML(input)
|
49
|
+
xslt = Saxon::XSLT(File.read(xsl))
|
50
|
+
return xslt.transform(doc).to_string
|
51
|
+
|
52
|
+
rescue Exception => error
|
53
|
+
return ErrorLayer.new(input, error.message, self.class).add
|
54
|
+
end
|
49
55
|
end
|
50
56
|
|
51
57
|
alias tag run
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
|
3
|
+
module Opener
|
4
|
+
class KafToJson
|
5
|
+
##
|
6
|
+
# Add Error Layer to KAF file instead of throwing an error.
|
7
|
+
#
|
8
|
+
class ErrorLayer
|
9
|
+
attr_accessor :input, :document, :error, :klass
|
10
|
+
|
11
|
+
def initialize(input, error, klass)
|
12
|
+
@input = input.to_s
|
13
|
+
# Make sure there is always a document, even if it is empty.
|
14
|
+
@document = Nokogiri::XML(input) rescue Nokogiri::XML(nil)
|
15
|
+
@error = error
|
16
|
+
@klass = klass
|
17
|
+
end
|
18
|
+
|
19
|
+
def add
|
20
|
+
if is_xml?
|
21
|
+
unless has_errors_layer?
|
22
|
+
add_errors_layer
|
23
|
+
end
|
24
|
+
else
|
25
|
+
add_root
|
26
|
+
add_text
|
27
|
+
add_errors_layer
|
28
|
+
end
|
29
|
+
add_error
|
30
|
+
|
31
|
+
xml = !!document.encoding ? document.to_xml : document.to_xml(:encoding => "UTF-8")
|
32
|
+
|
33
|
+
return xml
|
34
|
+
end
|
35
|
+
|
36
|
+
##
|
37
|
+
# Check if the document is a valid XML file.
|
38
|
+
#
|
39
|
+
def is_xml?
|
40
|
+
!!document.root
|
41
|
+
end
|
42
|
+
|
43
|
+
##
|
44
|
+
# Add root element to the XML file.
|
45
|
+
#
|
46
|
+
def add_root
|
47
|
+
root = Nokogiri::XML::Node.new "KAF", document
|
48
|
+
document.add_child(root)
|
49
|
+
end
|
50
|
+
|
51
|
+
##
|
52
|
+
# Check if the document already has an errors layer.
|
53
|
+
#
|
54
|
+
def has_errors_layer?
|
55
|
+
!!document.at('errors')
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# Add errors element to the XML file.
|
60
|
+
#
|
61
|
+
def add_errors_layer
|
62
|
+
node = Nokogiri::XML::Node.new "errors", document
|
63
|
+
document.root.add_child(node)
|
64
|
+
end
|
65
|
+
|
66
|
+
##
|
67
|
+
# Add the text file incase it is not a valid XML document. More
|
68
|
+
# info for debugging.
|
69
|
+
#
|
70
|
+
def add_text
|
71
|
+
node = Nokogiri::XML::Node.new "raw", document
|
72
|
+
node.inner_html = input
|
73
|
+
document.root.add_child(node)
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
##
|
78
|
+
# Add the actual error to the errors layer.
|
79
|
+
#
|
80
|
+
def add_error
|
81
|
+
node = document.at('errors')
|
82
|
+
error_node = Nokogiri::XML::Node.new "error", node
|
83
|
+
error_node['class'] = "#{klass.to_s} #{klass::VERSION}"
|
84
|
+
error_node.inner_html = error
|
85
|
+
node.add_child(error_node)
|
86
|
+
end
|
87
|
+
|
88
|
+
end # ErrorLayer
|
89
|
+
end # KafToJson
|
90
|
+
end # Opener
|
data/opener-kaf2json.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |gem|
|
|
24
24
|
|
25
25
|
gem.add_dependency 'builder'
|
26
26
|
gem.add_dependency 'sinatra', '~>1.4.2'
|
27
|
-
|
27
|
+
gem.add_dependency 'nokogiri'
|
28
28
|
gem.add_dependency 'saxon-xslt'
|
29
29
|
gem.add_dependency 'puma'
|
30
30
|
gem.add_dependency 'opener-daemons'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opener-kaf2json
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- development@olery.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
version: 1.4.2
|
39
39
|
prerelease: false
|
40
40
|
type: :runtime
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: nokogiri
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
prerelease: false
|
54
|
+
type: :runtime
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: saxon-xslt
|
43
57
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -181,6 +195,7 @@ files:
|
|
181
195
|
- config/kaf2json.xsl
|
182
196
|
- exec/kaf-to-json.rb
|
183
197
|
- lib/opener/kaf_to_json.rb
|
198
|
+
- lib/opener/kaf_to_json/error_layer.rb
|
184
199
|
- lib/opener/kaf_to_json/public/markdown.css
|
185
200
|
- lib/opener/kaf_to_json/server.rb
|
186
201
|
- lib/opener/kaf_to_json/version.rb
|