opener-property-tagger 2.2.3 → 2.2.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/opener/property_tagger.rb +8 -1
- data/lib/opener/property_tagger/error_layer.rb +90 -0
- data/lib/opener/property_tagger/version.rb +1 -1
- data/opener-property-tagger.gemspec +1 -0
- metadata +75 -61
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 96fecfe7391b7e53bc84f00ad628773ebb04f8c5
|
|
4
|
+
data.tar.gz: b79c1871980d1fc0056fd36b44163299ce25bf40
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 90cfd6237f8b4793fe49e760d124482572338950cf0ce2cc4d8fa8c18830788b714b94d6d7ac40c33fbb9021b87c57c2f9025db08911804b3b43469eab303ec8
|
|
7
|
+
data.tar.gz: d931044fadea39b472449572180851f7862f275e4f844ffc6d7a35624d662032c4060fb0ffaf70ca2b98c92634db7c8ffc51a02b7f4835609676d33e4c17ba98
|
data/README.md
CHANGED
|
@@ -129,7 +129,7 @@ The component is a fat wrapper around the actual language technology core. You c
|
|
|
129
129
|
Where to go from here
|
|
130
130
|
---------------------
|
|
131
131
|
|
|
132
|
-
* [Check the project
|
|
132
|
+
* [Check the project website](http://opener-project.github.io)
|
|
133
133
|
* [Checkout the webservice](http://opener.olery.com/property-tagger)
|
|
134
134
|
|
|
135
135
|
Report problem/Get help
|
|
@@ -3,6 +3,7 @@ require 'optparse'
|
|
|
3
3
|
|
|
4
4
|
require_relative 'property_tagger/version'
|
|
5
5
|
require_relative 'property_tagger/cli'
|
|
6
|
+
require_relative 'property_tagger/error_layer'
|
|
6
7
|
|
|
7
8
|
module Opener
|
|
8
9
|
##
|
|
@@ -54,7 +55,13 @@ module Opener
|
|
|
54
55
|
# @return [Array]
|
|
55
56
|
#
|
|
56
57
|
def run(input)
|
|
57
|
-
|
|
58
|
+
begin
|
|
59
|
+
stdout, stderr, process = capture(input)
|
|
60
|
+
raise stderr unless process.success?
|
|
61
|
+
return stdout
|
|
62
|
+
rescue Exception => error
|
|
63
|
+
return ErrorLayer.new(input, error.message, self.class).add
|
|
64
|
+
end
|
|
58
65
|
end
|
|
59
66
|
|
|
60
67
|
protected
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
require 'nokogiri'
|
|
2
|
+
|
|
3
|
+
module Opener
|
|
4
|
+
class PropertyTagger
|
|
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 # PropertyTagger
|
|
90
|
+
end # Opener
|
|
@@ -33,6 +33,7 @@ Gem::Specification.new do |gem|
|
|
|
33
33
|
gem.add_dependency 'opener-daemons'
|
|
34
34
|
gem.add_dependency 'opener-webservice'
|
|
35
35
|
gem.add_dependency 'opener-core', ['>= 0.1.2']
|
|
36
|
+
gem.add_dependency 'nokogiri'
|
|
36
37
|
|
|
37
38
|
gem.add_development_dependency 'rspec'
|
|
38
39
|
gem.add_development_dependency 'cucumber'
|
metadata
CHANGED
|
@@ -1,157 +1,171 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: opener-property-tagger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.2.
|
|
4
|
+
version: 2.2.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- development@olery.com
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-06-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: opener-build-tools
|
|
15
|
-
|
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- -
|
|
17
|
+
- - '>='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: 1.0.1
|
|
20
|
-
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
|
23
21
|
requirements:
|
|
24
|
-
- -
|
|
22
|
+
- - '>='
|
|
25
23
|
- !ruby/object:Gem::Version
|
|
26
24
|
version: 1.0.1
|
|
25
|
+
prerelease: false
|
|
26
|
+
type: :runtime
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - '>='
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
29
34
|
requirement: !ruby/object:Gem::Requirement
|
|
30
35
|
requirements:
|
|
31
|
-
- -
|
|
36
|
+
- - '>='
|
|
32
37
|
- !ruby/object:Gem::Version
|
|
33
38
|
version: '0'
|
|
34
|
-
type: :runtime
|
|
35
39
|
prerelease: false
|
|
40
|
+
type: :runtime
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: sinatra
|
|
36
43
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
44
|
requirements:
|
|
38
|
-
- -
|
|
45
|
+
- - '>='
|
|
39
46
|
- !ruby/object:Gem::Version
|
|
40
47
|
version: '0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: sinatra
|
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
|
44
49
|
requirements:
|
|
45
|
-
- -
|
|
50
|
+
- - '>='
|
|
46
51
|
- !ruby/object:Gem::Version
|
|
47
52
|
version: '0'
|
|
48
|
-
type: :runtime
|
|
49
53
|
prerelease: false
|
|
54
|
+
type: :runtime
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: httpclient
|
|
50
57
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
58
|
requirements:
|
|
52
|
-
- -
|
|
59
|
+
- - '>='
|
|
53
60
|
- !ruby/object:Gem::Version
|
|
54
61
|
version: '0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: httpclient
|
|
57
62
|
requirement: !ruby/object:Gem::Requirement
|
|
58
63
|
requirements:
|
|
59
|
-
- -
|
|
64
|
+
- - '>='
|
|
60
65
|
- !ruby/object:Gem::Version
|
|
61
66
|
version: '0'
|
|
62
|
-
type: :runtime
|
|
63
67
|
prerelease: false
|
|
68
|
+
type: :runtime
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: puma
|
|
64
71
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
72
|
requirements:
|
|
66
|
-
- -
|
|
73
|
+
- - '>='
|
|
67
74
|
- !ruby/object:Gem::Version
|
|
68
75
|
version: '0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: puma
|
|
71
76
|
requirement: !ruby/object:Gem::Requirement
|
|
72
77
|
requirements:
|
|
73
|
-
- -
|
|
78
|
+
- - '>='
|
|
74
79
|
- !ruby/object:Gem::Version
|
|
75
80
|
version: '0'
|
|
76
|
-
type: :runtime
|
|
77
81
|
prerelease: false
|
|
82
|
+
type: :runtime
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: opener-daemons
|
|
78
85
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
86
|
requirements:
|
|
80
|
-
- -
|
|
87
|
+
- - '>='
|
|
81
88
|
- !ruby/object:Gem::Version
|
|
82
89
|
version: '0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: opener-daemons
|
|
85
90
|
requirement: !ruby/object:Gem::Requirement
|
|
86
91
|
requirements:
|
|
87
|
-
- -
|
|
92
|
+
- - '>='
|
|
88
93
|
- !ruby/object:Gem::Version
|
|
89
94
|
version: '0'
|
|
90
|
-
type: :runtime
|
|
91
95
|
prerelease: false
|
|
96
|
+
type: :runtime
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: opener-webservice
|
|
92
99
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
100
|
requirements:
|
|
94
|
-
- -
|
|
101
|
+
- - '>='
|
|
95
102
|
- !ruby/object:Gem::Version
|
|
96
103
|
version: '0'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: opener-webservice
|
|
99
104
|
requirement: !ruby/object:Gem::Requirement
|
|
100
105
|
requirements:
|
|
101
|
-
- -
|
|
106
|
+
- - '>='
|
|
102
107
|
- !ruby/object:Gem::Version
|
|
103
108
|
version: '0'
|
|
104
|
-
type: :runtime
|
|
105
109
|
prerelease: false
|
|
110
|
+
type: :runtime
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: opener-core
|
|
106
113
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
114
|
requirements:
|
|
108
|
-
- -
|
|
115
|
+
- - '>='
|
|
109
116
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: opener-core
|
|
117
|
+
version: 0.1.2
|
|
113
118
|
requirement: !ruby/object:Gem::Requirement
|
|
114
119
|
requirements:
|
|
115
|
-
- -
|
|
120
|
+
- - '>='
|
|
116
121
|
- !ruby/object:Gem::Version
|
|
117
122
|
version: 0.1.2
|
|
118
|
-
type: :runtime
|
|
119
123
|
prerelease: false
|
|
124
|
+
type: :runtime
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: nokogiri
|
|
120
127
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
128
|
requirements:
|
|
122
|
-
- -
|
|
129
|
+
- - '>='
|
|
123
130
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: 0
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: rspec
|
|
131
|
+
version: '0'
|
|
127
132
|
requirement: !ruby/object:Gem::Requirement
|
|
128
133
|
requirements:
|
|
129
|
-
- -
|
|
134
|
+
- - '>='
|
|
130
135
|
- !ruby/object:Gem::Version
|
|
131
136
|
version: '0'
|
|
132
|
-
type: :development
|
|
133
137
|
prerelease: false
|
|
138
|
+
type: :runtime
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: rspec
|
|
134
141
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
142
|
requirements:
|
|
136
|
-
- -
|
|
143
|
+
- - '>='
|
|
137
144
|
- !ruby/object:Gem::Version
|
|
138
145
|
version: '0'
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: cucumber
|
|
141
146
|
requirement: !ruby/object:Gem::Requirement
|
|
142
147
|
requirements:
|
|
143
|
-
- -
|
|
148
|
+
- - '>='
|
|
144
149
|
- !ruby/object:Gem::Version
|
|
145
150
|
version: '0'
|
|
146
|
-
type: :development
|
|
147
151
|
prerelease: false
|
|
152
|
+
type: :development
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: cucumber
|
|
148
155
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
156
|
requirements:
|
|
150
|
-
- -
|
|
157
|
+
- - '>='
|
|
151
158
|
- !ruby/object:Gem::Version
|
|
152
159
|
version: '0'
|
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
|
161
|
+
requirements:
|
|
162
|
+
- - '>='
|
|
163
|
+
- !ruby/object:Gem::Version
|
|
164
|
+
version: '0'
|
|
165
|
+
prerelease: false
|
|
166
|
+
type: :development
|
|
153
167
|
description: Property tagger for hotels in Dutch and English.
|
|
154
|
-
email:
|
|
168
|
+
email:
|
|
155
169
|
executables:
|
|
156
170
|
- property-tagger
|
|
157
171
|
- property-tagger-daemon
|
|
@@ -172,6 +186,7 @@ files:
|
|
|
172
186
|
- ext/hack/support.rb
|
|
173
187
|
- lib/opener/property_tagger.rb
|
|
174
188
|
- lib/opener/property_tagger/cli.rb
|
|
189
|
+
- lib/opener/property_tagger/error_layer.rb
|
|
175
190
|
- lib/opener/property_tagger/public/markdown.css
|
|
176
191
|
- lib/opener/property_tagger/server.rb
|
|
177
192
|
- lib/opener/property_tagger/version.rb
|
|
@@ -182,25 +197,24 @@ files:
|
|
|
182
197
|
homepage: http://opener-project.github.com/
|
|
183
198
|
licenses: []
|
|
184
199
|
metadata: {}
|
|
185
|
-
post_install_message:
|
|
200
|
+
post_install_message:
|
|
186
201
|
rdoc_options: []
|
|
187
202
|
require_paths:
|
|
188
203
|
- lib
|
|
189
204
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
190
205
|
requirements:
|
|
191
|
-
- -
|
|
206
|
+
- - '>='
|
|
192
207
|
- !ruby/object:Gem::Version
|
|
193
208
|
version: 1.9.2
|
|
194
209
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
210
|
requirements:
|
|
196
|
-
- -
|
|
211
|
+
- - '>='
|
|
197
212
|
- !ruby/object:Gem::Version
|
|
198
213
|
version: '0'
|
|
199
214
|
requirements: []
|
|
200
|
-
rubyforge_project:
|
|
215
|
+
rubyforge_project:
|
|
201
216
|
rubygems_version: 2.2.2
|
|
202
|
-
signing_key:
|
|
217
|
+
signing_key:
|
|
203
218
|
specification_version: 4
|
|
204
219
|
summary: Property tagger for hotels in Dutch and English.
|
|
205
220
|
test_files: []
|
|
206
|
-
has_rdoc:
|