ad_localize 4.0.2 → 4.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62c6349d3a9f83d2c431e93485ee9f34760162b74ed83ed3cc19393f15fd333b
4
- data.tar.gz: 8c270d4d06df0f8d8bbc4699702d6c27a23730578d9c3d196de607369a358539
3
+ metadata.gz: 7c430461018f65ed97a0eee0978989c7f051df7228dccede2282417cfd70b837
4
+ data.tar.gz: 38b0d8ddbd9493e3d1ba4d483bc28f943141cc7f60f4bd5d3812a5a2c715ff17
5
5
  SHA512:
6
- metadata.gz: 4f4db75c29aec05862c0e51b6a080c5a6e11dd487819942da9c8dad1ce066844e0b9a9311cb463d276fdbdb643649e4f94fe68b4fd3556c22dcf167ccba67b67
7
- data.tar.gz: 7b9fb85b7b3b076715b55d01cf65e6dd37d5b62103d1a46320f972a4e852797448d10dce9eaf18a38e5bad8288f5fa4e5192c44e9797493d7da73b665d08cde3
6
+ metadata.gz: 18b47316425537c6bc79f9b1db9eb828a82d380dcab2f90eb8e9ba17875e03d5cdcd4d1024f99a813090a0c477b728991fc7c94751df8bb58f3455d2d4813884
7
+ data.tar.gz: e96d73dde24bec5f84951fb880a6a1809256ab3581e51d9fc68b3e5bd9011ffb50d2173ebf5ef0ac80b8ff89387c4d2a98d6817ac799a5f58234d37948cee053
@@ -4,17 +4,18 @@ on: [push, pull_request]
4
4
 
5
5
  jobs:
6
6
  build:
7
-
8
7
  runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: ['2.6.6', '2.7.3', '3.0.1']
9
11
 
10
12
  steps:
11
- - uses: actions/checkout@v1
12
- - name: Set up Ruby 2.6
13
- uses: actions/setup-ruby@v1
14
- with:
15
- ruby-version: 2.6.x
16
- - name: Build and test with Rake
17
- run: |
18
- gem install bundler
19
- bundle install --jobs 4 --retry 3
20
- bundle exec rake
13
+ - uses: actions/checkout@v2
14
+ - uses: ruby/setup-ruby@v1
15
+ with:
16
+ ruby-version: ${{ matrix.ruby }}
17
+ - name: Build and test with Rake
18
+ run: |
19
+ gem install bundler
20
+ bundle install --jobs 4 --retry 3
21
+ bundle exec rake
data/CHANGELOG.md CHANGED
@@ -4,6 +4,31 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [4.0.7] - 2021-05-18
8
+ ### Changed
9
+ - Support Ruby 3.x
10
+
11
+ ## [4.0.6] - 2020-01-25
12
+ ### Fixed
13
+ - Fix google spreadsheet sheet id comparison with sheet_ids option value
14
+
15
+ ## [4.0.5] - 2020-11-12
16
+ ### Fixed
17
+ - Fix csv file type check (also add compatibility with macOS Big Sur)
18
+
19
+ ## [4.0.4] - 2020-11-09
20
+ ### Fixed
21
+ - Fix android special character escaping [#56](https://github.com/applidium/ad_localize/issues/56)
22
+ - Fix platform filter on export [#55](https://github.com/applidium/ad_localize/issues/55)
23
+
24
+ ### Changed
25
+ - Use default terminal color for debug log
26
+
27
+ ## [4.0.3] - 2020-10-27
28
+ ### Fixed
29
+ - Fix CSV detection and remove dependency to MimeType gem
30
+ - Fix drive key detection in options
31
+
7
32
  ## [4.0.2] - 2020-10-26
8
33
  ### Fixed
9
34
  - Use percent HTML char for escaping '%' on android. [#49](https://github.com/applidium/ad_localize/pull/49) by [flolom](https://github.com/flolom)
data/Gemfile.lock CHANGED
@@ -1,46 +1,63 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ad_localize (4.0.2)
5
- activesupport (>= 5.2, < 7.0)
4
+ ad_localize (4.0.7)
5
+ activesupport (>= 6.1.3.2, < 7.0)
6
6
  colorize (~> 0.8)
7
7
  google-api-client (~> 0.34)
8
8
  googleauth (~> 0.12)
9
- mime-types (~> 3.3)
10
9
  nokogiri (~> 1.10)
11
10
 
12
11
  GEM
13
12
  remote: https://rubygems.org/
14
13
  specs:
15
- activesupport (6.0.3.4)
14
+ activesupport (6.1.3.2)
16
15
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
- i18n (>= 0.7, < 2)
18
- minitest (~> 5.1)
19
- tzinfo (~> 1.1)
20
- zeitwerk (~> 2.2, >= 2.2.2)
16
+ i18n (>= 1.6, < 2)
17
+ minitest (>= 5.1)
18
+ tzinfo (~> 2.0)
19
+ zeitwerk (~> 2.3)
21
20
  addressable (2.7.0)
22
21
  public_suffix (>= 2.0.2, < 5.0)
23
22
  ansi (1.5.0)
24
23
  builder (3.2.4)
25
24
  byebug (11.1.3)
26
25
  colorize (0.8.1)
27
- concurrent-ruby (1.1.7)
26
+ concurrent-ruby (1.1.8)
28
27
  declarative (0.0.20)
29
- declarative-option (0.1.0)
30
28
  diffy (3.3.0)
31
- faraday (1.1.0)
29
+ faraday (1.4.1)
30
+ faraday-excon (~> 1.1)
31
+ faraday-net_http (~> 1.0)
32
+ faraday-net_http_persistent (~> 1.1)
32
33
  multipart-post (>= 1.2, < 3)
33
- ruby2_keywords
34
- google-api-client (0.46.2)
34
+ ruby2_keywords (>= 0.0.4)
35
+ faraday-excon (1.1.0)
36
+ faraday-net_http (1.0.1)
37
+ faraday-net_http_persistent (1.1.0)
38
+ gems (1.2.0)
39
+ google-api-client (0.53.0)
40
+ google-apis-core (~> 0.1)
41
+ google-apis-generator (~> 0.1)
42
+ google-apis-core (0.3.0)
35
43
  addressable (~> 2.5, >= 2.5.1)
36
- googleauth (~> 0.9)
44
+ googleauth (~> 0.14)
37
45
  httpclient (>= 2.8.1, < 3.0)
38
46
  mini_mime (~> 1.0)
39
47
  representable (~> 3.0)
40
48
  retriable (>= 2.0, < 4.0)
41
49
  rexml
42
- signet (~> 0.12)
43
- googleauth (0.14.0)
50
+ signet (~> 0.14)
51
+ webrick
52
+ google-apis-discovery_v1 (0.2.0)
53
+ google-apis-core (~> 0.1)
54
+ google-apis-generator (0.2.0)
55
+ activesupport (>= 5.0)
56
+ gems (~> 1.2)
57
+ google-apis-core (~> 0.1)
58
+ google-apis-discovery_v1 (~> 0.0)
59
+ thor (>= 0.20, < 2.a)
60
+ googleauth (0.16.2)
44
61
  faraday (>= 0.17.3, < 2.0)
45
62
  jwt (>= 1.4, < 3.0)
46
63
  memoist (~> 0.16)
@@ -48,16 +65,13 @@ GEM
48
65
  os (>= 0.9, < 2.0)
49
66
  signet (~> 0.14)
50
67
  httpclient (2.8.3)
51
- i18n (1.8.5)
68
+ i18n (1.8.10)
52
69
  concurrent-ruby (~> 1.0)
53
- jwt (2.2.2)
70
+ jwt (2.2.3)
54
71
  memoist (0.16.2)
55
- mime-types (3.3.1)
56
- mime-types-data (~> 3.2015)
57
- mime-types-data (3.2020.0512)
58
- mini_mime (1.0.2)
59
- mini_portile2 (2.4.0)
60
- minitest (5.14.0)
72
+ mini_mime (1.1.0)
73
+ mini_portile2 (2.5.1)
74
+ minitest (5.14.4)
61
75
  minitest-reporters (1.4.2)
62
76
  ansi
63
77
  builder
@@ -65,29 +79,33 @@ GEM
65
79
  ruby-progressbar
66
80
  multi_json (1.15.0)
67
81
  multipart-post (2.1.1)
68
- nokogiri (1.10.10)
69
- mini_portile2 (~> 2.4.0)
82
+ nokogiri (1.11.4)
83
+ mini_portile2 (~> 2.5.0)
84
+ racc (~> 1.4)
70
85
  os (1.1.1)
71
86
  public_suffix (4.0.6)
87
+ racc (1.5.2)
72
88
  rake (12.3.3)
73
- representable (3.0.4)
89
+ representable (3.1.1)
74
90
  declarative (< 0.1.0)
75
- declarative-option (< 0.2.0)
91
+ trailblazer-option (>= 0.1.1, < 0.2.0)
76
92
  uber (< 0.2.0)
77
93
  retriable (3.1.2)
78
- rexml (3.2.4)
94
+ rexml (3.2.5)
79
95
  ruby-progressbar (1.10.1)
80
- ruby2_keywords (0.0.2)
81
- signet (0.14.0)
96
+ ruby2_keywords (0.0.4)
97
+ signet (0.15.0)
82
98
  addressable (~> 2.3)
83
99
  faraday (>= 0.17.3, < 2.0)
84
100
  jwt (>= 1.5, < 3.0)
85
101
  multi_json (~> 1.10)
86
- thread_safe (0.3.6)
87
- tzinfo (1.2.7)
88
- thread_safe (~> 0.1)
102
+ thor (1.1.0)
103
+ trailblazer-option (0.1.1)
104
+ tzinfo (2.0.4)
105
+ concurrent-ruby (~> 1.0)
89
106
  uber (0.1.0)
90
- zeitwerk (2.4.0)
107
+ webrick (1.7.0)
108
+ zeitwerk (2.4.2)
91
109
 
92
110
  PLATFORMS
93
111
  ruby
@@ -102,4 +120,4 @@ DEPENDENCIES
102
120
  rake (~> 12.3)
103
121
 
104
122
  BUNDLED WITH
105
- 2.1.4
123
+ 2.2.15
data/README.md CHANGED
@@ -31,7 +31,7 @@ $ gem install ad_localize
31
31
  $ ad_localize -h
32
32
  ```
33
33
 
34
- * Export wording from a google spreadsheet, default tab. The spreadsheet key and sheet_id are available in the spreadsheet url. For example `https://docs.google.com/spreadsheets/d/<your-spreadsheet-drive-key>/edit#gid=<sheet-id>`.
34
+ * Export wording from a public google spreadsheet, default tab. The spreadsheet key and sheet_id are available in the spreadsheet url. For example `https://docs.google.com/spreadsheets/d/<your-spreadsheet-drive-key>/edit#gid=<sheet-id>`.
35
35
  ```
36
36
  $ ad_localize -k <your-spreadsheet-drive-key>
37
37
  ```
@@ -41,6 +41,11 @@ $ ad_localize -k <your-spreadsheet-drive-key>
41
41
  $ ad_localize -k <your-spreadsheet-drive-key> -s <comma-separated-sheet-id-list>
42
42
  ```
43
43
 
44
+ * Export wording from a private google spreadsheet. It requires a [Google Cloud Service Account](#using-a-google-cloud-service-account).
45
+ ```
46
+ $ GCLOUD_CLIENT_SECRET=$(cat <path-to-client-secret.json>) ad_localize -k <your-spreadsheet-drive-key>
47
+ ```
48
+
44
49
  * Export wording from all sheets in a google spreadsheet. It requires a [Google Cloud Service Account](#using-a-google-cloud-service-account).
45
50
  ```
46
51
  $ GCLOUD_CLIENT_SECRET=$(cat <path-to-client-secret.json>) ad_localize -k <your-spreadsheet-drive-key> -e
data/ad_localize.gemspec CHANGED
@@ -46,12 +46,11 @@ Gem::Specification.new do |spec|
46
46
  spec.add_development_dependency 'minitest-reporters', '~> 1.3'
47
47
  spec.add_development_dependency 'diffy', '~> 3.3'
48
48
 
49
- spec.add_dependency 'activesupport', '>= 5.2', '< 7.0'
49
+ spec.add_dependency 'activesupport', '>= 6.1.3.2', '< 7.0'
50
50
  spec.add_dependency 'nokogiri', '~> 1.10'
51
51
  spec.add_dependency 'colorize', '~> 0.8'
52
52
  spec.add_dependency 'google-api-client', '~> 0.34'
53
53
  spec.add_dependency 'googleauth', '~> 0.12'
54
- spec.add_dependency 'mime-types', '~> 3.3'
55
54
 
56
- spec.required_ruby_version = '~> 2.3'
55
+ spec.required_ruby_version = '>= 2.3'
57
56
  end
data/lib/ad_localize.rb CHANGED
@@ -9,7 +9,6 @@ require 'logger'
9
9
  require 'colorize'
10
10
  require 'optparse'
11
11
  require 'nokogiri'
12
- require 'mime/types'
13
12
  require 'erb'
14
13
  require 'googleauth'
15
14
  require 'google/apis/sheets_v4'
@@ -18,7 +18,7 @@ module AdLocalize
18
18
  end
19
19
 
20
20
  def debug(text)
21
- log(level: Logger::DEBUG, text: text.black)
21
+ log(level: Logger::DEBUG, text: text)
22
22
  end
23
23
 
24
24
  def info!
@@ -5,12 +5,16 @@ module AdLocalize
5
5
 
6
6
  def sanitize_value(value:)
7
7
  return if value.blank?
8
- processedValue = value.gsub(/(?<!\\)'/, "\\\\'") # match ' unless there is a \ before
9
- processedValue = processedValue.gsub(/(?<!\\)\"/, "\\\"") # match " unless there is a \ before
8
+ processedValue = value.gsub(/(?<!\\)'/, '&#39;') # match ' unless there is a \ before
9
+ processedValue = processedValue.gsub(/(?<!\\)\"/, '&#34;') # match " unless there is a \ before
10
+ processedValue = processedValue.gsub(">", '&gt;')
11
+ processedValue = processedValue.gsub("<", '&lt;')
10
12
  processedValue = processedValue.gsub(/(%(\d+\$)?@)/, '%\2s') # should match values like %1$s and %s
11
13
  processedValue = processedValue.gsub(/(%((\d+\$)?(\d+)?)i)/, '%\2d') # should match values like %i, %3$i, %01i, %1$02i
12
14
  processedValue = processedValue.gsub(/%(?!((\d+\$)?(s|(\d+)?d)))/, '&#37;') # negative lookahead: identifies when user really wants to display a %
13
15
  processedValue = processedValue.gsub("\\U", "\\u")
16
+ processedValue = processedValue.gsub(/&(?!((#\d+)|(\w+));)/, '&#38;')
17
+ processedValue = processedValue.gsub(/&/) { |match| match.replace('\&') }
14
18
  "\"#{processedValue}\""
15
19
  end
16
20
  end
@@ -3,7 +3,7 @@ module AdLocalize
3
3
  class OptionsToExportRequest
4
4
  def map(options:)
5
5
  Requests::ExportRequest.new(
6
- platform_codes: options[:only],
6
+ platforms: options[:only],
7
7
  g_spreadsheet_options: map_g_spreadsheet_options(options: options),
8
8
  verbose: options[:debug],
9
9
  output_path: options[:'target-dir'],
@@ -15,7 +15,7 @@ module AdLocalize
15
15
  private
16
16
 
17
17
  def map_g_spreadsheet_options(options:)
18
- return unless options[:drive_key]
18
+ return unless options[:'drive-key']
19
19
  Requests::GSpreadsheetOptions.new(
20
20
  spreadsheet_id: options[:'drive-key'],
21
21
  sheet_ids: options[:'sheets'],
@@ -19,7 +19,7 @@ module AdLocalize
19
19
  spreadsheet.sheets[0..0].map { |sheet| get_sheet_values(spreadsheet_id: g_spreadsheet_options.spreadsheet_id, sheet: sheet) }
20
20
  else
21
21
  spreadsheet.sheets.select do |sheet|
22
- g_spreadsheet_options.sheet_ids.include?(sheet.properties.sheet_id)
22
+ g_spreadsheet_options.sheet_ids.include?(sheet.properties.sheet_id.to_s)
23
23
  end.map do |sheet|
24
24
  get_sheet_values(spreadsheet_id: g_spreadsheet_options.spreadsheet_id, sheet: sheet)
25
25
  end
@@ -3,7 +3,7 @@ module AdLocalize
3
3
  class ExportRequest
4
4
  SUPPORTED_PLATFORMS = %w(ios android yml json properties).freeze
5
5
  DEFAULT_EXPORT_FOLDER = 'exports'.freeze
6
- CSV_CONTENT_TYPES = %w(text/csv text/plain).freeze
6
+ CSV_CONTENT_TYPES = %w(text/csv text/plain application/csv).freeze
7
7
 
8
8
  def initialize(**args)
9
9
  @locales = Array(args[:locales].presence)
@@ -61,7 +61,7 @@ module AdLocalize
61
61
  end
62
62
 
63
63
  def is_csv?(path:)
64
- (MIME::Types.of(path).map(&:content_type) & CSV_CONTENT_TYPES).present?
64
+ CSV_CONTENT_TYPES.include?(`file --brief --mime-type "#{path}"`.strip)
65
65
  end
66
66
 
67
67
  def valid_g_spreadsheet_options?
@@ -10,4 +10,4 @@ module AdLocalize
10
10
  end
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module AdLocalize
2
- VERSION = "4.0.2"
2
+ VERSION = "4.0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ad_localize
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edouard Siegel
@@ -17,7 +17,7 @@ authors:
17
17
  - Claire Dufetrelle
18
18
  - Pierre Felgines
19
19
  - Satyan Jacquens
20
- autorequire:
20
+ autorequire:
21
21
  bindir: exe
22
22
  cert_chain: []
23
23
  date: 2018-04-18 00:00:00.000000000 Z
@@ -118,7 +118,7 @@ dependencies:
118
118
  requirements:
119
119
  - - ">="
120
120
  - !ruby/object:Gem::Version
121
- version: '5.2'
121
+ version: 6.1.3.2
122
122
  - - "<"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '7.0'
@@ -128,7 +128,7 @@ dependencies:
128
128
  requirements:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: '5.2'
131
+ version: 6.1.3.2
132
132
  - - "<"
133
133
  - !ruby/object:Gem::Version
134
134
  version: '7.0'
@@ -188,20 +188,6 @@ dependencies:
188
188
  - - "~>"
189
189
  - !ruby/object:Gem::Version
190
190
  version: '0.12'
191
- - !ruby/object:Gem::Dependency
192
- name: mime-types
193
- requirement: !ruby/object:Gem::Requirement
194
- requirements:
195
- - - "~>"
196
- - !ruby/object:Gem::Version
197
- version: '3.3'
198
- type: :runtime
199
- prerelease: false
200
- version_requirements: !ruby/object:Gem::Requirement
201
- requirements:
202
- - - "~>"
203
- - !ruby/object:Gem::Version
204
- version: '3.3'
205
191
  description: |-
206
192
  AdLocalize produces localization files from platform agnostic wording.
207
193
  Supported wording format : CSV. Supported export format: iOS, Android, JSON and YAML
@@ -282,13 +268,13 @@ homepage: https://github.com/applidium/ad_localize
282
268
  licenses:
283
269
  - MIT
284
270
  metadata: {}
285
- post_install_message:
271
+ post_install_message:
286
272
  rdoc_options: []
287
273
  require_paths:
288
274
  - lib
289
275
  required_ruby_version: !ruby/object:Gem::Requirement
290
276
  requirements:
291
- - - "~>"
277
+ - - ">="
292
278
  - !ruby/object:Gem::Version
293
279
  version: '2.3'
294
280
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -297,8 +283,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
297
283
  - !ruby/object:Gem::Version
298
284
  version: '0'
299
285
  requirements: []
300
- rubygems_version: 3.1.2
301
- signing_key:
286
+ rubygems_version: 3.2.15
287
+ signing_key:
302
288
  specification_version: 4
303
289
  summary: AdLocalize helps with mobile and web applications wording
304
290
  test_files: []