babelyoda 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -104,13 +104,15 @@ module Babelyoda
104
104
  class Tanker
105
105
  include Babelyoda::SpecificationLoader
106
106
 
107
- class FileNameInvalidError < RuntimeError ; end
107
+ class FileNameInvalidError < Exception ; end
108
+ class KeysetNameInvalidError < Exception ; end
108
109
 
109
110
  attr_accessor :endpoint
110
111
  attr_accessor :token
111
112
  attr_accessor :project_id
112
113
 
113
114
  def replace(keyset, language = nil)
115
+ validate_keyset_name!(keyset.name)
114
116
  doc = project_xml do |xml|
115
117
  keyset.to_xml(xml, language)
116
118
  end
@@ -131,11 +133,13 @@ module Babelyoda
131
133
  end
132
134
 
133
135
  def create(keyset_name)
136
+ validate_keyset_name!(keyset_name)
134
137
  post('/keysets/create/', { 'project-id' => project_id, 'keyset-id' => keyset_name })
135
138
  end
136
139
 
137
140
  def export(keyset_name = nil, languages = nil, status = nil, safe = false)
138
141
  payload = { 'project-id' => project_id }
142
+ validate_keyset_name!(keyset_name) if keyset_name
139
143
  payload.merge!({ 'keyset-id' => keyset_name }) if keyset_name
140
144
  if languages
141
145
  value = languages
@@ -148,6 +152,7 @@ module Babelyoda
148
152
  end
149
153
 
150
154
  def load_keyset(keyset_name, languages = nil, status = nil, safe = false)
155
+ validate_keyset_name!(keyset_name)
151
156
  doc = export(keyset_name, languages, status, safe)
152
157
  doc.css("keyset[@id='#{keyset_name}']").each do |keyset_node|
153
158
  keyset = Babelyoda::Keyset.parse_xml(keyset_node)
@@ -157,6 +162,7 @@ module Babelyoda
157
162
  end
158
163
 
159
164
  def drop_keyset!(keyset_name)
165
+ validate_keyset_name!(keyset_name)
160
166
  delete("/admin/project/#{project_id}/keyset/", { :keyset => keyset_name })
161
167
  end
162
168
 
@@ -204,16 +210,18 @@ module Babelyoda
204
210
  def post(method_name, payload)
205
211
  uri = URI(method(method_name))
206
212
  req = Net::HTTP::Post.new(uri.path)
213
+
207
214
  req['AUTHORIZATION'] = token
208
215
  req.content_type = multipart_content_type
209
216
  req.body = multipart_data(payload)
210
217
 
211
- $logger.debug "POST URI: #{uri}"
212
- $logger.debug "POST BODY: #{req.body}"
213
-
214
- res = Net::HTTP.start(uri.host, uri.port) do |http|
218
+ debug_log = ''
219
+ conn = Net::HTTP.new(uri.host, uri.port)
220
+ conn.set_debug_output(debug_log)
221
+ res = conn.start do |http|
215
222
  http.request(req)
216
223
  end
224
+ $logger.debug "HTTP DEBUG: #{debug_log}"
217
225
 
218
226
  case res
219
227
  when Net::HTTPSuccess, Net::HTTPRedirection
@@ -231,11 +239,13 @@ module Babelyoda
231
239
  req = Net::HTTP::Get.new(uri.request_uri)
232
240
  req['AUTHORIZATION'] = token
233
241
 
234
- $logger.debug "GET URI: #{uri}"
235
-
236
- res = Net::HTTP.start(uri.host, uri.port) do |http|
242
+ debug_log = ''
243
+ conn = Net::HTTP.new(uri.host, uri.port)
244
+ conn.set_debug_output(debug_log)
245
+ res = conn.start do |http|
237
246
  http.request(req)
238
247
  end
248
+ $logger.debug "HTTP DEBUG: #{debug_log}"
239
249
 
240
250
  case res
241
251
  when Net::HTTPSuccess, Net::HTTPRedirection
@@ -253,11 +263,13 @@ module Babelyoda
253
263
  req = Net::HTTP::Delete.new(uri.request_uri)
254
264
  req['AUTHORIZATION'] = token
255
265
 
256
- $logger.debug "DELETE URI: #{uri}"
257
-
258
- res = Net::HTTP.start(uri.host, uri.port) do |http|
266
+ debug_log = ''
267
+ conn = Net::HTTP.new(uri.host, uri.port)
268
+ conn.set_debug_output(debug_log)
269
+ res = conn.start do |http|
259
270
  http.request(req)
260
271
  end
272
+ $logger.debug "HTTP DEBUG: #{debug_log}"
261
273
 
262
274
  case res
263
275
  when Net::HTTPSuccess, Net::HTTPRedirection
@@ -268,5 +280,11 @@ module Babelyoda
268
280
  raise Error.new(error)
269
281
  end
270
282
  end
283
+
284
+ def validate_keyset_name!(keyset_name)
285
+ if keyset_name.match(/[\s\t]/)
286
+ raise KeysetNameInvalidError.new("Keyset name must NOT contain tabs or spaces: #{keyset_name}")
287
+ end
288
+ end
271
289
  end
272
290
  end
@@ -1,3 +1,3 @@
1
1
  module Babelyoda
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: babelyoda
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-27 00:00:00.000000000Z
12
+ date: 2012-02-20 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70220783285460 !ruby/object:Gem::Requirement
16
+ requirement: &70356031935100 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70220783285460
24
+ version_requirements: *70356031935100
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard
27
- requirement: &70220783285040 !ruby/object:Gem::Requirement
27
+ requirement: &70356031934680 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70220783285040
35
+ version_requirements: *70356031934680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard-rspec
38
- requirement: &70220783284600 !ruby/object:Gem::Requirement
38
+ requirement: &70356031934180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70220783284600
46
+ version_requirements: *70356031934180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: ruby_gntp
49
- requirement: &70220783284180 !ruby/object:Gem::Requirement
49
+ requirement: &70356031933720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70220783284180
57
+ version_requirements: *70356031933720
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: awesome_print
60
- requirement: &70220783283640 !ruby/object:Gem::Requirement
60
+ requirement: &70356031933120 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: 1.0.2
69
69
  type: :runtime
70
70
  prerelease: false
71
- version_requirements: *70220783283640
71
+ version_requirements: *70356031933120
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: rake
74
- requirement: &70220783282840 !ruby/object:Gem::Requirement
74
+ requirement: &70356031932240 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ~>
@@ -82,10 +82,10 @@ dependencies:
82
82
  version: 0.9.2.2
83
83
  type: :runtime
84
84
  prerelease: false
85
- version_requirements: *70220783282840
85
+ version_requirements: *70356031932240
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: active_support
88
- requirement: &70220783282100 !ruby/object:Gem::Requirement
88
+ requirement: &70356031931420 !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
91
  - - ~>
@@ -96,10 +96,10 @@ dependencies:
96
96
  version: 3.0.0
97
97
  type: :runtime
98
98
  prerelease: false
99
- version_requirements: *70220783282100
99
+ version_requirements: *70356031931420
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: rchardet19
102
- requirement: &70220783281360 !ruby/object:Gem::Requirement
102
+ requirement: &70356031819460 !ruby/object:Gem::Requirement
103
103
  none: false
104
104
  requirements:
105
105
  - - ~>
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: 1.3.5
111
111
  type: :runtime
112
112
  prerelease: false
113
- version_requirements: *70220783281360
113
+ version_requirements: *70356031819460
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: builder
116
- requirement: &70220783280620 !ruby/object:Gem::Requirement
116
+ requirement: &70356031818600 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ~>
@@ -124,10 +124,10 @@ dependencies:
124
124
  version: 3.0.0
125
125
  type: :runtime
126
126
  prerelease: false
127
- version_requirements: *70220783280620
127
+ version_requirements: *70356031818600
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: nokogiri
130
- requirement: &70220783279860 !ruby/object:Gem::Requirement
130
+ requirement: &70356031817800 !ruby/object:Gem::Requirement
131
131
  none: false
132
132
  requirements:
133
133
  - - ~>
@@ -138,10 +138,10 @@ dependencies:
138
138
  version: 1.5.0
139
139
  type: :runtime
140
140
  prerelease: false
141
- version_requirements: *70220783279860
141
+ version_requirements: *70356031817800
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: term-ansicolor
144
- requirement: &70220783279120 !ruby/object:Gem::Requirement
144
+ requirement: &70356031816880 !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
147
147
  - - ~>
@@ -152,10 +152,10 @@ dependencies:
152
152
  version: 1.0.7
153
153
  type: :runtime
154
154
  prerelease: false
155
- version_requirements: *70220783279120
155
+ version_requirements: *70356031816880
156
156
  - !ruby/object:Gem::Dependency
157
157
  name: log4r-color
158
- requirement: &70220783278400 !ruby/object:Gem::Requirement
158
+ requirement: &70356031815780 !ruby/object:Gem::Requirement
159
159
  none: false
160
160
  requirements:
161
161
  - - ~>
@@ -163,7 +163,7 @@ dependencies:
163
163
  version: '1.2'
164
164
  type: :runtime
165
165
  prerelease: false
166
- version_requirements: *70220783278400
166
+ version_requirements: *70356031815780
167
167
  description: A simple utility to push/pull l10n resources of an Xcode project to/from
168
168
  the translators
169
169
  email:
@@ -220,18 +220,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
220
220
  - - ! '>='
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
- segments:
224
- - 0
225
- hash: -2015034540121504841
226
223
  required_rubygems_version: !ruby/object:Gem::Requirement
227
224
  none: false
228
225
  requirements:
229
226
  - - ! '>='
230
227
  - !ruby/object:Gem::Version
231
228
  version: '0'
232
- segments:
233
- - 0
234
- hash: -2015034540121504841
235
229
  requirements: []
236
230
  rubyforge_project: babelyoda
237
231
  rubygems_version: 1.8.10