i18n_generator 0.0.1 → 1.0.0

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 772f9f32d17277d30dc3aa1e4298e1977a75109c
4
- data.tar.gz: 0c2f3605bbea977f1512721544e7db23b6f27acb
3
+ metadata.gz: 1e1f43dfbb751e181d7cdc029673c0e47c24eb56
4
+ data.tar.gz: cc8744af56779e20f83675b97abd4160d23a8bbd
5
5
  SHA512:
6
- metadata.gz: 935201dd79cf72add33ed59b42cd36b2764c9392761ab43e9468b4c8a1cf0c50a6d9caec967f443c7cf9e1aa373c7c765a049682f78c2df8b5684a01e5967123
7
- data.tar.gz: 618ed8c7bea2e8d83e569d757c898f46ffc7b0dba4e56853a92cde69fb7783e3dae50cf644355e559d745f56c3613edcc27651f25569e1bcfe39b756d67fc2bb
6
+ metadata.gz: 950c38f5637280eea7c833971a253411fa42fbea7fe1feeb8c12f991309607d09dda680afdeeb80ca908c6d64b8cbf8ed2db2886e89f9ba530f7a0421aec21e3
7
+ data.tar.gz: 6987ae860d1cedf5d2f5d49d3bb0c921a4196ef73f49bbf52ae5b1686eed18366639ff79cd228bff1386a4c6f0b3d78c2f5cbc89319e016252e49b848bd543da
data/Gemfile CHANGED
@@ -1,10 +1,15 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "roo", "~>1.11.2" # Excel Parsing
3
+ gem "roo", "~>1.12.1" # Excel Parsing
4
+ gem "thor", "~>0.18.1" # Snazzy CLI
5
+
6
+ # Temporary fix for roo's compatibility with rubyzup
7
+ # See https://github.com/Empact/roo/pull/65
8
+ gem "rubyzip", '< 1.0.0'
4
9
 
5
10
  group :development do
6
11
  gem "minitest", "~> 5.0.6"
7
- gem "rdoc", "~> 3.12"
12
+ gem "rdoc", "~> 4.0.1"
8
13
  gem "bundler", "~> 1.3.5"
9
14
  gem "jeweler", "~> 1.8.4"
10
15
  end
@@ -1,12 +1,11 @@
1
1
  ### i18n_generator
2
2
 
3
3
  Generates locale-specific resource bundles (.properties) from an Excel spreadsheet containing translations.
4
- `ruby i18n_generator.rb </path/to/spreadsheet> </output_directory>`
5
4
 
6
5
  #### How to run
7
6
 
8
- 1. `bundle install`
9
- 1. `ruby i18n_generator.rb </path/to/spreadsheet> </output_directory>`
7
+ 1. `gem install i18n_generator`
8
+ 1. `i18n_generate process </path/to/spreadsheet> </output_directory>`
10
9
 
11
10
  ### Spreadsheet format
12
11
 
@@ -31,4 +30,4 @@ Tested on:
31
30
  ### Copyright
32
31
 
33
32
  Copyright (c) 2013 Rule Financial. See LICENSE.txt for
34
- further details.
33
+ further details.
data/Rakefile CHANGED
@@ -40,6 +40,5 @@ Rake::RDocTask.new do |rdoc|
40
40
 
41
41
  rdoc.rdoc_dir = 'rdoc'
42
42
  rdoc.title = "i18n_generator #{version}"
43
- rdoc.rdoc_files.include('README*')
44
43
  rdoc.rdoc_files.include('lib/**/*.rb')
45
44
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 1.0.0
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'i18n_generator'
4
+ require 'i18n_generator/cli'
5
+
6
+ I18nGenerator::CLI.start
@@ -5,30 +5,29 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "i18n_generator"
8
- s.version = "0.0.1"
8
+ s.version = "1.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rob Young"]
12
- s.date = "2013-08-07"
12
+ s.date = "2013-09-08"
13
13
  s.description = "Generates locale-specific resource bundles (.properties files) from translations held in an Excel spreadsheet"
14
14
  s.email = "robyoung26@gmail.com"
15
- s.executables = ["i18n_generator"]
15
+ s.executables = ["i18n_generate"]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE.txt",
18
- "README.rdoc"
18
+ "README.md"
19
19
  ]
20
20
  s.files = [
21
21
  "Gemfile",
22
- "Gemfile.lock",
23
22
  "LICENSE.txt",
24
- "README.rdoc",
23
+ "README.md",
25
24
  "Rakefile",
26
25
  "VERSION",
27
- "bin/i18n_generator",
26
+ "bin/i18n_generate",
28
27
  "examples/example_labels.xlsx",
29
28
  "i18n_generator.gemspec",
30
- "i18n_generator.rb",
31
29
  "lib/i18n_generator.rb",
30
+ "lib/i18n_generator/cli.rb",
32
31
  "lib/i18n_generator/excel_parser.rb",
33
32
  "lib/i18n_generator/label.rb",
34
33
  "lib/i18n_generator/label_writer.rb",
@@ -47,22 +46,28 @@ Gem::Specification.new do |s|
47
46
  s.specification_version = 4
48
47
 
49
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
- s.add_runtime_dependency(%q<roo>, ["~> 1.11.2"])
49
+ s.add_runtime_dependency(%q<roo>, ["~> 1.12.1"])
50
+ s.add_runtime_dependency(%q<thor>, ["~> 0.18.1"])
51
+ s.add_runtime_dependency(%q<rubyzip>, ["< 1.0.0"])
51
52
  s.add_development_dependency(%q<minitest>, ["~> 5.0.6"])
52
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
53
+ s.add_development_dependency(%q<rdoc>, ["~> 4.0.1"])
53
54
  s.add_development_dependency(%q<bundler>, ["~> 1.3.5"])
54
55
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
55
56
  else
56
- s.add_dependency(%q<roo>, ["~> 1.11.2"])
57
+ s.add_dependency(%q<roo>, ["~> 1.12.1"])
58
+ s.add_dependency(%q<thor>, ["~> 0.18.1"])
59
+ s.add_dependency(%q<rubyzip>, ["< 1.0.0"])
57
60
  s.add_dependency(%q<minitest>, ["~> 5.0.6"])
58
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
61
+ s.add_dependency(%q<rdoc>, ["~> 4.0.1"])
59
62
  s.add_dependency(%q<bundler>, ["~> 1.3.5"])
60
63
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
61
64
  end
62
65
  else
63
- s.add_dependency(%q<roo>, ["~> 1.11.2"])
66
+ s.add_dependency(%q<roo>, ["~> 1.12.1"])
67
+ s.add_dependency(%q<thor>, ["~> 0.18.1"])
68
+ s.add_dependency(%q<rubyzip>, ["< 1.0.0"])
64
69
  s.add_dependency(%q<minitest>, ["~> 5.0.6"])
65
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
70
+ s.add_dependency(%q<rdoc>, ["~> 4.0.1"])
66
71
  s.add_dependency(%q<bundler>, ["~> 1.3.5"])
67
72
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
68
73
  end
@@ -3,13 +3,13 @@ require 'i18n_generator/label'
3
3
  require 'i18n_generator/label_writer'
4
4
 
5
5
  module I18nGenerator
6
- class << self
7
- def process(source_spreadsheet, output_directory)
8
- excel_parser = I18nGenerator::ExcelParser.new(ARGV[0])
9
- label_writer = I18nGenerator::LabelWriter.new(ARGV[1])
6
+ class << self
7
+ def process(source_spreadsheet, output_directory, bundle_prefix)
8
+ excel_parser = I18nGenerator::ExcelParser.new(source_spreadsheet)
9
+ label_writer = I18nGenerator::LabelWriter.new(output_directory, bundle_prefix)
10
10
 
11
11
  labels = excel_parser.parse
12
12
  label_writer.write_labels(labels, excel_parser.translation_languages)
13
13
  end
14
- end
15
- end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ require 'thor'
2
+
3
+ module I18nGenerator
4
+ class CLI < Thor
5
+ desc "process INPUT, OUTPUT_DIR", "convert INPUT xlsx to resource bundles in OUTPUT_DIR"
6
+ method_option :prefix,
7
+ :default => "labels_",
8
+ :aliases => "-p",
9
+ :desc => "Specify the file prefix for generated bundle filenames (format <prefix><lang>.properties)"
10
+ def process(input_file, output_directory)
11
+ I18nGenerator.process(input_file, output_directory, options[:prefix])
12
+ end
13
+ end
14
+ end
@@ -8,15 +8,16 @@ module I18nGenerator
8
8
  # and writing them to output files
9
9
  class LabelWriter
10
10
 
11
- FILENAME_PREFIX = "labels_"
12
-
13
11
  FILE_HEADER_TEXT = <<-HEADER
14
- # THIS FILE IS GENERATED - PLEASE DO NOT EDIT (https://github.com/rulefinancial/i18n_generator)
12
+ # THIS FILE IS GENERATED - PLEASE DO NOT EDIT (https://github.com/rulefinancial/i18n_generator)
15
13
  HEADER
16
14
 
17
- def initialize(output_directory)
15
+ def initialize(output_directory, bundle_prefix)
18
16
  raise 'LabelWriter requires an output path' unless output_directory
17
+ raise 'LabelWriter requires a filename prefix' unless bundle_prefix
18
+
19
19
  @output_path = output_directory
20
+ @bundle_prefix = bundle_prefix
20
21
  end
21
22
 
22
23
  ##
@@ -72,7 +73,7 @@ module I18nGenerator
72
73
  ##
73
74
  # Produces the filename for a resource bundle
74
75
  def label_filename(language)
75
- FILENAME_PREFIX + language.to_s + ".properties"
76
+ @bundle_prefix + language.to_s + ".properties"
76
77
  end
77
78
  end
78
79
  end
@@ -4,7 +4,7 @@ require 'helper'
4
4
 
5
5
  class LabelWriterTest < Minitest::Test
6
6
  def setup
7
- @label_writer = I18nGenerator::LabelWriter.new("output_path")
7
+ @label_writer = I18nGenerator::LabelWriter.new("output_path", "labels_")
8
8
  end
9
9
 
10
10
  def test_not_null
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Young
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-07 00:00:00.000000000 Z
11
+ date: 2013-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: roo
@@ -16,14 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 1.11.2
19
+ version: 1.12.1
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
- version: 1.11.2
26
+ version: 1.12.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.18.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.18.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubyzip
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - <
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - <
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.0
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: minitest
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +72,14 @@ dependencies:
44
72
  requirements:
45
73
  - - ~>
46
74
  - !ruby/object:Gem::Version
47
- version: '3.12'
75
+ version: 4.0.1
48
76
  type: :development
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
80
  - - ~>
53
81
  - !ruby/object:Gem::Version
54
- version: '3.12'
82
+ version: 4.0.1
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: bundler
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -84,23 +112,22 @@ description: Generates locale-specific resource bundles (.properties files) from
84
112
  held in an Excel spreadsheet
85
113
  email: robyoung26@gmail.com
86
114
  executables:
87
- - i18n_generator
115
+ - i18n_generate
88
116
  extensions: []
89
117
  extra_rdoc_files:
90
118
  - LICENSE.txt
91
- - README.rdoc
119
+ - README.md
92
120
  files:
93
121
  - Gemfile
94
- - Gemfile.lock
95
122
  - LICENSE.txt
96
- - README.rdoc
123
+ - README.md
97
124
  - Rakefile
98
125
  - VERSION
99
- - bin/i18n_generator
126
+ - bin/i18n_generate
100
127
  - examples/example_labels.xlsx
101
128
  - i18n_generator.gemspec
102
- - i18n_generator.rb
103
129
  - lib/i18n_generator.rb
130
+ - lib/i18n_generator/cli.rb
104
131
  - lib/i18n_generator/excel_parser.rb
105
132
  - lib/i18n_generator/label.rb
106
133
  - lib/i18n_generator/label_writer.rb
@@ -1,64 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- addressable (2.3.5)
5
- builder (3.2.2)
6
- faraday (0.8.8)
7
- multipart-post (~> 1.2.0)
8
- git (1.2.5)
9
- github_api (0.10.1)
10
- addressable
11
- faraday (~> 0.8.1)
12
- hashie (>= 1.2)
13
- multi_json (~> 1.4)
14
- nokogiri (~> 1.5.2)
15
- oauth2
16
- hashie (2.0.5)
17
- highline (1.6.19)
18
- httpauth (0.2.0)
19
- jeweler (1.8.6)
20
- builder
21
- bundler (~> 1.0)
22
- git (>= 1.2.5)
23
- github_api (= 0.10.1)
24
- highline (>= 1.6.15)
25
- nokogiri (= 1.5.10)
26
- rake
27
- rdoc
28
- json (1.8.0)
29
- jwt (0.1.8)
30
- multi_json (>= 1.5)
31
- minitest (5.0.6)
32
- multi_json (1.7.8)
33
- multi_xml (0.5.5)
34
- multipart-post (1.2.0)
35
- nokogiri (1.5.10)
36
- oauth2 (0.9.2)
37
- faraday (~> 0.8)
38
- httpauth (~> 0.2)
39
- jwt (~> 0.1.4)
40
- multi_json (~> 1.0)
41
- multi_xml (~> 0.5)
42
- rack (~> 1.2)
43
- rack (1.5.2)
44
- rake (10.1.0)
45
- rdoc (3.12.2)
46
- json (~> 1.4)
47
- roo (1.11.2)
48
- nokogiri
49
- rubyzip
50
- spreadsheet (> 0.6.4)
51
- ruby-ole (1.2.11.7)
52
- rubyzip (0.9.9)
53
- spreadsheet (0.8.8)
54
- ruby-ole (>= 1.0)
55
-
56
- PLATFORMS
57
- ruby
58
-
59
- DEPENDENCIES
60
- bundler (~> 1.3.5)
61
- jeweler (~> 1.8.4)
62
- minitest (~> 5.0.6)
63
- rdoc (~> 3.12)
64
- roo (~> 1.11.2)
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'i18n_generator'
4
-
5
- unless ARGV.size == 2
6
- puts "Usage : label_generator.rb <input.xlsx> </path/to/output/dir>"
7
- exit
8
- end
9
-
10
- I18nGenerator.process(ARGV[0], ARGV[1])
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
- #!/usr/bin/env ruby
3
-
4
- require_relative 'lib/label'
5
- require_relative 'lib/excel_parser'
6
- require_relative 'lib/label_writer'
7
-
8
- unless ARGV.size == 2
9
- puts "Usage : label_generator.rb <input.xlsx> </path/to/output/dir>"
10
- exit
11
- end
12
-
13
- excel_parser = ExcelParser.new(ARGV[0])
14
- label_writer = LabelWriter.new(ARGV[1])
15
-
16
- labels = excel_parser.parse
17
- label_writer.write_labels(labels, excel_parser.translation_languages)