csv2strings 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +25 -6
- data/README.md +15 -1
- data/bin/csv2strings +2 -8
- data/bin/strings2csv +3 -8
- data/csv2strings.gemspec +14 -7
- data/lib/command.rb +21 -45
- data/lib/csv2strings/converter.rb +6 -3
- data/lib/csv2strings_command.rb +44 -0
- data/lib/google_doc.rb +25 -0
- data/lib/strings2csv_command.rb +24 -0
- data/test/command_test.rb +6 -6
- data/test/google_doc_test.rb +6 -0
- data/test/test_helper.rb +0 -1
- metadata +46 -12
- checksums.yaml +0 -15
data/Gemfile.lock
CHANGED
@@ -1,30 +1,49 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
csv2strings (0.2)
|
4
|
+
csv2strings (0.2.1)
|
5
|
+
google_drive (= 0.3.6)
|
6
|
+
nokogiri (= 1.5.10)
|
5
7
|
thor
|
6
8
|
|
7
9
|
GEM
|
8
10
|
remote: http://rubygems.org/
|
9
11
|
specs:
|
10
|
-
|
11
|
-
|
12
|
-
|
12
|
+
faraday (0.8.8)
|
13
|
+
multipart-post (~> 1.2.0)
|
14
|
+
google_drive (0.3.6)
|
15
|
+
nokogiri (>= 1.4.4, != 1.5.2, != 1.5.1)
|
16
|
+
oauth (>= 0.3.6)
|
17
|
+
oauth2 (>= 0.5.0)
|
18
|
+
httpauth (0.2.0)
|
19
|
+
jwt (0.1.6)
|
20
|
+
multi_json (>= 1.0)
|
13
21
|
multi_json (1.3.6)
|
22
|
+
multi_xml (0.5.5)
|
23
|
+
multipart-post (1.2.0)
|
24
|
+
nokogiri (1.5.10)
|
25
|
+
oauth (0.4.7)
|
26
|
+
oauth2 (0.9.2)
|
27
|
+
faraday (~> 0.8)
|
28
|
+
httpauth (~> 0.2)
|
29
|
+
jwt (~> 0.1.4)
|
30
|
+
multi_json (~> 1.0)
|
31
|
+
multi_xml (~> 0.5)
|
32
|
+
rack (~> 1.2)
|
33
|
+
rack (1.5.2)
|
14
34
|
rake (0.9.2.2)
|
15
35
|
simplecov (0.6.4)
|
16
36
|
multi_json (~> 1.0)
|
17
37
|
simplecov-html (~> 0.5.3)
|
18
38
|
simplecov-html (0.5.3)
|
19
39
|
test-unit (2.4.8)
|
20
|
-
thor (0.
|
40
|
+
thor (0.18.1)
|
21
41
|
|
22
42
|
PLATFORMS
|
23
43
|
ruby
|
24
44
|
|
25
45
|
DEPENDENCIES
|
26
46
|
csv2strings!
|
27
|
-
mocha
|
28
47
|
rake
|
29
48
|
simplecov
|
30
49
|
test-unit
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ This script converts a csv file of translations into iOS .strings files and vice
|
|
5
5
|
|
6
6
|
# Setup
|
7
7
|
|
8
|
-
`gem install
|
8
|
+
`gem install csv2strings`
|
9
9
|
|
10
10
|
# Usage
|
11
11
|
|
@@ -22,7 +22,21 @@ This script converts a csv file of translations into iOS .strings files and vice
|
|
22
22
|
You can use a configuration file to hold all your commandline arguments into a file (previous versions `i18n_config.rb`).
|
23
23
|
Place `.csvconverter` file (edit if needed) in the folder with your ``xx.lproj`` and call the script from there. See `.csvconverter.sample`
|
24
24
|
|
25
|
+
# Contributing
|
26
|
+
|
27
|
+
If you feel like it, just create a pull request with a branch like `feature/<nameofbranch>` to `develop` branch
|
28
|
+
|
29
|
+
|
30
|
+
## Development
|
31
|
+
|
32
|
+
Edge version can be found on `develop` branch.
|
33
|
+
|
34
|
+
Run `bundle install` to install all the dependencies. Tests are done with `Test::Unit` so run `rake test` to run all the test suite.
|
25
35
|
|
26
36
|
# Todo
|
27
37
|
|
28
38
|
See GitHub isssues
|
39
|
+
|
40
|
+
# Known issues
|
41
|
+
|
42
|
+
None
|
data/bin/csv2strings
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require File.expand_path('../../lib/
|
2
|
+
require File.expand_path('../../lib/csv2strings_command', __FILE__)
|
3
3
|
|
4
4
|
|
5
|
-
|
6
|
-
Command.start(["help", "csv2strings"],{})
|
7
|
-
else
|
8
|
-
args = ["csv2strings"]
|
9
|
-
args += ARGV
|
10
|
-
Command.start(args,{})
|
11
|
-
end
|
5
|
+
CSV2StringsCommand.start
|
data/bin/strings2csv
CHANGED
@@ -1,10 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require File.expand_path('../../lib/
|
2
|
+
require File.expand_path('../../lib/strings2csv_command', __FILE__)
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
else
|
7
|
-
args = ["strings2csv"]
|
8
|
-
args += ARGV
|
9
|
-
Command.start(args,{})
|
10
|
-
end
|
4
|
+
|
5
|
+
Strings2CSVCommand.start
|
data/csv2strings.gemspec
CHANGED
@@ -1,22 +1,29 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'csv2strings'
|
3
|
-
s.version = '0.2.
|
4
|
-
s.date = '2013-
|
3
|
+
s.version = '0.2.1'
|
4
|
+
s.date = '2013-10-15'
|
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"]
|
8
8
|
s.email = 'francois.benaiteau@gmail.com'
|
9
9
|
s.homepage = 'https://github.com/netbe/CSV-to-iOS-Localizable.strings-converter'
|
10
|
-
s.license = 'MIT'
|
10
|
+
s.license = 'MIT'
|
11
|
+
|
11
12
|
s.add_dependency "thor"
|
12
|
-
|
13
|
-
|
13
|
+
|
14
|
+
|
15
|
+
if RUBY_VERSION < '1.9'
|
16
|
+
s.add_dependency "fastercsv"
|
17
|
+
end
|
18
|
+
s.add_dependency "nokogiri", "= 1.5.10"
|
19
|
+
s.add_dependency "google_drive", '0.3.6'
|
14
20
|
s.add_development_dependency "rake"
|
15
|
-
|
21
|
+
|
16
22
|
s.add_development_dependency "test-unit"
|
17
23
|
s.add_development_dependency "simplecov"
|
24
|
+
|
18
25
|
s.files = `git ls-files`.split("\n")
|
19
26
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
27
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
28
|
s.require_path = ['lib']
|
22
|
-
end
|
29
|
+
end
|
data/lib/command.rb
CHANGED
@@ -2,56 +2,31 @@ $: << File.expand_path(File.join(File.dirname(__FILE__)))
|
|
2
2
|
require 'yaml'
|
3
3
|
require 'thor'
|
4
4
|
require 'csvconverter'
|
5
|
+
require 'google_doc'
|
5
6
|
|
6
7
|
class Command < Thor
|
8
|
+
include Thor::Actions
|
9
|
+
class_option :verbose, :type => :boolean
|
7
10
|
|
8
|
-
desc "
|
9
|
-
|
10
|
-
method_option :
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
def csv2strings(filename = nil)
|
19
|
-
unless filename || options.has_key?('filename')
|
20
|
-
puts "No value provided for required options '--filename'"
|
21
|
-
help("csv2strings")
|
22
|
-
exit
|
11
|
+
desc "csv_download", "Download Google Spreadsheet containing translations"
|
12
|
+
method_option :gd_filename, :type => :string, :required => :true, :desc => "File to download from Google Drive"
|
13
|
+
method_option :output_filename, :type => :string, :desc => "Filepath of downloaded file"
|
14
|
+
def csv_download
|
15
|
+
filename = options['gd_filename']
|
16
|
+
gd = GoogleDoc.new
|
17
|
+
if options['output_filename']
|
18
|
+
file_path = gd.download filename.to_s, options['output_filename']
|
19
|
+
else
|
20
|
+
file_path = gd.download filename.to_s
|
23
21
|
end
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
22
|
+
if file_path
|
23
|
+
say "File '#{filename}' downloaded to '#{file_path}'"
|
24
|
+
else
|
25
|
+
say "Could not download the requested file: #{filename}"
|
28
26
|
end
|
29
|
-
|
30
|
-
args = options.dup
|
31
|
-
args.delete(:langs)
|
32
|
-
args.delete(:filename)
|
33
|
-
converter = CSV2Strings::Converter.new(filename, options[:langs], args)
|
34
|
-
converter.csv_to_dotstrings
|
27
|
+
file_path
|
35
28
|
end
|
36
|
-
|
37
|
-
desc "FILENAMES", "convert '.strings' files to CSV file"
|
38
|
-
# required options but handled in method because of options read from yaml file
|
39
|
-
method_option :filenames, :type => :array, :aliases => "-i", :desc => "location of strings files (FILENAMES)"
|
40
|
-
# optional options
|
41
|
-
method_option :csv_filename, :type => :string, :aliases => "-o", :desc => "location of output file"
|
42
|
-
method_option :headers, :type => :array, :aliases => "-h", :desc => "override headers of columns, default is name of input files and 'Variables' for reference"
|
43
|
-
method_option :dryrun, :type => :boolean, :aliases => "-n", :desc => "prints out content of hash without writing file"
|
44
|
-
def strings2csv
|
45
|
-
unless options.has_key?('filenames')
|
46
|
-
puts "No value provided for required options '--filenames'"
|
47
|
-
help("strings2csv")
|
48
|
-
exit
|
49
|
-
end
|
50
|
-
converter = Strings2CSV::Converter.new(options)
|
51
|
-
debug_values = converter.dotstrings_to_csv(!options[:dryrun])
|
52
|
-
puts debug_values.inspect if options[:dryrun]
|
53
|
-
end
|
54
|
-
|
29
|
+
|
55
30
|
private
|
56
31
|
def options
|
57
32
|
original_options = super
|
@@ -60,7 +35,8 @@ class Command < Thor
|
|
60
35
|
# add default values for options here
|
61
36
|
defaults["csv_filename"] = "translations.csv" unless defaults.has_key?("csv_filename")
|
62
37
|
defaults["dryrun"] = false unless defaults.has_key?("dryrun")
|
38
|
+
defaults["fetch"] = false unless defaults.has_key?("fetch")
|
63
39
|
defaults["keys_column"] = 0 unless defaults.has_key?("keys_column")
|
64
40
|
Thor::CoreExt::HashWithIndifferentAccess.new(defaults.merge(original_options))
|
65
41
|
end
|
66
|
-
end
|
42
|
+
end
|
@@ -16,7 +16,7 @@ module CSV2Strings
|
|
16
16
|
@langs = langs
|
17
17
|
|
18
18
|
if !@langs.is_a?(Hash) || @langs.size == 0
|
19
|
-
raise "wrong format or/and languages parameter"
|
19
|
+
raise "wrong format or/and languages parameter" + @langs.inspect
|
20
20
|
end
|
21
21
|
@output_file = (@langs.size == 1) ? args[:output_file] : nil
|
22
22
|
|
@@ -83,6 +83,7 @@ module CSV2Strings
|
|
83
83
|
excludedCols = []
|
84
84
|
defaultCol = 0
|
85
85
|
nb_translations = 0
|
86
|
+
|
86
87
|
CSVParserClass.foreach(name, :quote_char => '"', :col_sep =>',', :row_sep => :auto) do |row|
|
87
88
|
|
88
89
|
if rowIndex == 0
|
@@ -115,15 +116,17 @@ module CSV2Strings
|
|
115
116
|
end
|
116
117
|
rowIndex += 1
|
117
118
|
end
|
118
|
-
|
119
|
+
info = "Created #{files.size} files. Content: #{nb_translations} translations\n"
|
120
|
+
info += "List of created files:\n"
|
119
121
|
|
120
122
|
# closing I/O
|
121
123
|
files.each do |key,locale_files|
|
122
124
|
locale_files.each do |file|
|
125
|
+
info += "#{file.path.to_s}\n"
|
123
126
|
file.close
|
124
127
|
end
|
125
128
|
end
|
126
|
-
|
129
|
+
info
|
127
130
|
end # end of method
|
128
131
|
|
129
132
|
end # end of class
|
@@ -0,0 +1,44 @@
|
|
1
|
+
$: << File.expand_path(File.join(File.dirname(__FILE__)))
|
2
|
+
require "command"
|
3
|
+
class CSV2StringsCommand < Command
|
4
|
+
default_task :csv2strings
|
5
|
+
|
6
|
+
desc "CSV_FILENAME", "convert CSV file to '.strings' file"
|
7
|
+
# required options but handled in method because of options read from yaml file
|
8
|
+
method_option :filename, :type => :string, :desc => "CSV file (CSV_FILENAME) to convert from or name of file in Google Drive"
|
9
|
+
method_option :fetch, :type => :boolean, :desc => "Download file from Google Drive"
|
10
|
+
method_option :langs, :type => :hash, :aliases => "-L", :desc => "Languages to convert"
|
11
|
+
# optional options
|
12
|
+
method_option :excluded_states, :type => :array, :aliases => "-x", :desc => "Exclude rows with given state"
|
13
|
+
method_option :state_column, :type => :numeric, :aliases => "-s", :desc => "Position of column for state if any"
|
14
|
+
method_option :keys_column, :type => :numeric, :aliases => "-k", :desc => "Position of column for keys"
|
15
|
+
method_option :default_lang, :type => :string, :aliases => "-l", :desc => "Default language to use for empty values if any"
|
16
|
+
method_option :default_path, :type => :string, :aliases => "-p", :desc => "Path of output files"
|
17
|
+
def csv2strings(filename = nil)
|
18
|
+
unless filename || options.has_key?('filename')
|
19
|
+
say "No value provided for required options '--filename'"
|
20
|
+
help("csv2strings")
|
21
|
+
exit
|
22
|
+
end
|
23
|
+
|
24
|
+
filename ||= options['filename']
|
25
|
+
if options['fetch']
|
26
|
+
say "Downloading file from Google Drive"
|
27
|
+
filename = invoke :csv_download, nil, {"gd_filename" => filename}
|
28
|
+
exit unless filename
|
29
|
+
end
|
30
|
+
|
31
|
+
unless options.has_key?('langs')
|
32
|
+
say "No value provided for required options '--langs'"
|
33
|
+
help("csv2strings")
|
34
|
+
exit
|
35
|
+
end
|
36
|
+
|
37
|
+
args = options.dup
|
38
|
+
args.delete(:langs)
|
39
|
+
args.delete(:filename)
|
40
|
+
converter = CSV2Strings::Converter.new(filename, options[:langs], args)
|
41
|
+
say converter.csv_to_dotstrings
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
data/lib/google_doc.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require "google_drive"
|
2
|
+
class GoogleDoc
|
3
|
+
attr_accessor :session
|
4
|
+
|
5
|
+
def authenticate
|
6
|
+
# will try to get token from ~/.ruby_google_drive.token
|
7
|
+
@session = GoogleDrive.saved_session
|
8
|
+
end
|
9
|
+
|
10
|
+
def download(requested_filename, output_filename = "translations.csv")
|
11
|
+
unless @session
|
12
|
+
self.authenticate
|
13
|
+
end
|
14
|
+
result = @session.file_by_title(requested_filename)
|
15
|
+
if result.is_a? Array
|
16
|
+
file = result.first
|
17
|
+
else
|
18
|
+
file = result
|
19
|
+
end
|
20
|
+
return nil unless file
|
21
|
+
file.export_as_file(output_filename, "csv")
|
22
|
+
return output_filename
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
$: << File.expand_path(File.join(File.dirname(__FILE__)))
|
2
|
+
require "command"
|
3
|
+
|
4
|
+
class Strings2CSVCommand < Command
|
5
|
+
default_task :strings2csv
|
6
|
+
|
7
|
+
desc "FILENAMES", "convert '.strings' files to CSV file"
|
8
|
+
# required options but handled in method because of options read from yaml file
|
9
|
+
method_option :filenames, :type => :array, :aliases => "-i", :desc => "location of strings files (FILENAMES)"
|
10
|
+
# optional options
|
11
|
+
method_option :csv_filename, :type => :string, :aliases => "-o", :desc => "location of output file"
|
12
|
+
method_option :headers, :type => :array, :aliases => "-h", :desc => "override headers of columns, default is name of input files and 'Variables' for reference"
|
13
|
+
method_option :dryrun, :type => :boolean, :aliases => "-n", :desc => "prints out content of hash without writing file"
|
14
|
+
def strings2csv
|
15
|
+
unless options.has_key?('filenames')
|
16
|
+
say "No value provided for required options '--filenames'"
|
17
|
+
help("strings2csv")
|
18
|
+
exit
|
19
|
+
end
|
20
|
+
converter = Strings2CSV::Converter.new(options)
|
21
|
+
debug_values = converter.dotstrings_to_csv(!options[:dryrun])
|
22
|
+
say debug_values.inspect if options[:dryrun]
|
23
|
+
end
|
24
|
+
end
|
data/test/command_test.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require '
|
1
|
+
require File.expand_path('../../lib/command', __FILE__)
|
2
|
+
require File.expand_path('../test_helper', __FILE__)
|
2
3
|
|
3
|
-
require 'command'
|
4
4
|
class CommandTest < Test::Unit::TestCase
|
5
5
|
def test_csv2strings_with_multiple_2_languages
|
6
6
|
command = "./bin/csv2strings"
|
7
|
-
command += " test/data/test_data_multiple_langs.csv"
|
7
|
+
command += " --filename test/data/test_data_multiple_langs.csv"
|
8
8
|
command += " --langs=English:en French:fr"
|
9
9
|
system(command)
|
10
10
|
|
@@ -18,7 +18,7 @@ class CommandTest < Test::Unit::TestCase
|
|
18
18
|
|
19
19
|
def test_csv2strings_with_default_path
|
20
20
|
command = "./bin/csv2strings"
|
21
|
-
command += " test/data/test_data_multiple_langs.csv"
|
21
|
+
command += " --filename test/data/test_data_multiple_langs.csv"
|
22
22
|
command += " --langs=English:en French:fr"
|
23
23
|
command += " --default_path=mynewlocation"
|
24
24
|
system(command)
|
@@ -67,7 +67,7 @@ class CommandTest < Test::Unit::TestCase
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def test_strings2csv_with_headers
|
70
|
-
command = "./bin/
|
70
|
+
command = "./bin/strings2csv"
|
71
71
|
command += " -i=test/data/test_data.strings"
|
72
72
|
command += " -h=constants english"
|
73
73
|
system(command)
|
@@ -79,7 +79,7 @@ class CommandTest < Test::Unit::TestCase
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def test_strings2csv_with_two_files
|
82
|
-
command = "./bin/
|
82
|
+
command = "./bin/strings2csv"
|
83
83
|
command += " --filenames=test/data/test_en.strings test/data/test_fr.strings"
|
84
84
|
command += " --headers=Constants English French"
|
85
85
|
command += " -o=enfr.csv"
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: csv2strings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- François Benaiteau
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-10-15 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: thor
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,27 +22,47 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '0'
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
31
|
+
name: nokogiri
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- -
|
35
|
+
- - '='
|
32
36
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
-
type: :
|
37
|
+
version: 1.5.10
|
38
|
+
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- -
|
43
|
+
- - '='
|
39
44
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
45
|
+
version: 1.5.10
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
47
|
+
name: google_drive
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - '='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.3.6
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.3.6
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
43
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
44
66
|
requirements:
|
45
67
|
- - ! '>='
|
46
68
|
- !ruby/object:Gem::Version
|
@@ -48,6 +70,7 @@ dependencies:
|
|
48
70
|
type: :development
|
49
71
|
prerelease: false
|
50
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
51
74
|
requirements:
|
52
75
|
- - ! '>='
|
53
76
|
- !ruby/object:Gem::Version
|
@@ -55,6 +78,7 @@ dependencies:
|
|
55
78
|
- !ruby/object:Gem::Dependency
|
56
79
|
name: test-unit
|
57
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
58
82
|
requirements:
|
59
83
|
- - ! '>='
|
60
84
|
- !ruby/object:Gem::Version
|
@@ -62,6 +86,7 @@ dependencies:
|
|
62
86
|
type: :development
|
63
87
|
prerelease: false
|
64
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
65
90
|
requirements:
|
66
91
|
- - ! '>='
|
67
92
|
- !ruby/object:Gem::Version
|
@@ -69,6 +94,7 @@ dependencies:
|
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: simplecov
|
71
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
72
98
|
requirements:
|
73
99
|
- - ! '>='
|
74
100
|
- !ruby/object:Gem::Version
|
@@ -76,6 +102,7 @@ dependencies:
|
|
76
102
|
type: :development
|
77
103
|
prerelease: false
|
78
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
79
106
|
requirements:
|
80
107
|
- - ! '>='
|
81
108
|
- !ruby/object:Gem::Version
|
@@ -102,8 +129,11 @@ files:
|
|
102
129
|
- csv2strings.gemspec
|
103
130
|
- lib/command.rb
|
104
131
|
- lib/csv2strings/converter.rb
|
132
|
+
- lib/csv2strings_command.rb
|
105
133
|
- lib/csvconverter.rb
|
134
|
+
- lib/google_doc.rb
|
106
135
|
- lib/strings2csv/converter.rb
|
136
|
+
- lib/strings2csv_command.rb
|
107
137
|
- test/command_test.rb
|
108
138
|
- test/csv2strings/converter_test.rb
|
109
139
|
- test/data/test_data.csv
|
@@ -111,31 +141,33 @@ files:
|
|
111
141
|
- test/data/test_data_multiple_langs.csv
|
112
142
|
- test/data/test_en.strings
|
113
143
|
- test/data/test_fr.strings
|
144
|
+
- test/google_doc_test.rb
|
114
145
|
- test/strings2csv/converter_test.rb
|
115
146
|
- test/test_helper.rb
|
116
147
|
homepage: https://github.com/netbe/CSV-to-iOS-Localizable.strings-converter
|
117
148
|
licenses:
|
118
149
|
- MIT
|
119
|
-
metadata: {}
|
120
150
|
post_install_message:
|
121
151
|
rdoc_options: []
|
122
152
|
require_paths:
|
123
153
|
- - lib
|
124
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
155
|
+
none: false
|
125
156
|
requirements:
|
126
157
|
- - ! '>='
|
127
158
|
- !ruby/object:Gem::Version
|
128
159
|
version: '0'
|
129
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
130
162
|
requirements:
|
131
163
|
- - ! '>='
|
132
164
|
- !ruby/object:Gem::Version
|
133
165
|
version: '0'
|
134
166
|
requirements: []
|
135
167
|
rubyforge_project:
|
136
|
-
rubygems_version:
|
168
|
+
rubygems_version: 1.8.23
|
137
169
|
signing_key:
|
138
|
-
specification_version:
|
170
|
+
specification_version: 3
|
139
171
|
summary: CSV to iOS Localizable.strings converter
|
140
172
|
test_files:
|
141
173
|
- test/command_test.rb
|
@@ -145,5 +177,7 @@ test_files:
|
|
145
177
|
- test/data/test_data_multiple_langs.csv
|
146
178
|
- test/data/test_en.strings
|
147
179
|
- test/data/test_fr.strings
|
180
|
+
- test/google_doc_test.rb
|
148
181
|
- test/strings2csv/converter_test.rb
|
149
182
|
- test/test_helper.rb
|
183
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
YTA4ZWFmNjA3MzBiZjQ0YzU0MmJhMjk5YmE4MjVhMTA3NTBlNzFhMg==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MzFmNDRlOGY2ZWQwNzc1MTg1MWU4NGQ4MjBkZjBlYWIzYTY2YTNmYg==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NTEyY2M2NmVkN2NiMzcyMzAyOWJkNzg3ODM3MDEwZGU3ZGFlOTM4ZDc5ZjNl
|
10
|
-
OGI5YjBkY2U4MTA3ZTMwOTE1NDU5ODNhNjEzNTY5NTJjMTkxY2IwNTY0Njk5
|
11
|
-
NjVjOTdiNWIzZmMzODI5Yzg4OWMwM2VhYWRjMmI4OGIzMGNlNGM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OTI4YjZjMjIzMWVhZDc2MDI3NDFmYzBlNjE3OWVmYWNmZThkODg0M2EzZWQx
|
14
|
-
MGExY2ExMTkwYjExOTkxMzViOTNhYzA1YjQwMjg2NDMzMTQwODUyNWIwZDhj
|
15
|
-
NWFlNGVlNmY4YWM5OTk5MDdlMWQwM2I5NTFmY2RlMjI5MmEzM2Y=
|