t_t 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile +6 -0
- data/lib/t_t/formaters.rb +37 -0
- data/lib/t_t/tasks.rb +3 -10
- data/readme.md +2 -0
- data/t_t.gemspec +1 -1
- data/tests/lib/formaters_test.rb +23 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1778d63797bef7e82a460b8db4120d651651cfd
|
4
|
+
data.tar.gz: 6ec1bc34106914cf96f5d05609153f61329d0e2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05623243e817f16aa945b7c7b01fd56b244c41b0d1d0f8b0958918bdd978fa78e5352039672bbde0e03a2a9fc7ba8b33a6680df534b398745e81e3642a857a72
|
7
|
+
data.tar.gz: c2acf9ffb897a9ec497c1f02a24a0e11b60912dd156661a9ce1d195aa3aeb98471986d4d35fc75db387f6f7fdb82a2fdf2f0916d32ad1de50dce0a7946017535
|
data/Dockerfile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module TT
|
2
|
+
module Formaters
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def print(groups, format)
|
6
|
+
case format
|
7
|
+
when 'csv' then csv(groups)
|
8
|
+
else stdout(groups)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def stdout(groups)
|
15
|
+
groups.each do |group, list|
|
16
|
+
puts "# #{ group }"
|
17
|
+
|
18
|
+
list.each do |line|
|
19
|
+
puts line.inject("") { |r, (k, v)| r + "#{ k.upcase }: #{ v.to_s.encode('utf-8') }\n" }
|
20
|
+
end
|
21
|
+
|
22
|
+
puts '---'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def csv(groups)
|
27
|
+
return if groups.empty?
|
28
|
+
|
29
|
+
require 'csv'
|
30
|
+
CSV.open('tmp/tt-missed.csv', 'w') do |io|
|
31
|
+
locales = groups.first.last.first.keys.sort
|
32
|
+
io << locales.map(&:upcase)
|
33
|
+
groups.each_value { |list| list.each { |line| io << line.values_at(*locales) } }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/t_t/tasks.rb
CHANGED
@@ -9,17 +9,10 @@ namespace :tt do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
desc "Shows a missed keys in the translation file groups"
|
12
|
-
task :m => [:s] do
|
12
|
+
task :m, [:format] => [:s] do |t, args|
|
13
13
|
if sync = TT::Rails.sync
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
list.each do |line|
|
18
|
-
puts line.inject("") { |r, (k, v)| r + "#{ k.upcase }: #{ v.to_s.encode('utf-8') }\n" }
|
19
|
-
end
|
20
|
-
|
21
|
-
puts '---'
|
22
|
-
end
|
14
|
+
require_relative './formaters'
|
15
|
+
TT::Formaters.print(sync.missed, args[:format])
|
23
16
|
else
|
24
17
|
puts "t_t: Please, setup the synchronisation first"
|
25
18
|
end
|
data/readme.md
CHANGED
@@ -102,6 +102,8 @@ Just add `gem "t_t"` into your Gemfile and run `bundle`.
|
|
102
102
|
Dos-T is tested against Ruby 1.9.3+ & JRuby(1.9+ compatible). If your application uses Ruby on Rails the framework version should be 3.2+
|
103
103
|
|
104
104
|
## Changelog
|
105
|
+
- 1.3.1
|
106
|
+
- Add csv export in tt:m task
|
105
107
|
- 1.3.0
|
106
108
|
- Allow specify a custom mark for locale file synchonization
|
107
109
|
- 1.2.2
|
data/t_t.gemspec
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 't_t/formaters'
|
3
|
+
|
4
|
+
describe "Formaters" do
|
5
|
+
it 'prints csv output' do
|
6
|
+
groups = { 'deserts.yml' => [{ 'en' => 'Apple', 'es' => 'Manzana' }, { 'es' => 'Dulce', 'en' => 'Candy' }] }
|
7
|
+
begin
|
8
|
+
TT::Formaters::CSV = Struct.new(:example) {
|
9
|
+
def open(*args, &block)
|
10
|
+
io = []
|
11
|
+
block.call(io)
|
12
|
+
example.assert_equal io.length, 3
|
13
|
+
example.assert_equal io[0], ['EN', 'ES']
|
14
|
+
example.assert_equal io[1], ['Apple', 'Manzana']
|
15
|
+
example.assert_equal io[2], ['Candy', 'Dulce']
|
16
|
+
end
|
17
|
+
}.new(self)
|
18
|
+
TT::Formaters.print(groups, 'csv')
|
19
|
+
ensure
|
20
|
+
TT::Formaters.send(:remove_const, :CSV)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: t_t
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Pchelintsev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -117,6 +117,7 @@ extra_rdoc_files: []
|
|
117
117
|
files:
|
118
118
|
- ".gitignore"
|
119
119
|
- ".travis.yml"
|
120
|
+
- Dockerfile
|
120
121
|
- Gemfile
|
121
122
|
- Rakefile
|
122
123
|
- cheatsheet.md
|
@@ -133,6 +134,7 @@ files:
|
|
133
134
|
- lib/t_t/action_factory.rb
|
134
135
|
- lib/t_t/base.rb
|
135
136
|
- lib/t_t/builtin_rules.rb
|
137
|
+
- lib/t_t/formaters.rb
|
136
138
|
- lib/t_t/i18n_sync.rb
|
137
139
|
- lib/t_t/rails.rb
|
138
140
|
- lib/t_t/tasks.rb
|
@@ -141,6 +143,7 @@ files:
|
|
141
143
|
- tests/lib/action_factory_test.rb
|
142
144
|
- tests/lib/action_pack_test.rb
|
143
145
|
- tests/lib/builtin_rules_test.rb
|
146
|
+
- tests/lib/formaters_test.rb
|
144
147
|
- tests/lib/i18n_sync_test.rb
|
145
148
|
- tests/lib/model_module_test.rb
|
146
149
|
- tests/lib/model_test.rb
|
@@ -166,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
169
|
version: '0'
|
167
170
|
requirements: []
|
168
171
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.6.
|
172
|
+
rubygems_version: 2.6.14
|
170
173
|
signing_key:
|
171
174
|
specification_version: 4
|
172
175
|
summary: An opinioned I18n helper
|