phrase 0.4.24 → 0.4.25

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d19161a8b74d93add452fa8141fd6a7c3218736c
4
+ data.tar.gz: ccc2ffadca6cac58332e772def7ccb8a00798a91
5
+ SHA512:
6
+ metadata.gz: 7743e6c862f1191d1dbc06b16aa95e982e9d84633bcbb61a1361c9fed8c8d9c9d84d6935b6f0319e702d939397d34c141cba6d526353cdfc5c577ef782d36a0b
7
+ data.tar.gz: e0ab46de6616360e7d31aec7a7e5d64d41024307c3638dce43b92c049a473cf9d8cff26340ba44021e41b40bb33a6f19c84c291b8a99f5319defff69cbb67a77
@@ -1,4 +1,4 @@
1
- # -*- encoding : utf-8 -*-
1
+ # -*- encoding : utf-8 -*-
2
2
 
3
3
  require 'cgi'
4
4
  require 'json'
@@ -82,7 +82,7 @@ class Phrase::Api::Client
82
82
  true
83
83
  end
84
84
 
85
- def download_translations_for_locale(name, format, tag=nil, updated_since=nil, include_empty_translations=nil)
85
+ def download_translations_for_locale(name, format, tag=nil, updated_since=nil, include_empty_translations=nil, convert_emoji=nil)
86
86
  raise "You must specify a name" if name.nil? || name.blank?
87
87
  raise "You must specify a format" if format.nil? || format.blank?
88
88
 
@@ -92,8 +92,10 @@ class Phrase::Api::Client
92
92
  locale: name,
93
93
  tag: tag,
94
94
  updated_since: updated_since,
95
- include_empty_translations: include_empty_translations ? "1" : nil
95
+ include_empty_translations: include_empty_translations ? "1" : nil,
96
+ convert_emoji: convert_emoji ? "1" : nil
96
97
  }
98
+
97
99
  content = perform_api_request("/translations/download", :get, params)
98
100
  return content
99
101
  rescue Phrase::Api::Exceptions::ServerError => e
@@ -101,7 +103,7 @@ class Phrase::Api::Client
101
103
  end
102
104
  end
103
105
 
104
- def upload(filename, file_content, tags=[], locale=nil, format=nil, update_translations=false, skip_unverification=false, skip_upload_tags=false)
106
+ def upload(filename, file_content, tags=[], locale=nil, format=nil, update_translations=false, skip_unverification=false, skip_upload_tags=false, convert_emoji=false)
105
107
  begin
106
108
  params = {
107
109
  "file_format" => format,
@@ -110,7 +112,8 @@ class Phrase::Api::Client
110
112
  "tags[]" => tags,
111
113
  "update_translations" => update_translations ? "1" : "0",
112
114
  "skip_unverification" => skip_unverification ? "1" : "0",
113
- "skip_upload_tags" => skip_upload_tags ? "1" : "0"
115
+ "skip_upload_tags" => skip_upload_tags ? "1" : "0",
116
+ "convert_emoji" => convert_emoji ? "1" : "0"
114
117
  }
115
118
  params["locale_name"] = locale unless locale.nil?
116
119
  perform_api_request("/translation_keys/upload", :post, params)
@@ -23,14 +23,16 @@ module Phrase::Tool::Commands
23
23
  format: nil,
24
24
  update_translations: false,
25
25
  skip_unverification: false,
26
- skip_upload_tags: false
26
+ skip_upload_tags: false,
27
+ convert_emoji: nil
27
28
  },
28
29
  pull: {
29
30
  format: nil,
30
31
  target: nil,
31
32
  tag: nil,
32
33
  updated_since: nil,
33
- include_empty_translations: nil
34
+ include_empty_translations: nil,
35
+ convert_emoji: nil
34
36
  },
35
37
  tags: {
36
38
  list: true
@@ -1,4 +1,4 @@
1
- # -*- encoding : utf-8 -*-
1
+ # -*- encoding : utf-8 -*-f
2
2
 
3
3
  class Phrase::Tool::Commands::Pull < Phrase::Tool::Commands::Base
4
4
  ALLOWED_DOWNLOAD_FORMATS = Phrase::Formats::SUPPORTED_FORMATS.keys.map(&:to_s)
@@ -16,6 +16,7 @@ class Phrase::Tool::Commands::Pull < Phrase::Tool::Commands::Base
16
16
  @tag = @options.get(:tag)
17
17
  @updated_since = @options.get(:updated_since)
18
18
  @include_empty_translations = @options.get(:include_empty_translations)
19
+ @convert_emoji = @options.get(:convert_emoji)
19
20
  @target ||= Phrase::Formats.target_directory(@format) if format_valid?(@format)
20
21
  end
21
22
 
@@ -23,14 +24,14 @@ class Phrase::Tool::Commands::Pull < Phrase::Tool::Commands::Base
23
24
  (print_error("Invalid format: #{@format}") and exit_command) unless format_valid?(@format)
24
25
  locales_to_download.compact.each do |locale|
25
26
  print_message "Downloading #{locale.name}..."
26
- fetch_translations_for_locale(locale, @format, @tag, @updated_since, @include_empty_translations)
27
+ fetch_translations_for_locale(locale, @format, @tag, @updated_since, @include_empty_translations, @convert_emoji)
27
28
  end
28
29
  end
29
30
 
30
31
  private
31
- def fetch_translations_for_locale(locale, format, tag=nil, updated_since=nil, include_empty_translations=nil)
32
+ def fetch_translations_for_locale(locale, format, tag=nil, updated_since=nil, include_empty_translations=nil, convert_emoji=nil)
32
33
  begin
33
- content = api_client.download_translations_for_locale(locale.name, format, tag, updated_since, include_empty_translations)
34
+ content = api_client.download_translations_for_locale(locale.name, format, tag, updated_since, include_empty_translations, convert_emoji)
34
35
  store_content_in_locale_file(locale, content)
35
36
  rescue Exception => e
36
37
  print_error "Failed"
@@ -47,7 +48,7 @@ private
47
48
  begin
48
49
  FileUtils.mkpath(path)
49
50
  File.open(target, "w") do |file|
50
- file.write(content.force_encoding("UTF-8"))
51
+ file.write(encode(content))
51
52
  end
52
53
  print_message "Saved to #{clean_path target}".green
53
54
  rescue
@@ -56,6 +57,10 @@ private
56
57
  end
57
58
  end
58
59
 
60
+ def encode content
61
+ content.force_encoding("UTF-8")
62
+ end
63
+
59
64
  def clean_path(str)
60
65
  str.gsub("/./", "/")
61
66
  end
@@ -16,6 +16,7 @@ class Phrase::Tool::Commands::Push < Phrase::Tool::Commands::Base
16
16
  @update_translations = @options.get(:update_translations)
17
17
  @skip_unverification = @options.get(:skip_unverification)
18
18
  @skip_upload_tags = @options.get(:skip_upload_tags)
19
+ @convert_emoji = @options.get(:convert_emoji)
19
20
  end
20
21
 
21
22
  def execute!
@@ -91,7 +92,7 @@ private
91
92
  locale = Phrase::Tool::Locale.find_default_locale.try(:name)
92
93
  end
93
94
  locale = @locale if @locale
94
- api_client.upload(file, file_content(file), @tags, locale, @format, @update_translations, @skip_unverification, @skip_upload_tags)
95
+ api_client.upload(file, file_content(file), @tags, locale, @format, @update_translations, @skip_unverification, @skip_upload_tags, @convert_emoji)
95
96
  print_message "OK".green
96
97
  rescue Exception => e
97
98
  print_error "Failed"
@@ -71,6 +71,10 @@ class OptionsFactory
71
71
  set[:skip_upload_tags] = skip_upload_tags
72
72
  end
73
73
 
74
+ opts.on("--convert-emoji", "Convert Emojis to store and display them correctly in PhraseApp") do |convert_emoji|
75
+ set[:convert_emoji] = convert_emoji
76
+ end
77
+
74
78
  opts.on("--secret=YOUR_AUTH_TOKEN", String, "The Auth Token to use for this operation instead of the saved one (optional)") do |secret|
75
79
  set[:secret] = secret
76
80
  end
@@ -100,6 +104,10 @@ class OptionsFactory
100
104
  set[:include_empty_translations] = include_empty_translations
101
105
  end
102
106
 
107
+ opts.on("--convert-emoji", "Convert Emoji symbols") do |convert_emoji|
108
+ set[:convert_emoji] = convert_emoji
109
+ end
110
+
103
111
  opts.on("--secret=YOUR_AUTH_TOKEN", String, "The Auth Token to use for this operation instead of the saved one (optional)") do |secret|
104
112
  set[:secret] = secret
105
113
  end
@@ -1,3 +1,3 @@
1
1
  module Phrase
2
- VERSION = "0.4.24"
2
+ VERSION = "0.4.25"
3
3
  end
metadata CHANGED
@@ -1,174 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.24
5
- prerelease:
4
+ version: 0.4.25
6
5
  platform: ruby
7
6
  authors:
8
7
  - Dynport GmbH
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-04-17 00:00:00.000000000 Z
11
+ date: 2014-05-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: colorize
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: i18n
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: webmock
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: vcr
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: timecop
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - '>='
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - '>='
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: genspec
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - '>='
148
130
  - !ruby/object:Gem::Version
149
131
  version: '0'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - '>='
156
137
  - !ruby/object:Gem::Version
157
138
  version: '0'
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: rails
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ! '>='
143
+ - - '>='
164
144
  - !ruby/object:Gem::Version
165
145
  version: '0'
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ! '>='
150
+ - - '>='
172
151
  - !ruby/object:Gem::Version
173
152
  version: '0'
174
153
  description: phrase allows you to edit translations in-place on the page itself. More
@@ -264,26 +243,25 @@ files:
264
243
  - phrase.gemspec
265
244
  homepage: https://phraseapp.com
266
245
  licenses: []
246
+ metadata: {}
267
247
  post_install_message:
268
248
  rdoc_options: []
269
249
  require_paths:
270
250
  - lib
271
251
  required_ruby_version: !ruby/object:Gem::Requirement
272
- none: false
273
252
  requirements:
274
- - - ! '>='
253
+ - - '>='
275
254
  - !ruby/object:Gem::Version
276
255
  version: '0'
277
256
  required_rubygems_version: !ruby/object:Gem::Requirement
278
- none: false
279
257
  requirements:
280
- - - ! '>='
258
+ - - '>='
281
259
  - !ruby/object:Gem::Version
282
260
  version: 1.3.6
283
261
  requirements: []
284
262
  rubyforge_project: phrase
285
- rubygems_version: 1.8.23
263
+ rubygems_version: 2.2.2
286
264
  signing_key:
287
- specification_version: 3
265
+ specification_version: 4
288
266
  summary: The best way to manage i18n.
289
267
  test_files: []