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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 890e6ed31d7c1354c5d54e2148e0bdf5055cc260
4
- data.tar.gz: 723ed9818613851c6e938f6929b1dfcabcc02f45
3
+ metadata.gz: 96fecfe7391b7e53bc84f00ad628773ebb04f8c5
4
+ data.tar.gz: b79c1871980d1fc0056fd36b44163299ce25bf40
5
5
  SHA512:
6
- metadata.gz: 45e7495933fed71c99479a307bbf415de96afb82e023b50cc8f7aab676f688262af329db9cd336ef47df3cba61a535342084845ea533e3808c65a380a16e4fc0
7
- data.tar.gz: 9337a4d5aac7b991198ec9abac8c9b539b4ddcfaf0fbdee45b2f0f8ff1f002d6c6722a8150edf42ea0290c1f67ffc25745094717fb71edab85f1e1f11e6a69fd
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 websitere](http://opener-project.github.io)
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
- capture(input)
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
@@ -1,5 +1,5 @@
1
1
  module Opener
2
2
  class PropertyTagger
3
- VERSION = '2.2.3'
3
+ VERSION = '2.2.4'
4
4
  end # PropertyTagger
5
5
  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.3
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-05-23 00:00:00.000000000 Z
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
- requirement: !ruby/object:Gem::Requirement
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
- type: :runtime
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: '0'
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.1.2
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: