phraseapp_updater 0.1.1 → 0.1.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: 684e0437bbf7cc86e2716aef718a30755d9062cc
4
- data.tar.gz: dc6f0d1b5753e1864841448c04a376598192c3dc
3
+ metadata.gz: b9bfceed600065602f978bbafed9f6e6a729636c
4
+ data.tar.gz: 581f527db36b94cb44ab4fdf9eeaf621ecdbbf4e
5
5
  SHA512:
6
- metadata.gz: e0464fa1868c7be7cb56f9aad58862f558d40df286c29c1fe078e70702e05e71d8a37cc8da7caa8e186ed5d1d65587cb8447025c4b0fdb79d1eb80f2b86ff8f7
7
- data.tar.gz: e8a3f6bd658210f4a039e86de5ea1866e4ec757935f78114ea4b6f8421915e5cc65c61c9340f32dfb1d98a00e25a99676e721c0c4a3def0f87fd21a0eb3e7767
6
+ metadata.gz: baedaa18f216752c02e01b79c12b7236c38b624089fe54d904e75abc1f0c41e26fefdb95451eaa74b6054d9dd6d7aae2a79a4bd1175d620b3d6c195d80340d33
7
+ data.tar.gz: 443a35fde4d991f45e4f540539aae8ed0ee1f926efce325279a5978129dbcab8d35ec7c70e1a84cff99603cdadd0d176dba3ed9c1993ca2d9f4207bb455e73aa
@@ -8,11 +8,36 @@ class PhraseAppUpdaterCLI < Thor
8
8
  option :previous_locales_path, type: :string
9
9
  option :phraseapp_api_key, type: :string
10
10
  option :phraseapp_project_id, type: :string
11
+ option :config_file_path, type: :string
11
12
  option :store_results_path, type: :string
12
13
  option :store_phraseapp_originals_path, type: :string
13
14
 
14
15
  def push
16
+ if options[:config_file_path]
17
+
18
+ if options[:phraseapp_api_key] || options[:phraseapp_project_id]
19
+ raise RuntimeError.new("Provided both a path to PhraseApp config file and command line arguments. Specify only one. #{options}")
20
+ end
21
+
22
+ config = PhraseAppUpdater.load_config(options[:config_file_path])
23
+
24
+ phraseapp_api_key = config.api_key
25
+ phraseapp_project_id = config.project_id
26
+ else
27
+ phraseapp_api_key = options.fetch(:phraseapp_api_key, ENV["PA_API_KEY"])
28
+ phraseapp_project_id = options.fetch(:phraseapp_project_id, ENV["PA_PROJECT_ID"])
29
+ end
30
+
31
+ if phraseapp_api_key.to_s.empty?
32
+ raise RuntimeError.new("Must provide Phraseapp API key. --phraseapp_api_key or PA_API_KEY")
33
+ end
34
+
35
+ if phraseapp_project_id.to_s.empty?
36
+ raise RuntimeError.new("Must provide Phraseapp project ID. --phraseapp_project_id or PA_PROJECT_ID")
37
+ end
38
+
15
39
  new_locales_path = options.fetch(:new_locales_path, ENV["PA_NEW_LOCALES_PATH"])
40
+
16
41
  if new_locales_path.to_s.empty?
17
42
  raise RuntimeError.new("Must provide a path to the locale files to upload. --new_locales_path or PA_NEW_LOCALES_PATH")
18
43
  end
@@ -30,16 +55,6 @@ class PhraseAppUpdaterCLI < Thor
30
55
  raise RuntimeError.new("Path to locales is not a readable directory: #{previous_locales_path}")
31
56
  end
32
57
 
33
- phraseapp_api_key = options.fetch(:phraseapp_api_key, ENV["PA_API_KEY"])
34
- if phraseapp_api_key.to_s.empty?
35
- raise RuntimeError.new("Must provide Phraseapp API key. --phraseapp_api_key or PA_API_KEY")
36
- end
37
-
38
- phraseapp_project_id = options.fetch(:phraseapp_project_id, ENV["PA_PROJECT_ID"])
39
- if phraseapp_project_id.to_s.empty?
40
- raise RuntimeError.new("Must provide Phraseapp project ID. --phraseapp_project_id or PA_PROJECT_ID")
41
- end
42
-
43
58
  store_results_path = options.fetch(:store_results_path, ENV["PA_store_results_path"]).to_s
44
59
 
45
60
  if !store_results_path.empty? && (!File.writable?(store_results_path) || !File.directory?(store_results_path))
@@ -4,6 +4,7 @@ require 'phraseapp_updater/differ'
4
4
  require 'phraseapp_updater/locale_file'
5
5
  require 'phraseapp_updater/locale_file_loader'
6
6
  require 'phraseapp_updater/phraseapp_api'
7
+ require 'phraseapp_updater/yml_config_loader'
7
8
 
8
9
  class PhraseAppUpdater
9
10
  using IndexBy
@@ -72,6 +73,10 @@ class PhraseAppUpdater
72
73
  end
73
74
  end
74
75
 
76
+ def self.load_config(config_file_path)
77
+ YMLConfigLoader.new(config_file_path)
78
+ end
79
+
75
80
  def self.find_default_locale_file(locales, files)
76
81
  default_locale = locales.find(&:default?)
77
82
 
@@ -1,3 +1,3 @@
1
1
  class PhraseAppUpdater
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -0,0 +1,21 @@
1
+ require 'yaml'
2
+
3
+ class PhraseAppUpdater
4
+ class YMLConfigLoader
5
+ attr_reader :api_key, :project_id
6
+ def initialize(file_path)
7
+ unless File.readable?(file_path)
8
+ raise RuntimeError.new("Can't read config file at #{file_path}")
9
+ end
10
+
11
+ parsed_yaml = YAML.load(File.read(file_path))
12
+
13
+ unless parsed_yaml
14
+ raise RuntimeError.new("Couldn't parse file contents: #{File.read(file_path)}")
15
+ end
16
+
17
+ @api_key = parsed_yaml.fetch("phraseapp").fetch("access_token")
18
+ @project_id = parsed_yaml.fetch("phraseapp").fetch("project_id")
19
+ end
20
+ end
21
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phraseapp_updater
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Griffin
@@ -177,6 +177,7 @@ files:
177
177
  - lib/phraseapp_updater/locale_file_loader.rb
178
178
  - lib/phraseapp_updater/phraseapp_api.rb
179
179
  - lib/phraseapp_updater/version.rb
180
+ - lib/phraseapp_updater/yml_config_loader.rb
180
181
  - phraseapp_updater.gemspec
181
182
  homepage: https://app.engoo.com
182
183
  licenses:
@@ -198,8 +199,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
199
  version: '0'
199
200
  requirements: []
200
201
  rubyforge_project:
201
- rubygems_version: 2.5.1
202
+ rubygems_version: 2.4.8
202
203
  signing_key:
203
204
  specification_version: 4
204
205
  summary: A three-way differ for PhraseApp projects.
205
206
  test_files: []
207
+ has_rdoc: