csv2strings 0.2.0 → 0.2.1
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/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=
|