babelyoda 2.1.5 → 2.1.6
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.
- data/lib/babelyoda/localization_value.rb +16 -3
- data/lib/babelyoda/specification.rb +6 -0
- data/lib/babelyoda/version.rb +1 -1
- data/lib/babelyoda.rb +1 -1
- data/spec/lib/babelyoda/localization_value_spec.rb +17 -0
- data/spec/lib/babelyoda/specification_spec.rb +8 -0
- data/templates/Babelfile.erb +12 -0
- metadata +33 -26
@@ -29,7 +29,7 @@ module Babelyoda
|
|
29
29
|
|
30
30
|
def merge!(other_value, options = {})
|
31
31
|
updated = false
|
32
|
-
options =
|
32
|
+
options = resolve_options options
|
33
33
|
|
34
34
|
unless @language.to_sym == other_value.language.to_sym
|
35
35
|
raise "Can't merge values in different languages: #{@language.to_sym} and #{other_value.language.to_sym}"
|
@@ -43,7 +43,7 @@ module Babelyoda
|
|
43
43
|
updated ||= key_updated
|
44
44
|
end
|
45
45
|
else
|
46
|
-
if (
|
46
|
+
if mergeable?(options)
|
47
47
|
if @text != other_value.text && !other_value.nil?
|
48
48
|
@text = other_value.text
|
49
49
|
updated = true
|
@@ -56,8 +56,21 @@ module Babelyoda
|
|
56
56
|
private
|
57
57
|
include Babelyoda::Regexp
|
58
58
|
|
59
|
+
def resolve_options(options = {})
|
60
|
+
default_options.merge!(options)
|
61
|
+
end
|
62
|
+
|
63
|
+
def default_options
|
64
|
+
{ preserve: false, plain_text_keys: false }
|
65
|
+
end
|
66
|
+
|
67
|
+
def mergeable?(options = {})
|
68
|
+
options = resolve_options options
|
69
|
+
!options[:preserve] || (@status.to_sym == :requires_translation && options[:plain_text_keys])
|
70
|
+
end
|
71
|
+
|
59
72
|
def merge_plural_type!(type, other_value, options)
|
60
|
-
if
|
73
|
+
if mergeable?
|
61
74
|
if @text[type] != other_value && !other_value.nil?
|
62
75
|
@text[type] = other_value
|
63
76
|
return true
|
@@ -9,6 +9,7 @@ module Babelyoda
|
|
9
9
|
attr_accessor :name
|
10
10
|
attr_accessor :development_language
|
11
11
|
attr_accessor :localization_languages
|
12
|
+
attr_accessor :plain_text_keys
|
12
13
|
attr_accessor :engine
|
13
14
|
attr_accessor :source_files
|
14
15
|
attr_accessor :resources_folder
|
@@ -18,6 +19,11 @@ module Babelyoda
|
|
18
19
|
|
19
20
|
FILENAME = 'Babelfile'
|
20
21
|
|
22
|
+
def initialize(*args)
|
23
|
+
super
|
24
|
+
@plain_text_keys = true
|
25
|
+
end
|
26
|
+
|
21
27
|
def self.generate_default_babelfile
|
22
28
|
template_file_name = File.join(BABELYODA_PATH, 'templates', 'Babelfile.erb')
|
23
29
|
template = File.read(template_file_name)
|
data/lib/babelyoda/version.rb
CHANGED
data/lib/babelyoda.rb
CHANGED
@@ -177,7 +177,7 @@ namespace :babelyoda do
|
|
177
177
|
end
|
178
178
|
|
179
179
|
remote_keyset = spec.engine.load_keyset(local_keyset.name, nil, :unapproved)
|
180
|
-
result = remote_keyset.merge!(local_keyset, preserve: true)
|
180
|
+
result = remote_keyset.merge!(local_keyset, preserve: true, plain_text_keys: spec.plain_text_keys)
|
181
181
|
remote_keyset.ensure_languages!(spec.all_languages)
|
182
182
|
if result[:new] > 0 || result[:updated] > 0
|
183
183
|
langs.each do |lang|
|
@@ -14,4 +14,21 @@ describe "localization value" do
|
|
14
14
|
value1.language.should == :en
|
15
15
|
value1.text.should == "Value 2"
|
16
16
|
end
|
17
|
+
|
18
|
+
it "should preserve values if specified so in options and the status != :translation_required" do
|
19
|
+
value1 = Babelyoda::LocalizationValue.new(:en, "Value 1")
|
20
|
+
value1.status = :translated
|
21
|
+
value2 = Babelyoda::LocalizationValue.new(:en, "Value 2")
|
22
|
+
value1.merge!(value2, { preserve: true })
|
23
|
+
value1.language.should == :en
|
24
|
+
value1.text.should == "Value 1"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should preserve values in status :requires_translation if the project uses non plain text keys" do
|
28
|
+
value1 = Babelyoda::LocalizationValue.new(:en, "Value 1")
|
29
|
+
value2 = Babelyoda::LocalizationValue.new(:en, "Value 2")
|
30
|
+
value1.merge!(value2, { preserve: true, plain_text_keys: false })
|
31
|
+
value1.language.should == :en
|
32
|
+
value1.text.should == "Value 1"
|
33
|
+
end
|
17
34
|
end
|
data/templates/Babelfile.erb
CHANGED
@@ -2,11 +2,23 @@ Babelyoda::Specification.new do |s|
|
|
2
2
|
s.name = 'YOUR PROJECT NAME HERE'
|
3
3
|
s.development_language = :en
|
4
4
|
s.localization_languages = [:ru, :uk, :tr]
|
5
|
+
|
6
|
+
# Specifies whether human-readable plain text values (usu. in the
|
7
|
+
# development language) are used as localization keys.
|
8
|
+
#
|
9
|
+
# Set to false if you use something like 'views.panel.msg1' as keys in your
|
10
|
+
# project.
|
11
|
+
#
|
12
|
+
# Default is true.
|
13
|
+
#
|
14
|
+
# s.plain_text_keys = true
|
15
|
+
|
5
16
|
s.engine = Babelyoda::Tanker.new do |t|
|
6
17
|
t.token = 'FIX: TANKER TOKEN HERE'
|
7
18
|
t.project_id = 'FIX: TANKER PROJECT ID HERE'
|
8
19
|
t.endpoint = 'FIX: TANKER END POINT HERE'
|
9
20
|
end
|
21
|
+
|
10
22
|
s.scm = Babelyoda::Git.new
|
11
23
|
s.source_files = FileList['Classes/**/*.{m,mm,h}']
|
12
24
|
s.resources_folder = 'Resources'
|
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
|
+
version: 2.1.6
|
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-
|
12
|
+
date: 2012-05-05 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70259722448540 !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: *
|
24
|
+
version_requirements: *70259722448540
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: guard
|
27
|
-
requirement: &
|
27
|
+
requirement: &70259722448120 !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: *
|
35
|
+
version_requirements: *70259722448120
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: guard-rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70259722447700 !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: *
|
46
|
+
version_requirements: *70259722447700
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: ruby_gntp
|
49
|
-
requirement: &
|
49
|
+
requirement: &70259722447280 !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: *
|
57
|
+
version_requirements: *70259722447280
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: awesome_print
|
60
|
-
requirement: &
|
60
|
+
requirement: &70259722446760 !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: *
|
71
|
+
version_requirements: *70259722446760
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: rake
|
74
|
-
requirement: &
|
74
|
+
requirement: &70259722445980 !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: *
|
85
|
+
version_requirements: *70259722445980
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
name: active_support
|
88
|
-
requirement: &
|
88
|
+
requirement: &70259722445240 !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: *
|
99
|
+
version_requirements: *70259722445240
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: rchardet19
|
102
|
-
requirement: &
|
102
|
+
requirement: &70259722444500 !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: *
|
113
|
+
version_requirements: *70259722444500
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: builder
|
116
|
-
requirement: &
|
116
|
+
requirement: &70259722443760 !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: *
|
127
|
+
version_requirements: *70259722443760
|
128
128
|
- !ruby/object:Gem::Dependency
|
129
129
|
name: nokogiri
|
130
|
-
requirement: &
|
130
|
+
requirement: &70259722443020 !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: *
|
141
|
+
version_requirements: *70259722443020
|
142
142
|
- !ruby/object:Gem::Dependency
|
143
143
|
name: term-ansicolor
|
144
|
-
requirement: &
|
144
|
+
requirement: &70259722442260 !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: *
|
155
|
+
version_requirements: *70259722442260
|
156
156
|
- !ruby/object:Gem::Dependency
|
157
157
|
name: log4r-color
|
158
|
-
requirement: &
|
158
|
+
requirement: &70259722441540 !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: *
|
166
|
+
version_requirements: *70259722441540
|
167
167
|
description: A simple utility to push/pull l10n resources of an Xcode project to/from
|
168
168
|
the translators
|
169
169
|
email:
|
@@ -204,6 +204,7 @@ files:
|
|
204
204
|
- spec/lib/babelyoda/keyset_spec.rb
|
205
205
|
- spec/lib/babelyoda/localization_key_spec.rb
|
206
206
|
- spec/lib/babelyoda/localization_value_spec.rb
|
207
|
+
- spec/lib/babelyoda/specification_spec.rb
|
207
208
|
- spec/lib/babelyoda/string_spec.rb
|
208
209
|
- spec/lib/babelyoda/strings_lexer_spec.rb
|
209
210
|
- spec/lib/babelyoda/strings_parser_spec.rb
|
@@ -222,12 +223,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
222
223
|
- - ! '>='
|
223
224
|
- !ruby/object:Gem::Version
|
224
225
|
version: '0'
|
226
|
+
segments:
|
227
|
+
- 0
|
228
|
+
hash: -2287830520322804558
|
225
229
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
226
230
|
none: false
|
227
231
|
requirements:
|
228
232
|
- - ! '>='
|
229
233
|
- !ruby/object:Gem::Version
|
230
234
|
version: '0'
|
235
|
+
segments:
|
236
|
+
- 0
|
237
|
+
hash: -2287830520322804558
|
231
238
|
requirements: []
|
232
239
|
rubyforge_project: babelyoda
|
233
240
|
rubygems_version: 1.8.10
|