phrase 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/.gitignore +0 -2
  2. data/.travis.yml +1 -0
  3. data/lib/phrase.rb +1 -0
  4. data/lib/phrase/api/client.rb +11 -2
  5. data/lib/phrase/delegate.rb +6 -2
  6. data/lib/phrase/formats.rb +151 -0
  7. data/lib/phrase/formats/csv.rb +19 -0
  8. data/lib/phrase/{tool/formats → formats}/custom.rb +3 -1
  9. data/lib/phrase/formats/gettext.rb +27 -0
  10. data/lib/phrase/formats/gettext_template.rb +19 -0
  11. data/lib/phrase/formats/ini.rb +19 -0
  12. data/lib/phrase/formats/json.rb +19 -0
  13. data/lib/phrase/formats/plist.rb +19 -0
  14. data/lib/phrase/formats/properties.rb +19 -0
  15. data/lib/phrase/formats/properties_xml.rb +19 -0
  16. data/lib/phrase/formats/qt_phrase_book.rb +19 -0
  17. data/lib/phrase/formats/qt_translation_source.rb +19 -0
  18. data/lib/phrase/formats/resx.rb +19 -0
  19. data/lib/phrase/formats/resx_windowsphone.rb +19 -0
  20. data/lib/phrase/formats/simple_json.rb +19 -0
  21. data/lib/phrase/formats/strings.rb +39 -0
  22. data/lib/phrase/formats/tmx.rb +19 -0
  23. data/lib/phrase/formats/xliff.rb +19 -0
  24. data/lib/phrase/formats/xml.rb +49 -0
  25. data/lib/phrase/formats/yaml.rb +19 -0
  26. data/lib/phrase/formats/yaml_symfony.rb +19 -0
  27. data/lib/phrase/hash_flattener.rb +15 -14
  28. data/lib/phrase/tool.rb +1 -1
  29. data/lib/phrase/tool/commands/pull.rb +4 -4
  30. data/lib/phrase/tool/commands/push.rb +14 -6
  31. data/lib/phrase/tool/options.rb +2 -1
  32. data/lib/phrase/tool/options_factory.rb +5 -1
  33. data/lib/phrase/version.rb +1 -1
  34. metadata +43 -38
  35. data/lib/phrase/tool/formats.rb +0 -87
  36. data/lib/phrase/tool/formats/base.rb +0 -37
  37. data/lib/phrase/tool/formats/gettext.rb +0 -19
  38. data/lib/phrase/tool/formats/gettext_pot.rb +0 -11
  39. data/lib/phrase/tool/formats/ini.rb +0 -11
  40. data/lib/phrase/tool/formats/json.rb +0 -11
  41. data/lib/phrase/tool/formats/plist.rb +0 -11
  42. data/lib/phrase/tool/formats/properties.rb +0 -11
  43. data/lib/phrase/tool/formats/qt_phrase_book.rb +0 -11
  44. data/lib/phrase/tool/formats/qt_translation_source.rb +0 -11
  45. data/lib/phrase/tool/formats/resx.rb +0 -11
  46. data/lib/phrase/tool/formats/strings.rb +0 -31
  47. data/lib/phrase/tool/formats/xliff.rb +0 -11
  48. data/lib/phrase/tool/formats/xml.rb +0 -41
  49. data/lib/phrase/tool/formats/yaml.rb +0 -11
@@ -0,0 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class Resx < Phrase::Formats::Base
6
+ def self.filename_for_locale(locale)
7
+ "phrase.#{locale.name}.resx"
8
+ end
9
+
10
+ def self.locale_aware?
11
+ false
12
+ end
13
+
14
+ def self.extensions
15
+ [:resx]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class ResxWindowsphone < Phrase::Formats::Base
6
+ def self.filename_for_locale(locale)
7
+ "phrase.#{locale.name}.resx"
8
+ end
9
+
10
+ def self.locale_aware?
11
+ false
12
+ end
13
+
14
+ def self.extensions
15
+ [:resx]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class SimpleJson < Phrase::Formats::Base
6
+ def self.filename_for_locale(locale)
7
+ "phrase.#{locale.name}.json"
8
+ end
9
+
10
+ def self.locale_aware?
11
+ false
12
+ end
13
+
14
+ def self.extensions
15
+ [:json]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,39 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class Strings < Phrase::Formats::Base
6
+ def self.directory_for_locale(locale)
7
+ name = locale.code || locale.name
8
+ "#{formatted(name)}.lproj"
9
+ end
10
+
11
+ def self.filename_for_locale(locale)
12
+ "Localizable.strings"
13
+ end
14
+
15
+ def self.target_directory
16
+ "./"
17
+ end
18
+
19
+ def self.extract_locale_name_from_file_path(file_path)
20
+ file_path.scan(/\/([a-zA-Z\-_]*).lproj\//i).first.try(:first)
21
+ end
22
+
23
+ def self.locale_aware?
24
+ true
25
+ end
26
+
27
+ def self.formatted(name)
28
+ return name unless name.include?("-")
29
+ parts = name.split("-")
30
+ "#{parts.first}_#{parts.last.upcase}"
31
+ end
32
+ private_class_method :formatted
33
+
34
+ def self.extensions
35
+ [:strings]
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class Tmx < Phrase::Formats::Base
6
+ def self.filename_for_locale(locale)
7
+ "phrase.#{locale.name}.tmx"
8
+ end
9
+
10
+ def self.locale_aware?
11
+ false
12
+ end
13
+
14
+ def self.extensions
15
+ [:tmx]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class Xliff < Phrase::Formats::Base
6
+ def self.filename_for_locale(locale)
7
+ "phrase.#{locale.name}.xlf"
8
+ end
9
+
10
+ def self.locale_aware?
11
+ true
12
+ end
13
+
14
+ def self.extensions
15
+ [:xlf]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,49 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class Xml < Phrase::Formats::Base
6
+ def self.directory_for_locale(locale)
7
+ if locale.default?
8
+ "values"
9
+ else
10
+ name = locale.code || locale.name
11
+ "values-#{formatted(name)}"
12
+ end
13
+ end
14
+
15
+ def self.filename_for_locale(locale)
16
+ "strings.xml"
17
+ end
18
+
19
+ def self.target_directory
20
+ "res/"
21
+ end
22
+
23
+ def self.extract_locale_name_from_file_path(file_path)
24
+ return default_locale_name if file_path.scan(/\/values\/strings.xml/i).first
25
+ locale_part = file_path.scan(/\/values-([a-zA-Z\-_]*)\/strings.xml/i).first.try(:first)
26
+ if locale_part and locale_part.include?("-r")
27
+ "#{locale_part.split("-r").first}-#{locale_part.split("-r").last}"
28
+ else
29
+ locale_part
30
+ end
31
+ end
32
+
33
+ def self.locale_aware?
34
+ true
35
+ end
36
+
37
+ def self.formatted(name)
38
+ return name unless name.include?("-")
39
+ parts = name.split("-")
40
+ "#{parts.first}-r#{parts.last.upcase}"
41
+ end
42
+ private_class_method :formatted
43
+
44
+ def self.extensions
45
+ [:xml]
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class Yaml < Phrase::Formats::Base
6
+ def self.filename_for_locale(locale)
7
+ "phrase.#{locale.name}.yml"
8
+ end
9
+
10
+ def self.locale_aware?
11
+ true
12
+ end
13
+
14
+ def self.extensions
15
+ [:yml]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module Phrase
4
+ module Formats
5
+ class YamlSymfony < Phrase::Formats::Base
6
+ def self.filename_for_locale(locale)
7
+ "phrase.#{locale.name}.yml"
8
+ end
9
+
10
+ def self.locale_aware?
11
+ false
12
+ end
13
+
14
+ def self.extensions
15
+ [:yml]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,20 +1,21 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
- module Phrase::HashFlattener
4
-
5
- FLATTEN_SEPARATOR = "."
6
- SEPARATOR_ESCAPE_CHAR = "\001"
3
+ module Phrase
4
+ module HashFlattener
5
+ FLATTEN_SEPARATOR = "."
6
+ SEPARATOR_ESCAPE_CHAR = "\001"
7
7
 
8
- def self.escape_default_separator(key)
9
- key.to_s.tr(FLATTEN_SEPARATOR, SEPARATOR_ESCAPE_CHAR)
10
- end
8
+ def self.escape_default_separator(key)
9
+ key.to_s.tr(FLATTEN_SEPARATOR, SEPARATOR_ESCAPE_CHAR)
10
+ end
11
11
 
12
- def self.flatten(hash, escape, previous_key=nil, &block)
13
- hash.each_pair do |key, value|
14
- key = escape_default_separator(key) if escape
15
- current_key = [previous_key, key].compact.join(FLATTEN_SEPARATOR).to_sym
16
- yield current_key, value
17
- flatten(value, escape, current_key, &block) if value.is_a?(Hash)
12
+ def self.flatten(hash, escape, previous_key=nil, &block)
13
+ hash.each_pair do |key, value|
14
+ key = escape_default_separator(key) if escape
15
+ current_key = [previous_key, key].compact.join(FLATTEN_SEPARATOR).to_sym
16
+ yield current_key, value
17
+ flatten(value, escape, current_key, &block) if value.is_a?(Hash)
18
+ end
18
19
  end
19
20
  end
20
- end
21
+ end
data/lib/phrase/tool.rb CHANGED
@@ -7,7 +7,7 @@ require 'phrase'
7
7
  class Phrase::Tool
8
8
  autoload :Config, 'phrase/tool/config'
9
9
  autoload :Options, 'phrase/tool/options'
10
- autoload :Formats, 'phrase/tool/formats'
10
+ autoload :Formats, 'phrase/formats'
11
11
  autoload :Commands, 'phrase/tool/commands'
12
12
  autoload :TagValidator, 'phrase/tool/tag_validator'
13
13
  autoload :EncodingDetector, 'phrase/tool/encoding_detector'
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  class Phrase::Tool::Commands::Pull < Phrase::Tool::Commands::Base
4
- ALLOWED_DOWNLOAD_FORMATS = %w(yml po xml strings json resx ts qph ini plist properties xlf)
4
+ ALLOWED_DOWNLOAD_FORMATS = Phrase::Formats::SUPPORTED_FORMATS.keys.map(&:to_s)
5
5
  DEFAULT_DOWNLOAD_FORMAT = "yml"
6
6
 
7
7
  def initialize(options, args)
@@ -13,7 +13,7 @@ class Phrase::Tool::Commands::Pull < Phrase::Tool::Commands::Base
13
13
  # TODO: remove DEFAULT_DOWNLOAD_FORMAT when phrase app has been updated
14
14
  @format = @options.get(:format) || config.format || DEFAULT_DOWNLOAD_FORMAT
15
15
  @target = @options.get(:target)
16
- @target ||= Phrase::Tool::Formats.target_directory(@format) if format_valid?(@format)
16
+ @target ||= Phrase::Formats.target_directory(@format) if format_valid?(@format)
17
17
  end
18
18
 
19
19
  def execute!
@@ -36,8 +36,8 @@ private
36
36
  end
37
37
 
38
38
  def store_content_in_locale_file(locale, content)
39
- directory = Phrase::Tool::Formats.directory_for_locale_in_format(locale, @format)
40
- filename = Phrase::Tool::Formats.filename_for_locale_in_format(locale, @format)
39
+ directory = Phrase::Formats.directory_for_locale_in_format(locale, @format)
40
+ filename = Phrase::Formats.filename_for_locale_in_format(locale, @format)
41
41
  path = File.join(base_directory, directory)
42
42
  target = File.join(path, filename)
43
43
  begin
@@ -1,7 +1,6 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  class Phrase::Tool::Commands::Push < Phrase::Tool::Commands::Base
4
- ALLOWED_FILE_TYPES = %w(yml po pot xml strings json resx ts qph ini plist properties xlf)
5
4
  FORMATS_CONTAINING_LOCALE = %q(po yml qph ts xlf)
6
5
  RAILS_DEFAULT_FOLDER = "./config/locales/"
7
6
 
@@ -11,6 +10,7 @@ class Phrase::Tool::Commands::Push < Phrase::Tool::Commands::Base
11
10
 
12
11
  @file_names = @args[1..-1]
13
12
  @locale = @options.get(:locale)
13
+ @format = @options.get(:format)
14
14
  @tags = @options.get(:tags)
15
15
  @recursive = @options.get(:recursive)
16
16
  end
@@ -80,7 +80,7 @@ private
80
80
  locale = Phrase::Tool::Locale.find_default_locale.try(:name)
81
81
  end
82
82
  locale = @locale if @locale
83
- api_client.upload(file, file_content(file), @tags, locale)
83
+ api_client.upload(file, file_content(file), @tags, locale, @format)
84
84
  print_message "OK".green
85
85
  rescue Exception => e
86
86
  print_error "Failed"
@@ -98,7 +98,7 @@ private
98
98
  end
99
99
 
100
100
  def force_use_of_default_locale?(file_path)
101
- not Phrase::Tool::Formats.file_format_exposes_locale?(file_path)
101
+ not Phrase::Formats.file_format_exposes_locale?(file_path)
102
102
  end
103
103
 
104
104
  def utf16_to_utf8(string)
@@ -111,7 +111,7 @@ private
111
111
 
112
112
  def file_valid?(filepath)
113
113
  extension = filepath.split('.').last
114
- ALLOWED_FILE_TYPES.include?(extension)
114
+ allowed_file_extensions.include?(extension)
115
115
  end
116
116
 
117
117
  def file_exists?(file)
@@ -127,6 +127,14 @@ private
127
127
  end
128
128
 
129
129
  def detect_locale_name_from_file_path(file_path)
130
- Phrase::Tool::Formats.detect_locale_name_from_file_path(file_path)
130
+ Phrase::Formats.detect_locale_name_from_file_path(file_path)
131
131
  end
132
- end
132
+
133
+ def allowed_file_extensions
134
+ extensions = []
135
+ Phrase::Formats::SUPPORTED_FORMATS.each do |format, handler|
136
+ extensions = extensions | handler.send(:extensions)
137
+ end
138
+ extensions.uniq.map(&:to_s)
139
+ end
140
+ end
@@ -23,7 +23,8 @@ class Phrase::Tool::Options
23
23
  push: {
24
24
  tags: [],
25
25
  recursive: false,
26
- locale: nil
26
+ locale: nil,
27
+ format: nil
27
28
  },
28
29
  pull: {
29
30
  format: nil,
@@ -50,11 +50,15 @@ class OptionsFactory
50
50
  opts.on("--locale=en", String, "Locale of the translations your file contain (required for formats that do not include the name of the locale in the file content)") do |locale|
51
51
  set[:locale] = locale
52
52
  end
53
+
54
+ opts.on("--format=yml", String, "See documentation for list of allowed formats") do |format|
55
+ set[:format] = format
56
+ end
53
57
  end
54
58
  private_class_method :push
55
59
 
56
60
  def self.pull(opts, set)
57
- opts.on("--format=yml", String, "See documentation for list of allowed locales") do |format|
61
+ opts.on("--format=yml", String, "See documentation for list of allowed formats") do |format|
58
62
  set[:format] = format
59
63
  end
60
64
 
@@ -1,3 +1,3 @@
1
1
  module Phrase
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-12 00:00:00.000000000 Z
12
+ date: 2013-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: colorize
16
- requirement: &70153559193100 !ruby/object:Gem::Requirement
16
+ requirement: &70112547553080 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70153559193100
24
+ version_requirements: *70112547553080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &70153559192640 !ruby/object:Gem::Requirement
27
+ requirement: &70112547552620 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70153559192640
35
+ version_requirements: *70112547552620
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70153559192220 !ruby/object:Gem::Requirement
38
+ requirement: &70112547552200 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70153559192220
46
+ version_requirements: *70112547552200
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70153559191800 !ruby/object:Gem::Requirement
49
+ requirement: &70112547551780 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70153559191800
57
+ version_requirements: *70112547551780
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: i18n
60
- requirement: &70153559191380 !ruby/object:Gem::Requirement
60
+ requirement: &70112547551360 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70153559191380
68
+ version_requirements: *70112547551360
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: webmock
71
- requirement: &70153559190960 !ruby/object:Gem::Requirement
71
+ requirement: &70112547550940 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70153559190960
79
+ version_requirements: *70112547550940
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: vcr
82
- requirement: &70153559190540 !ruby/object:Gem::Requirement
82
+ requirement: &70112547550520 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70153559190540
90
+ version_requirements: *70112547550520
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: timecop
93
- requirement: &70153559190120 !ruby/object:Gem::Requirement
93
+ requirement: &70112547550100 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70153559190120
101
+ version_requirements: *70112547550100
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: genspec
104
- requirement: &70153559189700 !ruby/object:Gem::Requirement
104
+ requirement: &70112547549680 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70153559189700
112
+ version_requirements: *70112547549680
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rails
115
- requirement: &70153559189280 !ruby/object:Gem::Requirement
115
+ requirement: &70112547549260 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70153559189280
123
+ version_requirements: *70112547549260
124
124
  description: phrase allows you to edit translations in-place on the page itself. More
125
125
  information at phraseapp.com
126
126
  email:
@@ -164,6 +164,27 @@ files:
164
164
  - lib/phrase/delegate/fast_gettext.rb
165
165
  - lib/phrase/delegate/i18n.rb
166
166
  - lib/phrase/engine.rb
167
+ - lib/phrase/formats.rb
168
+ - lib/phrase/formats/csv.rb
169
+ - lib/phrase/formats/custom.rb
170
+ - lib/phrase/formats/gettext.rb
171
+ - lib/phrase/formats/gettext_template.rb
172
+ - lib/phrase/formats/ini.rb
173
+ - lib/phrase/formats/json.rb
174
+ - lib/phrase/formats/plist.rb
175
+ - lib/phrase/formats/properties.rb
176
+ - lib/phrase/formats/properties_xml.rb
177
+ - lib/phrase/formats/qt_phrase_book.rb
178
+ - lib/phrase/formats/qt_translation_source.rb
179
+ - lib/phrase/formats/resx.rb
180
+ - lib/phrase/formats/resx_windowsphone.rb
181
+ - lib/phrase/formats/simple_json.rb
182
+ - lib/phrase/formats/strings.rb
183
+ - lib/phrase/formats/tmx.rb
184
+ - lib/phrase/formats/xliff.rb
185
+ - lib/phrase/formats/xml.rb
186
+ - lib/phrase/formats/yaml.rb
187
+ - lib/phrase/formats/yaml_symfony.rb
167
188
  - lib/phrase/hash_flattener.rb
168
189
  - lib/phrase/tool.rb
169
190
  - lib/phrase/tool/commands.rb
@@ -175,22 +196,6 @@ files:
175
196
  - lib/phrase/tool/commands/show_version.rb
176
197
  - lib/phrase/tool/config.rb
177
198
  - lib/phrase/tool/encoding_detector.rb
178
- - lib/phrase/tool/formats.rb
179
- - lib/phrase/tool/formats/base.rb
180
- - lib/phrase/tool/formats/custom.rb
181
- - lib/phrase/tool/formats/gettext.rb
182
- - lib/phrase/tool/formats/gettext_pot.rb
183
- - lib/phrase/tool/formats/ini.rb
184
- - lib/phrase/tool/formats/json.rb
185
- - lib/phrase/tool/formats/plist.rb
186
- - lib/phrase/tool/formats/properties.rb
187
- - lib/phrase/tool/formats/qt_phrase_book.rb
188
- - lib/phrase/tool/formats/qt_translation_source.rb
189
- - lib/phrase/tool/formats/resx.rb
190
- - lib/phrase/tool/formats/strings.rb
191
- - lib/phrase/tool/formats/xliff.rb
192
- - lib/phrase/tool/formats/xml.rb
193
- - lib/phrase/tool/formats/yaml.rb
194
199
  - lib/phrase/tool/locale.rb
195
200
  - lib/phrase/tool/options.rb
196
201
  - lib/phrase/tool/options_factory.rb