babelyoda 2.1.4 → 2.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ class String
2
+ def escape_double_quotes
3
+ self.gsub(/([^\\])"/, "\\1\\\"")
4
+ end
5
+ end
@@ -2,6 +2,7 @@ require 'rchardet19'
2
2
 
3
3
  require_relative 'file'
4
4
  require_relative 'keyset'
5
+ require_relative 'string'
5
6
  require_relative 'strings_lexer'
6
7
  require_relative 'strings_parser'
7
8
 
@@ -21,11 +22,11 @@ module Babelyoda
21
22
  if plural?
22
23
  values[language].text.keys.each do |plural_key|
23
24
  if values[language].text[plural_key] != nil && values[language].text[plural_key].length > 0
24
- io << "\"#{pluralize_key(id, plural_key)}\" = \"#{values[language].text[plural_key]}\";\n"
25
+ io << "\"#{pluralize_key(id, plural_key).escape_double_quotes}\" = \"#{values[language].text[plural_key].escape_double_quotes}\";\n"
25
26
  end
26
27
  end
27
28
  else
28
- io << "\"#{id}\" = \"#{values[language].text}\";\n"
29
+ io << "\"#{id.escape_double_quotes}\" = \"#{values[language].text.escape_double_quotes}\";\n"
29
30
  end
30
31
  io << "\n"
31
32
  end
@@ -1,3 +1,3 @@
1
1
  module Babelyoda
2
- VERSION = "2.1.4"
2
+ VERSION = "2.1.5"
3
3
  end
@@ -0,0 +1,8 @@
1
+ require 'babelyoda/string'
2
+
3
+ describe "string" do
4
+ it "should escape double-quotes" do
5
+ a = 'some "key"'
6
+ a.escape_double_quotes.should == "some \\\"key\\\""
7
+ end
8
+ end
@@ -40,6 +40,27 @@ describe "strings-based keyset" do
40
40
  /* Some comment */
41
41
  "Some key" = "Some translation";
42
42
 
43
+ EOF
44
+ end
45
+ end
46
+
47
+ context "when keys or values have double-quotes in them" do
48
+ it "should properly escape them when being serialized" do
49
+ strings = Babelyoda::Strings.new('Combined.strings', :en)
50
+
51
+ value = Babelyoda::LocalizationValue.new(:en, 'Some "translation"')
52
+ key = Babelyoda::LocalizationKey.new('Some "key"', 'Some comment')
53
+ key << value
54
+ strings.merge_key!(key)
55
+
56
+ io = StringIO.new
57
+ strings.to_strings(io, :en)
58
+ io.rewind
59
+ io.read.should ==
60
+ <<-EOF
61
+ /* Some comment */
62
+ "Some \\"key\\"" = "Some \\"translation\\"";
63
+
43
64
  EOF
44
65
  end
45
66
  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.4
4
+ version: 2.1.5
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-03-01 00:00:00.000000000Z
12
+ date: 2012-03-13 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70280580698720 !ruby/object:Gem::Requirement
16
+ requirement: &70190327060400 !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: *70280580698720
24
+ version_requirements: *70190327060400
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: guard
27
- requirement: &70280580698300 !ruby/object:Gem::Requirement
27
+ requirement: &70190327059900 !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: *70280580698300
35
+ version_requirements: *70190327059900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard-rspec
38
- requirement: &70280580697840 !ruby/object:Gem::Requirement
38
+ requirement: &70190327059220 !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: *70280580697840
46
+ version_requirements: *70190327059220
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: ruby_gntp
49
- requirement: &70280580697380 !ruby/object:Gem::Requirement
49
+ requirement: &70190327058200 !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: *70280580697380
57
+ version_requirements: *70190327058200
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: awesome_print
60
- requirement: &70280580696700 !ruby/object:Gem::Requirement
60
+ requirement: &70190327056740 !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: *70280580696700
71
+ version_requirements: *70190327056740
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: rake
74
- requirement: &70280580695620 !ruby/object:Gem::Requirement
74
+ requirement: &70190327054460 !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: *70280580695620
85
+ version_requirements: *70190327054460
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: active_support
88
- requirement: &70280580694540 !ruby/object:Gem::Requirement
88
+ requirement: &70190327053240 !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: *70280580694540
99
+ version_requirements: *70190327053240
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: rchardet19
102
- requirement: &70280580693760 !ruby/object:Gem::Requirement
102
+ requirement: &70190327052080 !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: *70280580693760
113
+ version_requirements: *70190327052080
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: builder
116
- requirement: &70280580693020 !ruby/object:Gem::Requirement
116
+ requirement: &70190327050760 !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: *70280580693020
127
+ version_requirements: *70190327050760
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: nokogiri
130
- requirement: &70280580681220 !ruby/object:Gem::Requirement
130
+ requirement: &70190327049380 !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: *70280580681220
141
+ version_requirements: *70190327049380
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: term-ansicolor
144
- requirement: &70280580680480 !ruby/object:Gem::Requirement
144
+ requirement: &70190327047760 !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: *70280580680480
155
+ version_requirements: *70190327047760
156
156
  - !ruby/object:Gem::Dependency
157
157
  name: log4r-color
158
- requirement: &70280580679760 !ruby/object:Gem::Requirement
158
+ requirement: &70190327042720 !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: *70280580679760
166
+ version_requirements: *70190327042720
167
167
  description: A simple utility to push/pull l10n resources of an Xcode project to/from
168
168
  the translators
169
169
  email:
@@ -194,6 +194,7 @@ files:
194
194
  - lib/babelyoda/regexp.rb
195
195
  - lib/babelyoda/specification.rb
196
196
  - lib/babelyoda/specification_loader.rb
197
+ - lib/babelyoda/string.rb
197
198
  - lib/babelyoda/strings.rb
198
199
  - lib/babelyoda/strings_lexer.rb
199
200
  - lib/babelyoda/strings_parser.rb
@@ -203,6 +204,7 @@ files:
203
204
  - spec/lib/babelyoda/keyset_spec.rb
204
205
  - spec/lib/babelyoda/localization_key_spec.rb
205
206
  - spec/lib/babelyoda/localization_value_spec.rb
207
+ - spec/lib/babelyoda/string_spec.rb
206
208
  - spec/lib/babelyoda/strings_lexer_spec.rb
207
209
  - spec/lib/babelyoda/strings_parser_spec.rb
208
210
  - spec/lib/babelyoda/strings_spec.rb