csv2strings 0.2.3 → 0.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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MTNjYjNhYTQwM2I1MDcxNmQ2MTE3YmFmODMzNjM5ODY1ZWI1ZDZiZQ==
5
- data.tar.gz: !binary |-
6
- ODRkNGU1Y2Q3MDliZTRjMWViZDdmZjc5MWZmNzlmNTE0NjBiMDgxMQ==
2
+ SHA1:
3
+ metadata.gz: 4dc1c0140bf5689ded0989dbca6197e2c509d190
4
+ data.tar.gz: 44b37ddf3b302ebb2b06ed29c4174d737dc49d3c
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZjE1YmIxMmRmMWQ5ZTc3YWM0ZWQyZmMwOTk0YzAzMTg2OGU1OTE3NTAwMDg2
10
- MjE1YzI4ZTlhYzRlNzA3Njk0N2M2NWFhY2QxYzdiZmE3NGEyYWI5YjUxYjIz
11
- NDA4YmE4YzI1MjZhY2VjZDlmNGY1YTAyMDIzZmFlZGRiYzMzZTA=
12
- data.tar.gz: !binary |-
13
- OTg2ZGE0YzNiZDAzN2FmODM3NmZkN2IxMzIxNDk0YzNjOWEzNmIwZmI3NDgx
14
- ODI5NmVkZjc1NjgwYzUxZTU3MDk3MTgwM2ZkYTAyZTg0N2IxMTdmYzY2NjA4
15
- NWRhZjI2OTU3MDA1MTQyMDBiYjZiZTE4YWFlY2VjNzkxMmMyZDU=
6
+ metadata.gz: e0a5a0dba0bb07d84dc7191c78f01e6fbcc8f6e97b26421cf076aff0206bef79ba3bd03031d64fcdb6c180424877f4383275a8ee97e8af92532a648055488d91
7
+ data.tar.gz: d519a2b459aa342f8b976376539a2f85f31419d8157813657721e94a719b64cf6d73c22e1a86047cabc23bf16ddb45e0be6832e4093583eb933963bc4e1d0eaa
@@ -1,9 +1,12 @@
1
1
  language: ruby
2
+ before_install:
3
+ - sudo apt-get install libtool
4
+ - sudo apt-get install libmagic-dev
5
+ - sudo apt-get install libicu-dev
2
6
  rvm:
3
- - 1.9.3
4
- - 1.9.2
5
- - 1.8.7
6
- - 2.0.0
7
+ - 1.9.2
8
+ - 1.9.3
9
+ - 2.0.0
7
10
  deploy:
8
11
  provider: rubygems
9
12
  api_key:
data/README.md CHANGED
@@ -4,6 +4,11 @@
4
4
  # Introduction
5
5
  This script converts a csv file of translations into iOS .strings files and vice-versa.
6
6
 
7
+ # Requirements
8
+
9
+ * Ruby 1.9.2 or adbove
10
+ * Needs [ICU](http://site.icu-project.org/). Via `brew install icu4c` on Mac or `apt-get install libicu-dev` on Linux
11
+
7
12
  # Setup
8
13
 
9
14
  `gem install csv2strings`
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'csv2strings'
3
- s.version = '0.2.3'
4
- s.date = '2013-12-11'
3
+ s.version = '0.2.4'
4
+ s.date = '2014-03-12'
5
5
  s.summary = "CSV to iOS Localizable.strings converter"
6
6
  s.description = "ruby script converts a CSV file of translations to Localizable.strings files and vice-versa"
7
7
  s.authors = ["François Benaiteau"]
@@ -20,7 +20,8 @@ Gem::Specification.new do |s|
20
20
  else
21
21
  s.add_dependency "google_drive"
22
22
  end
23
-
23
+ # utf8 encoding
24
+ s.add_dependency "charlock_holmes"
24
25
  # google_drive dependency to ask for mail and password
25
26
  s.add_dependency "highline"
26
27
 
@@ -1,3 +1,4 @@
1
+ require 'charlock_holmes'
1
2
  class Strings2CSV
2
3
  # default_lang is the the column to refer to if a value is missing
3
4
  # actually default_lang = default_filename
@@ -28,12 +29,17 @@ class Strings2CSV
28
29
  # Load all strings of a given file
29
30
  def load_strings(strings_filename)
30
31
  strings = ORDERED_HASH_CLASS.new
31
- File.open(strings_filename, 'r') do |strings_file|
32
- strings_file.read.each_line do |line|
33
- hash = self.parse_dotstrings_line(line)
34
- strings.merge!(hash) if hash
35
- end
32
+
33
+ # Make sure we use correct encoding
34
+ contents = File.open(strings_filename).read
35
+ detection = CharlockHolmes::EncodingDetector.detect(contents)
36
+ utf8_encoded_content = CharlockHolmes::Converter.convert contents, detection[:encoding], 'UTF-8'
37
+
38
+ utf8_encoded_content.each_line do |line|
39
+ hash = self.parse_dotstrings_line(line)
40
+ strings.merge!(hash) if hash
36
41
  end
42
+
37
43
  strings
38
44
  end
39
45
 
@@ -74,4 +74,22 @@ class TestCommand < Test::Unit::TestCase
74
74
  #clean up
75
75
  system("rm -f test_with_nil.csv")
76
76
  end
77
+
78
+ def test_strings2csv_utf16
79
+ options = {
80
+ :filenames => ["test/data/test_utf16.strings"],
81
+ :csv_filename => "test_utf16.csv"
82
+ }
83
+ # -i, -o
84
+
85
+
86
+ assert_nothing_raised do
87
+ Strings2CSVCommand.new([], options).strings2csv
88
+ end
89
+
90
+ #clean up
91
+ system("rm -f test_utf16.csv")
92
+
93
+ end
94
+
77
95
  end
metadata CHANGED
@@ -1,97 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csv2strings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - François Benaiteau
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-11 00:00:00.000000000 Z
11
+ date: 2014-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: google_drive
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: charlock_holmes
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: highline
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ! '>='
59
+ - - '>='
46
60
  - !ruby/object:Gem::Version
47
61
  version: '0'
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ! '>='
66
+ - - '>='
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ! '>='
73
+ - - '>='
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ! '>='
80
+ - - '>='
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: test-unit
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ! '>='
87
+ - - '>='
74
88
  - !ruby/object:Gem::Version
75
89
  version: '0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ! '>='
94
+ - - '>='
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: simplecov
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ! '>='
101
+ - - '>='
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ! '>='
108
+ - - '>='
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  description: ruby script converts a CSV file of translations to Localizable.strings
@@ -130,6 +144,7 @@ files:
130
144
  - test/data/test_data_multiple_langs.csv
131
145
  - test/data/test_en.strings
132
146
  - test/data/test_fr.strings
147
+ - test/data/test_utf16.strings
133
148
  - test/data/test_with_nil.csv
134
149
  - test/data/test_with_nil.strings
135
150
  - test/test_helper.rb
@@ -143,18 +158,33 @@ require_paths:
143
158
  - lib
144
159
  required_ruby_version: !ruby/object:Gem::Requirement
145
160
  requirements:
146
- - - ! '>='
161
+ - - '>='
147
162
  - !ruby/object:Gem::Version
148
163
  version: '0'
149
164
  required_rubygems_version: !ruby/object:Gem::Requirement
150
165
  requirements:
151
- - - ! '>='
166
+ - - '>='
152
167
  - !ruby/object:Gem::Version
153
168
  version: '0'
154
169
  requirements: []
155
170
  rubyforge_project:
156
- rubygems_version: 2.1.11
171
+ rubygems_version: 2.0.3
157
172
  signing_key:
158
173
  specification_version: 4
159
174
  summary: CSV to iOS Localizable.strings converter
160
- test_files: []
175
+ test_files:
176
+ - test/csvconverter/commands/test_command_csv2strings.rb
177
+ - test/csvconverter/commands/test_command_strings2csv.rb
178
+ - test/csvconverter/test_bins.rb
179
+ - test/csvconverter/test_csv2strings.rb
180
+ - test/csvconverter/test_strings2csv.rb
181
+ - test/data/test_data.csv
182
+ - test/data/test_data.strings
183
+ - test/data/test_data_multiple_langs.csv
184
+ - test/data/test_en.strings
185
+ - test/data/test_fr.strings
186
+ - test/data/test_utf16.strings
187
+ - test/data/test_with_nil.csv
188
+ - test/data/test_with_nil.strings
189
+ - test/test_helper.rb
190
+ has_rdoc: