yaml-translator 0.11.1 → 0.11.2

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: d4a831e015e8495d91dfcd7ce06da490c2e92a8c
4
- data.tar.gz: 19a700af24925a9b0bbb79324e057c63d0a50faf
3
+ metadata.gz: e3bfa580dc446bc7a0c98da5d0cc7ce74d191b35
4
+ data.tar.gz: 75427c09ee6f7749e01509990230b47a8e4aa0a1
5
5
  SHA512:
6
- metadata.gz: 3f6f078dadceae0715d084bafa2ee1431947ea4f92d4b4d3f353670b909c62b2995857b51f34f6f7535d5add5b9acd1acd8244bf818d82eb41f6bff91702ccad
7
- data.tar.gz: 8b28ba8cb0953650264e528b23591c3c1438d1c2b0fef1d3fda0eb296c96f668628eb2a7d41b03b085eb5b1f6b0d3fad62dc130b32f238491b12c9ef2593dadc
6
+ metadata.gz: 984c67e93ed798aca92a50e4fb78738c72bda3afb8c3e470fd94003f19f21e67615a8cefac9278f765235713444abaf0ff427f43958931aba57fed2dde99206e
7
+ data.tar.gz: 1115fdb4126c618712970663bd19df037d8d796b15eb94bd4584d2c9ba88013b4d03c81ed7d54fbf88195fe12f75f3142ce46039d36deb8caa8dc0cb5d8edc9f
data/.rubocop.yml ADDED
@@ -0,0 +1,16 @@
1
+ inherit_gem:
2
+ onkcop:
3
+ - "config/rubocop.yml"
4
+ # uncomment if use rails cops
5
+ # - "config/rails.yml"
6
+ # uncomment if use rspec cops
7
+ # - "config/rspec.yml"
8
+
9
+ AllCops:
10
+ TargetRubyVersion: 2.4
11
+
12
+ Style/PreferredHashMethods:
13
+ EnforcedStyle: short
14
+
15
+ Style/StringLiterals:
16
+ EnforcedStyle: single_quotes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- yaml-translator (0.11.1)
4
+ yaml-translator (0.11.2)
5
5
  diff-lcs
6
6
  easy_translate
7
7
 
@@ -9,6 +9,7 @@ GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  ansi (1.5.0)
12
+ ast (2.3.0)
12
13
  coveralls (0.7.2)
13
14
  multi_json (~> 1.3)
14
15
  rest-client (= 1.6.7)
@@ -27,6 +28,13 @@ GEM
27
28
  mime-types-data (~> 3.2015)
28
29
  mime-types-data (3.2016.0521)
29
30
  multi_json (1.12.1)
31
+ onkcop (0.47.1.2)
32
+ rubocop (~> 0.47.1)
33
+ rubocop-rspec (>= 1.12.0)
34
+ parser (2.4.0.0)
35
+ ast (~> 2.2)
36
+ powerpack (0.1.1)
37
+ rainbow (2.2.1)
30
38
  rake (10.5.0)
31
39
  rest-client (1.6.7)
32
40
  mime-types (>= 1.16)
@@ -45,6 +53,15 @@ GEM
45
53
  rspec-support (3.5.0)
46
54
  rspec-temp_dir (1.0.0)
47
55
  rspec (>= 3.0)
56
+ rubocop (0.47.1)
57
+ parser (>= 2.3.3.1, < 3.0)
58
+ powerpack (~> 0.1)
59
+ rainbow (>= 1.99.1, < 3.0)
60
+ ruby-progressbar (~> 1.7)
61
+ unicode-display_width (~> 1.0, >= 1.0.1)
62
+ rubocop-rspec (1.13.0)
63
+ rubocop (>= 0.42.0)
64
+ ruby-progressbar (1.8.1)
48
65
  simplecov (0.13.0)
49
66
  docile (~> 1.1.0)
50
67
  json (>= 1.8, < 3)
@@ -60,6 +77,7 @@ GEM
60
77
  thread (0.2.2)
61
78
  thread_safe (0.3.6)
62
79
  tins (0.13.2)
80
+ unicode-display_width (1.1.3)
63
81
 
64
82
  PLATFORMS
65
83
  ruby
@@ -67,6 +85,7 @@ PLATFORMS
67
85
  DEPENDENCIES
68
86
  bundler (~> 1.0)
69
87
  coveralls
88
+ onkcop
70
89
  rake (~> 10.0)
71
90
  rspec
72
91
  rspec-temp_dir
@@ -75,4 +94,4 @@ DEPENDENCIES
75
94
  yaml-translator!
76
95
 
77
96
  BUNDLED WITH
78
- 1.14.1
97
+ 1.14.6
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
@@ -10,9 +10,9 @@ translator = ::YamlTranslator.create(
10
10
 
11
11
  diff_some_dir = File.join(File.dirname(__FILE__), 'diff/some')
12
12
  diff_locale = translator.file("#{diff_some_dir}/en.yml").diff("#{diff_some_dir}/new.en.yml")
13
- diff_locale.to(:ja).save_to("/tmp", prefix: 'some_diff.')
13
+ diff_locale.to(:ja).save_to('/tmp', prefix: 'some_diff.')
14
14
 
15
15
  # diff nothing!!
16
16
  diff_none_dir = File.join(File.dirname(__FILE__), 'diff/none')
17
17
  diff_locale = translator.file("#{diff_none_dir}/en.yml").diff("#{diff_none_dir}/new.en.yml")
18
- diff_locale.to(:ja).save_to("/tmp", prefix: 'no_diff.')
18
+ diff_locale.to(:ja).save_to('/tmp', prefix: 'no_diff.')
@@ -7,7 +7,7 @@ require 'yaml-translator/adapters'
7
7
 
8
8
  module YamlTranslator
9
9
  class << self
10
- def create(name, options={})
10
+ def create(name, options = {})
11
11
  adapter = Adapters.find_and_create(name, options)
12
12
  Translator.new(adapter)
13
13
  end
@@ -5,8 +5,8 @@ require 'yaml-translator/adapters/google_translate_adapter'
5
5
  module YamlTranslator
6
6
  module Adapters
7
7
  class << self
8
- def find_and_create(name, options={})
9
- prefix = name.to_s.split('_').map { |v| v.capitalize }.join('')
8
+ def find_and_create(name, options = {})
9
+ prefix = name.to_s.split('_').map(&:capitalize).join('')
10
10
  find_adapter_name = "#{prefix}Adapter"
11
11
  raise "adapter #{find_adapter_name} is not defined" unless class_exists?(find_adapter_name)
12
12
  const_get(find_adapter_name).new(options)
@@ -3,12 +3,12 @@ module YamlTranslator
3
3
  class BaseAdapter
4
4
  attr_reader :name
5
5
 
6
- def initialize(options={})
6
+ def initialize(options = {})
7
7
  @name = adapter_name
8
8
  @options = options
9
9
  end
10
10
 
11
- def translate(values, options={})
11
+ def translate(values, options = {})
12
12
  raise 'Translation processing is not implemented'
13
13
  end
14
14
 
@@ -18,15 +18,15 @@ module YamlTranslator
18
18
 
19
19
  private
20
20
 
21
- def adapter_name
22
- ptn = /[A-Z\s]*[^A-Z]*/
23
- class_name = self.class.name.split('::').last
24
- snake_case_s = class_name.gsub(/Adapter/, '').scan(ptn)
25
- .map { |v| v.empty? ? nil : v.downcase }
26
- .compact
27
- .join('_')
28
- snake_case_s.to_sym
29
- end
21
+ def adapter_name
22
+ ptn = /[A-Z\s]*[^A-Z]*/
23
+ class_name = self.class.name.split('::').last
24
+ snake_case_s = class_name.gsub(/Adapter/, '').scan(ptn).
25
+ map { |v| v.empty? ? nil : v.downcase }.
26
+ compact.
27
+ join('_')
28
+ snake_case_s.to_sym
29
+ end
30
30
  end
31
31
  end
32
32
  end
@@ -6,7 +6,7 @@ module YamlTranslator
6
6
  # Translate for locale texts
7
7
  # @param [Hash] locale texts of translate target
8
8
  # @return [Hash] locale texts
9
- def translate(values, options={})
9
+ def translate(values, options = {})
10
10
  keys = []
11
11
  texts = []
12
12
  opts = default_options.merge(options)
@@ -15,7 +15,7 @@ module YamlTranslator
15
15
  keys << key # 0: a.b, 1: a.b.c
16
16
  texts << text # 0: a, 1: b
17
17
  end
18
- translated_texts = EasyTranslate.translate(texts, :to => opts[:to], :key => @options[:api_key])
18
+ translated_texts = EasyTranslate.translate(texts, to: opts[:to], key: @options[:api_key])
19
19
  Hash[keys.zip(translated_texts || [])]
20
20
  end
21
21
  end
@@ -4,7 +4,7 @@ module YamlTranslator
4
4
  # Always return the text before translation
5
5
  # @param [Hash] locale texts of translate target
6
6
  # @return [Hash] locale texts
7
- def translate(values, options={})
7
+ def translate(values, options = {})
8
8
  values
9
9
  end
10
10
  end
@@ -19,16 +19,16 @@ module YamlTranslator
19
19
 
20
20
  def initialize(config)
21
21
  super(config)
22
- @lang = config.keys.first.to_sym # FIXME check support language
22
+ @lang = config.keys.first.to_sym # FIXME: check support language
23
23
  end
24
24
 
25
25
  def locale_texts
26
26
  self[lang]
27
27
  end
28
28
 
29
- def translate(translator, options={})
29
+ def translate(translator, options = {})
30
30
  translated_values = translator.translate(compact_of(locale_texts), options)
31
- Locale.new(Hash[*[options[:to], tree_of(translated_values)]])
31
+ Locale.new(Hash[options[:to], tree_of(translated_values)])
32
32
  end
33
33
 
34
34
  def diff(other_locale)
@@ -70,12 +70,12 @@ module YamlTranslator
70
70
  # @param dir [String] Directory path to save the file
71
71
  # @param options [Hash] Options for saving
72
72
  # @return int
73
- def save(dir=Dir.pwd, options={})
73
+ def save(dir = Dir.pwd, options = {})
74
74
  prefix = options[:prefix] if options.key?(:prefix)
75
75
  write_file(File.join(dir, "#{prefix}#{lang}.yml"), options)
76
76
  end
77
77
 
78
- def save_to(dir, options={})
78
+ def save_to(dir, options = {})
79
79
  save(dir, options)
80
80
  end
81
81
 
@@ -88,53 +88,53 @@ module YamlTranslator
88
88
  to_yaml
89
89
  end
90
90
 
91
- def to_yaml(options={})
92
- Hash[*[lang.to_s, locale_texts]].to_yaml(options)
91
+ def to_yaml(options = {})
92
+ Hash[lang.to_s, locale_texts].to_yaml(options)
93
93
  end
94
94
 
95
95
  private
96
96
 
97
- # Covert to a flatten hash
98
- def compact_of(values={}, path=KeyPath.new)
99
- result = {}
100
- values.each_with_index do |(i, v)|
101
- path.move_to(i)
102
- if v.is_a?(Hash)
103
- result.merge!(compact_of(v, path))
104
- else
105
- result[path.to_s] = v
97
+ # Covert to a flatten hash
98
+ def compact_of(values = {}, path = KeyPath.new)
99
+ result = {}
100
+ values.each_with_index do |(i, v)|
101
+ path.move_to(i)
102
+ if v.is_a?(Hash)
103
+ result.merge!(compact_of(v, path))
104
+ else
105
+ result[path.to_s] = v
106
+ end
107
+ path.leave
106
108
  end
107
- path.leave
109
+ result
108
110
  end
109
- result
110
- end
111
111
 
112
- # Returning the flattened structure to the tree structure
113
- #
114
- # @param [Hash] values flatten Hash
115
- # @return [Hash] translated hash
116
- def tree_of(values)
117
- result = {}
118
- current = result
119
- values.each do |k, v|
120
- keys = k.to_s.split('.')
121
- last_key = keys.pop
122
- keys.each do |ks|
123
- current = if current.key?(ks)
124
- current[ks]
125
- else
126
- current[ks] = {}
127
- current[ks]
128
- end
129
- end
130
- current[last_key] = v
112
+ # Returning the flattened structure to the tree structure
113
+ #
114
+ # @param [Hash] values flatten Hash
115
+ # @return [Hash] translated hash
116
+ def tree_of(values)
117
+ result = {}
131
118
  current = result
119
+ values.each do |k, v|
120
+ keys = k.to_s.split('.')
121
+ last_key = keys.pop
122
+ keys.each do |ks|
123
+ current = if current.key?(ks)
124
+ current[ks]
125
+ else
126
+ current[ks] = {}
127
+ current[ks]
128
+ end
129
+ end
130
+ current[last_key] = v
131
+ current = result
132
+ end
133
+ result
132
134
  end
133
- result
134
- end
135
135
 
136
- def write_file(file_path, options={})
137
- File.write(file_path, to_yaml(options))
138
- end
136
+ def write_file(file_path, options = {})
137
+ File.write(file_path, to_yaml(options))
138
+ end
139
139
  end
140
140
  end
@@ -1,4 +1,4 @@
1
- require "yaml-translator/adapters"
1
+ require 'yaml-translator/adapters'
2
2
 
3
3
  module YamlTranslator
4
4
  class Translator
@@ -14,7 +14,7 @@ module YamlTranslator
14
14
  #
15
15
  # @param [Hash] locale texts of translate target
16
16
  # @return [Hash] locale texts
17
- def translate(locale_texts, options={})
17
+ def translate(locale_texts, options = {})
18
18
  @adapter.translate(locale_texts, options)
19
19
  end
20
20
 
@@ -1,3 +1,3 @@
1
1
  module YamlTranslator
2
- VERSION = '0.11.1'
2
+ VERSION = '0.11.2'.freeze
3
3
  end
@@ -3,14 +3,17 @@ require 'yaml'
3
3
  module Helpers
4
4
  module LocaleHelper
5
5
  def yaml_path(name)
6
- "#{File.dirname(__FILE__)}/../fixtures/#{name.to_s}.yml"
6
+ "#{File.dirname(__FILE__)}/../fixtures/#{name}.yml"
7
7
  end
8
+
8
9
  def yaml_contents(name)
9
- File::open(yaml_path(name), &:read)
10
+ File.open(yaml_path(name), &:read)
10
11
  end
12
+
11
13
  def load_yaml(name)
12
14
  YAML.load(yaml_contents(name))
13
15
  end
16
+
14
17
  def load_locale(name)
15
18
  YamlTranslator::Locale.load_file(yaml_path(name))
16
19
  end
data/spec/spec_helper.rb CHANGED
@@ -19,7 +19,7 @@ if ENV['COVERALLS_REPO_TOKEN']
19
19
  Coveralls.wear!
20
20
  else
21
21
  SimpleCov.formatters = [
22
- SimpleCov::Formatter::Console
22
+ SimpleCov::Formatter::Console,
23
23
  ]
24
24
  end
25
25
 
@@ -9,7 +9,7 @@ describe YamlTranslator::Adapters::GoogleTranslateAdapter do
9
9
  values
10
10
  end
11
11
  before do
12
- allow(EasyTranslate).to receive(:translate).and_return(['a_a', 'a_b'])
12
+ allow(EasyTranslate).to receive(:translate).and_return(%w(a_a a_b))
13
13
  end
14
14
  subject { adapter.translate(some_values, to: :ja) }
15
15
  it 'should be return translate results' do
@@ -22,7 +22,7 @@ describe YamlTranslator::Locale do
22
22
  let(:after_locale) { load_locale('diff/after/en') }
23
23
  let(:single_key_hash) do
24
24
  {
25
- 'en.foo1.foo3' => 'foo1-3'
25
+ 'en.foo1.foo3' => 'foo1-3',
26
26
  }
27
27
  end
28
28
  it 'should be return flatten hash' do
@@ -36,9 +36,9 @@ describe YamlTranslator::Locale do
36
36
  let(:single_key_hash) do
37
37
  {
38
38
  'en.bar' => 'bar',
39
- 'en.foo'=> 'foo',
39
+ 'en.foo' => 'foo',
40
40
  'en.foo1.foo1' => 'foo1-1',
41
- 'en.foo1.foo2' => 'foo1-2'
41
+ 'en.foo1.foo2' => 'foo1-2',
42
42
  }
43
43
  end
44
44
  it 'should be return flatten hash' do
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = YamlTranslator::VERSION
9
9
  spec.authors = ['Noritaka Horio']
10
10
  spec.email = ['holy.shared.design@gmail.com']
11
- spec.summary = %q{Translate for the locales configuration file}
12
- spec.description = %q{Translate for the locales configuration file}
11
+ spec.summary = 'Translate for the locales configuration file'
12
+ spec.description = 'Translate for the locales configuration file'
13
13
  spec.homepage = 'https://github.com/holyshared/yaml-translator'
14
14
  spec.license = 'MIT'
15
15
 
@@ -28,4 +28,5 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'simplecov-console'
29
29
  spec.add_development_dependency 'coveralls'
30
30
  spec.add_development_dependency 'rspec-temp_dir'
31
+ spec.add_development_dependency 'onkcop'
31
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaml-translator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.11.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noritaka Horio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-28 00:00:00.000000000 Z
11
+ date: 2017-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: easy_translate
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: onkcop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  description: Translate for the locales configuration file
140
154
  email:
141
155
  - holy.shared.design@gmail.com
@@ -147,6 +161,7 @@ files:
147
161
  - ".editorconfig"
148
162
  - ".gitignore"
149
163
  - ".rspec"
164
+ - ".rubocop.yml"
150
165
  - ".travis.yml"
151
166
  - Gemfile
152
167
  - Gemfile.lock
@@ -203,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
218
  version: '0'
204
219
  requirements: []
205
220
  rubyforge_project:
206
- rubygems_version: 2.5.2
221
+ rubygems_version: 2.6.8
207
222
  signing_key:
208
223
  specification_version: 4
209
224
  summary: Translate for the locales configuration file