i18n-docs 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f1f7b7b3b0e95758db2c3cc0119add4a85c085c2
4
- data.tar.gz: d4ce87fe52ba0434f8afd7af0a64d6e9afd36ed8
3
+ metadata.gz: 652380c1ce699595e1e8f178caae06c4f8b5d838
4
+ data.tar.gz: f1bd46979506ce45acbfe438b8b8aaea5f78d75a
5
5
  SHA512:
6
- metadata.gz: 589f0f3b121d0a8b8000f5cf6a0521285aca80d8650a3b46f8bdeba40d9179dfa9b9ee0bccc32eb91bf642a716f288ebfc2295e70a2dc070d4498febdca41b9e
7
- data.tar.gz: df6734d665f51c46f6986c2a322fcec1502fc124423270b09ef6e3c949ec249b9f48d6f112cc9098fe52b568d5fabce2120d9ae45b89070184347e08348273f0
6
+ metadata.gz: cead59ccf41276601dfe75f336e7211ea1d71bac1b460f3518633d4d04da8de91befe70294d16dc76cc015076b2e07766ba36eb104f4809402f2f3c6d781db8d
7
+ data.tar.gz: ea99aa588c362abf09714aa18e375d0c057e011317c86c05c6e9fc481c984935777b20717551cebf300080f5e0265651679b5e13b583a879d716a292420958df
data/.gitignore CHANGED
@@ -6,4 +6,8 @@ pkg/*
6
6
  .rake_tasks~
7
7
  doc/yardoc
8
8
  .yardoc
9
- tmp/*
9
+ tmp/*
10
+ *.DS_Store
11
+ .ruby-version
12
+ .ruby-gemset
13
+ rdoc/
data/Gemfile CHANGED
@@ -1,4 +1,10 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in localch.gemspec
3
+ # Bundler will treat runtime dependencies like base dependencies, and
4
+ # development dependencies will be added by default to the :development group.
4
5
  gemspec
6
+
7
+ # Declare any dependencies that are still in development here instead of in
8
+ # your gemspec. These might include edge Rails or gems from your path or
9
+ # Git. Remember to move these dependencies to your gemspec before releasing
10
+ # your gem to rubygems.org.
data/README.md CHANGED
@@ -62,6 +62,11 @@ Following Rake tasks are added by the GEM to your Rails project:
62
62
  ![screenshot](http://dl.dropbox.com/u/385855/Screenshots/oom_.png)
63
63
  * From now on you should only update translations in Google Docs and run `rake i18n:import_translations` in the application to get changes. You can also export your
64
64
 
65
+ ## Error Handling
66
+
67
+ I case of the error `OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed` when running `rake i18n:import_translations`
68
+ Follow this: http://stackoverflow.com/questions/12562697/opensslsslsslerror-ssl-connect-returned-1-errno-0-state-sslv3-read-server-ce?answertab=active#tab-top
69
+
65
70
  ## Todo
66
71
 
67
72
  *Pull requests welcome!*
@@ -73,7 +78,12 @@ Following Rake tasks are added by the GEM to your Rails project:
73
78
 
74
79
  ## CHANGELOG
75
80
 
76
- ## 0.0.9
81
+ ### 0.0.10
82
+
83
+ * rename module to be inline with the gem-name
84
+ * various cleanups
85
+
86
+ ### 0.0.9
77
87
 
78
88
  * add version.rb
79
89
  * content downloaded is forced to UTF-8
@@ -82,10 +92,9 @@ Following Rake tasks are added by the GEM to your Rails project:
82
92
  * create tmp directory if it does not exist
83
93
  * strip spaces from keys
84
94
 
85
- ## 0.0.8
95
+ ### 0.0.7
86
96
 
87
- * screwed up rubygems.org push
88
- * this version has been YANKED
97
+ * YANKED from rubygems.org, sorry
89
98
 
90
99
  ### 0.0.7
91
100
 
data/Rakefile CHANGED
@@ -1,17 +1,28 @@
1
- require 'rubygems'
2
- require 'bundler'
3
1
  begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
9
5
  end
10
6
 
11
- require 'bundler/gem_tasks'
12
7
  require 'i18n-docs'
8
+ require 'rdoc/task'
9
+ require 'rake/testtask'
13
10
 
14
- task :default => [:test]
11
+ RDoc::Task.new(:rdoc) do |rdoc|
12
+ rdoc.rdoc_dir = 'rdoc'
13
+ rdoc.title = 'i18n-docs'
14
+ rdoc.options << '--line-numbers'
15
+ rdoc.rdoc_files.include('README.md')
16
+ rdoc.rdoc_files.include('lib/**/*.rb')
17
+ end
18
+
19
+ Bundler::GemHelper.install_tasks
15
20
 
16
- # Load tasks
17
- Dir.glob('tasks/**/*.rake').each { |r| Rake.application.add_import r }
21
+ # Test::Unit Tests
22
+ Rake::TestTask.new(:test) do |test|
23
+ test.libs << 'lib' << 'test'
24
+ test.pattern = 'test/**/*_test.rb'
25
+ test.verbose = true
26
+ end
27
+
28
+ task :default => [:test]
data/i18n-docs.gemspec CHANGED
@@ -1,11 +1,11 @@
1
1
  $:.push File.expand_path("../lib", __FILE__)
2
2
  # Maintain your gem's version:
3
- require 'localch_i18n/version'
3
+ require 'i18n_docs/version'
4
4
 
5
5
  # encoding: utf-8
6
6
  Gem::Specification.new do |s|
7
7
  s.name = 'i18n-docs'
8
- s.version = LocalchI18n::VERSION
8
+ s.version = I18nDocs::VERSION
9
9
  s.date = '2013-05-10'
10
10
  s.summary = "Maintain translations in Google Docs and export them to your Rails project."
11
11
  s.description = "GEM providing helper scripts to manage i18n translations in Google Docs. Features: check YAML files for missing translations; export YAML files to CSV; download translations from multiple Google spreadsheets and store to YAML files"
@@ -18,6 +18,4 @@ Gem::Specification.new do |s|
18
18
  s.add_dependency('rake')
19
19
 
20
20
  s.add_development_dependency('mocha', '~> 0.13.3')
21
- s.add_development_dependency('awesome_print')
22
-
23
21
  end
data/lib/i18n-docs.rb CHANGED
@@ -1,19 +1,13 @@
1
- # require 'rake'
2
-
3
- # load rake tasks in case GEM is included within rails project
4
-
5
1
  require 'csv'
6
2
  require 'yaml'
7
3
  require 'open-uri'
8
- require 'localch_i18n/missing_keys_finder'
9
- require 'localch_i18n/csv_to_yaml'
10
- require 'localch_i18n/translations'
11
- require 'localch_i18n/translation_file_export'
12
-
13
-
4
+ require 'i18n_docs/missing_keys_finder'
5
+ require 'i18n_docs/csv_to_yaml'
6
+ require 'i18n_docs/translations'
7
+ require 'i18n_docs/translation_file_export'
14
8
 
15
9
  if defined?(Rails)
16
- class LocalchI18nTask < Rails::Railtie
10
+ class I18nDocs::Railtie < Rails::Railtie
17
11
  rake_tasks do
18
12
  Dir[File.join(File.dirname(__FILE__),'tasks/*.rake')].each { |f| load f }
19
13
  end
@@ -1,4 +1,4 @@
1
- module LocalchI18n
1
+ module I18nDocs
2
2
 
3
3
  class CsvToYaml
4
4
 
@@ -61,10 +61,14 @@ module LocalchI18n
61
61
  tree = keys[0...-1]
62
62
  leaf = keys.last
63
63
  data_hash = tree.inject(@translations[locale]) do |memo, k|
64
- if memo.has_key?(k)
65
- memo[k]
64
+ if memo.is_a? Hash
65
+ if memo.has_key?(k)
66
+ memo[k]
67
+ else
68
+ memo[k] = {}
69
+ end
66
70
  else
67
- memo[k] = {}
71
+ raise "Error around key '#{keys.join '.'}': Expected #{memo.inspect} to be a Hash"
68
72
  end
69
73
  end
70
74
  data_hash[leaf] = value
@@ -1,5 +1,5 @@
1
1
 
2
- module LocalchI18n
2
+ module I18nDocs
3
3
  class MissingKeysFinder
4
4
  def initialize(backend)
5
5
  @backend = backend
@@ -109,4 +109,4 @@ module LocalchI18n
109
109
  end
110
110
 
111
111
  end
112
- end
112
+ end
@@ -1,33 +1,33 @@
1
- module LocalchI18n
1
+ module I18nDocs
2
2
  class TranslationFileExport
3
-
3
+
4
4
  attr_accessor :translations
5
-
5
+
6
6
  def initialize(source_dir, source_file, output_dir, locales)
7
7
  @source_dir = source_dir
8
8
  @source_file = source_file
9
-
9
+
10
10
  @output_file = File.join(output_dir, source_file.gsub('.yml', '.csv'))
11
11
  @locales = locales.map {|l| l.to_s }
12
-
12
+
13
13
  @translations = {}
14
14
  end
15
-
16
-
15
+
16
+
17
17
  def export
18
18
  load_translations
19
19
  write_to_csv
20
20
  end
21
-
22
-
21
+
22
+
23
23
  def write_to_csv
24
24
  main_locale = @locales.include?('en') ? 'en' : @locales.first
25
-
25
+
26
26
  puts " #{@source_file}: write CSV to '#{@output_file}' \n\n"
27
-
27
+
28
28
  CSV.open(@output_file, "wb") do |csv|
29
29
  csv << (["key"] + @locales)
30
-
30
+
31
31
  @translations[main_locale].keys.each do |key|
32
32
  values = @locales.map do |locale|
33
33
  @translations[locale][key]
@@ -35,30 +35,30 @@ module LocalchI18n
35
35
  csv << values.unshift(key)
36
36
  end
37
37
  end
38
-
38
+
39
39
  end
40
-
41
-
40
+
41
+
42
42
  def load_translations
43
43
  @locales.each do |locale|
44
44
  translation_hash = load_language(locale)
45
45
  @translations[locale] = flatten_translations_hash(translation_hash)
46
46
  end
47
47
  end
48
-
48
+
49
49
  def load_language(locale)
50
-
50
+
51
51
  puts " #{@source_file}: load translations for '#{locale}'"
52
-
52
+
53
53
  input_file = File.join(@source_dir, locale, @source_file)
54
54
  translations = {}
55
55
  translations = YAML.load_file(input_file) if File.exists?(input_file)
56
56
  translations[locale]
57
57
  end
58
-
58
+
59
59
  def flatten_translations_hash(translations, parent_key = [])
60
60
  flat_hash = {}
61
-
61
+
62
62
  translations.each do |key, t|
63
63
  current_key = parent_key.dup << key
64
64
  if t.is_a?(Hash)
@@ -71,7 +71,7 @@ module LocalchI18n
71
71
  end
72
72
  flat_hash
73
73
  end
74
-
74
+
75
75
  end
76
-
76
+
77
77
  end
@@ -4,7 +4,7 @@
4
4
  # store_translations
5
5
  # clean_up
6
6
  #
7
- module LocalchI18n
7
+ module I18nDocs
8
8
  class Translations
9
9
 
10
10
  attr_accessor :locales, :tmp_folder, :config_file, :csv_files
@@ -0,0 +1,3 @@
1
+ module I18nDocs
2
+ VERSION = '0.0.10'
3
+ end
@@ -3,7 +3,7 @@ namespace :i18n do
3
3
 
4
4
  desc "Find and list translation keys that do not exist in all locales"
5
5
  task :missing_keys => :environment do
6
- finder = LocalchI18n::MissingKeysFinder.new(I18n.backend)
6
+ finder = I18nDocs::MissingKeysFinder.new(I18n.backend)
7
7
  finder.find_missing_keys
8
8
  end
9
9
 
@@ -17,7 +17,7 @@ namespace :i18n do
17
17
  tmp_dir = Rails.root.join('tmp')
18
18
  Dir.mkdir(tmp_dir) unless Dir.exist?(tmp_dir)
19
19
 
20
- translations = LocalchI18n::Translations.new(config_file, tmp_dir)
20
+ translations = I18nDocs::Translations.new(config_file, tmp_dir)
21
21
  translations.download_files
22
22
  translations.store_translations
23
23
  translations.clean_up
@@ -44,7 +44,7 @@ namespace :i18n do
44
44
 
45
45
  input_files.each do |file|
46
46
  file = File.basename(file)
47
- exporter = LocalchI18n::TranslationFileExport.new(source_dir, file, output_dir, locales)
47
+ exporter = I18nDocs::TranslationFileExport.new(source_dir, file, output_dir, locales)
48
48
  exporter.export
49
49
  end
50
50
 
data/test/test_helper.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  require 'test/unit'
2
2
  require 'fileutils'
3
3
  require 'mocha/setup'
4
-
5
4
  require 'i18n-docs'
6
5
 
7
6
  Rails = Struct.new(:dummy)
@@ -16,7 +16,7 @@ module UnitTests
16
16
 
17
17
  Rails.stubs(:root).returns(stub(:join => @output_file))
18
18
 
19
- @csv_to_yaml = LocalchI18n::CsvToYaml.new(@input_file, @output_file, @locales)
19
+ @csv_to_yaml = I18nDocs::CsvToYaml.new(@input_file, @output_file, @locales)
20
20
  end
21
21
 
22
22
  def teardown
@@ -139,7 +139,7 @@ module UnitTests
139
139
  @csv_to_yaml.write_files
140
140
  assert File.exists?(@output_file)
141
141
  end
142
-
142
+
143
143
  def test_key_has_spaces
144
144
  row = {'key' => 'has. space', 'en' => 'yes', 'de' => 'ja'}
145
145
  @csv_to_yaml.process_row(row)
@@ -14,7 +14,7 @@ module UnitTests
14
14
  output_dir = tmp_dir
15
15
  locales = ['en', 'de']
16
16
 
17
- @exporter = LocalchI18n::TranslationFileExport.new(source_dir, source_file, output_dir, locales)
17
+ @exporter = I18nDocs::TranslationFileExport.new(source_dir, source_file, output_dir, locales)
18
18
  @output_file = File.join(output_dir, 'header.csv')
19
19
  end
20
20
 
@@ -10,7 +10,7 @@ module UnitTests
10
10
  create_tmp_dir
11
11
 
12
12
  config_file = File.join(fixture_path, 'config.yml')
13
- @translations = LocalchI18n::Translations.new(config_file, tmp_dir)
13
+ @translations = I18nDocs::Translations.new(config_file, tmp_dir)
14
14
  @translations.tmp_folder = tmp_dir
15
15
  @translations.locales = ['de', 'en']
16
16
 
@@ -55,6 +55,5 @@ module UnitTests
55
55
  assert File.exists?(expected_file)
56
56
  assert File.open(expected_file).read.encoding.name == 'UTF-8'
57
57
  end
58
-
59
58
  end
60
59
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n-docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Georg Kunz
@@ -43,20 +43,6 @@ dependencies:
43
43
  - - "~>"
44
44
  - !ruby/object:Gem::Version
45
45
  version: 0.13.3
46
- - !ruby/object:Gem::Dependency
47
- name: awesome_print
48
- requirement: !ruby/object:Gem::Requirement
49
- requirements:
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: '0'
53
- type: :development
54
- prerelease: false
55
- version_requirements: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: '0'
60
46
  description: 'GEM providing helper scripts to manage i18n translations in Google Docs.
61
47
  Features: check YAML files for missing translations; export YAML files to CSV; download
62
48
  translations from multiple Google spreadsheets and store to YAML files'
@@ -72,13 +58,12 @@ files:
72
58
  - Rakefile
73
59
  - i18n-docs.gemspec
74
60
  - lib/i18n-docs.rb
75
- - lib/localch_i18n/csv_to_yaml.rb
76
- - lib/localch_i18n/missing_keys_finder.rb
77
- - lib/localch_i18n/translation_file_export.rb
78
- - lib/localch_i18n/translations.rb
79
- - lib/localch_i18n/version.rb
61
+ - lib/i18n_docs/csv_to_yaml.rb
62
+ - lib/i18n_docs/missing_keys_finder.rb
63
+ - lib/i18n_docs/translation_file_export.rb
64
+ - lib/i18n_docs/translations.rb
65
+ - lib/i18n_docs/version.rb
80
66
  - lib/tasks/store_translations.rake
81
- - tasks/test.rake
82
67
  - test/fixtures/config.yml
83
68
  - test/fixtures/de/header.yml
84
69
  - test/fixtures/en/header.yml
@@ -1,3 +0,0 @@
1
- module LocalchI18n
2
- VERSION = '0.0.9'
3
- end
data/tasks/test.rake DELETED
@@ -1,9 +0,0 @@
1
- require 'rake/testtask'
2
-
3
- # Test::Unit Tests
4
- Rake::TestTask.new(:test) do |test|
5
- test.libs << 'lib' << 'test'
6
- test.pattern = 'test/**/*_test.rb'
7
- test.verbose = true
8
- end
9
-