terrestrial-cli 0.6.0 → 0.6.1.debug

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
  SHA1:
3
- metadata.gz: 6f9c9727a09008ddfadbf7834495b7a217537f0a
4
- data.tar.gz: 7eed9f1dc4c523a1272637511a2066fd41c525a4
3
+ metadata.gz: 33b4a8914ad9b9274894f60f7e49908aa2098707
4
+ data.tar.gz: 8a0c5b41b0f425bd502b1c4b157362381eef2ad0
5
5
  SHA512:
6
- metadata.gz: 5ae1e63c73556277ed65a685312f66f252e3168ace1442ad3d2e8b256f52737951b4e38204cd16281d1e6e44dd1d13b5c3e68805c336d83f0aeb2444c2c98e1d
7
- data.tar.gz: 5dfdfb649948aeb742fd78f1acbb08dda7e8367920a58e87eb038d7b400cc5f22c8388bb34992d1c744da58f3e98b06cdb1bec4fafd0ac1124fd3a2575074051
6
+ metadata.gz: f5859c78be839d1c040fb290afb7932ba8fe330dfb8303c5df9049016a542e10dcf75d809d9cc812cc07d3d42ae1586e6e69513cd36e9ae5481941ef0c9d7790
7
+ data.tar.gz: c04ebd295a7243a8ea61330ffaa27d4d2167ee6a0e3bea354045a20ca011de17e902113ac5ffc7b81e459bb49e1e2f636c71ac3580d67e7e054c00c262501464
data/bin/terrestrial CHANGED
@@ -3,6 +3,8 @@
3
3
  require 'terrestrial'
4
4
  require 'optparse'
5
5
 
6
+ puts "DEBUG: This is a debug version of Terrestrial."
7
+
6
8
  command = ARGV[0]
7
9
  options = {}
8
10
 
@@ -41,4 +43,5 @@ end.parse!
41
43
  abort "Terrestrial CLI #{Terrestrial::Cli::VERSION}" if command.nil?
42
44
  abort "Terrestrial: '#{command}' does not compute?" unless Terrestrial::Cli::COMMANDS.include? command
43
45
 
46
+ Terrestrial::Cli::VersionChecker.run
44
47
  Terrestrial::Cli.start(command, options, ARGV[1..-1])
@@ -7,6 +7,8 @@ module Terrestrial
7
7
 
8
8
  if files.any? {|f| f.end_with?(".xcodeproj") || f.end_with?(".xcworkspace")}
9
9
  "ios"
10
+ elsif files.any? {|f| f.end_with?(".csproj") || f.end_with?(".unity") || f.end_with?(".unityproj")}
11
+ "unity"
10
12
  else
11
13
  "android"
12
14
  end
@@ -37,8 +37,14 @@ module Terrestrial
37
37
  end
38
38
 
39
39
  def insert_attribute
40
+ puts "DEBUG: Finding node #{@storyboard_id} in file #{@path}"
40
41
  node = find_node
41
42
 
43
+ if node.nil?
44
+ puts "DEBUG: Was not able to find node!"
45
+ abort "Node was not found."
46
+ end
47
+
42
48
  # TODO, There was a case when "node" was nil in this point, after
43
49
  # trying to find it by type + ID.
44
50
  #
@@ -4,8 +4,8 @@ module Terrestrial
4
4
 
5
5
  def run
6
6
  # Fail early if project already exists
7
+ Config.touch_global_config!
7
8
  Config.load!({}, project: false)
8
- MixpanelClient.track("cli-init-command")
9
9
 
10
10
  if Config.project_config_exist?
11
11
  abort "Looks like there already exists a project in this directory. Are you in the correct folder?"
@@ -28,6 +28,7 @@ module Terrestrial
28
28
 
29
29
  if @response.success?
30
30
  update_config
31
+ MixpanelClient.track("cli-init-command")
31
32
 
32
33
  puts "-- Success!"
33
34
  puts "App platform added to project! You can view your app at https://mission.terrestrial.io/projects/#{Config[:project_id]}/apps/#{Config[:app_id]}"
@@ -49,7 +50,7 @@ module Terrestrial
49
50
  puts "For more information, see http://docs.terrestrial.io or jump on Slack at https://terrestrial-slack.herokuapp.com/ if you have any questions."
50
51
  else
51
52
  puts "Oh snap. There was an error initializing your project."
52
- puts response.body.inspect
53
+ puts @response.body.inspect
53
54
  abort
54
55
  end
55
56
  end
@@ -78,6 +79,8 @@ module Terrestrial
78
79
  Dir[Config[:directory] + "/**/*.strings"].map {|f| relative_path(f) }
79
80
  elsif @platform == "android"
80
81
  Dir[Config[:directory] + "/**/*/res/values/strings.xml"].map {|f| relative_path(f) }
82
+ elsif @platform == "unity"
83
+ [] # Not tracking files now
81
84
  else
82
85
  raise "Unknown platform #{@platform}"
83
86
  end
@@ -0,0 +1,64 @@
1
+ module Terrestrial
2
+ module Cli
3
+ module LanguageName
4
+
5
+ LANGUAGES = {
6
+ "af" => "Afrikaans",
7
+ "ar" => "Arabic",
8
+ "eu" => "Basque",
9
+ "be" => "Belarusian",
10
+ "bg" => "Bulgarian",
11
+ "ca" => "Catalan",
12
+ "cs" => "Czech",
13
+ "da" => "Danish",
14
+ "nl" => "Dutch",
15
+ "en" => "English",
16
+ "et" => "Estonian",
17
+ "fo" => "Faroese",
18
+ "fi" => "Finnish",
19
+ "fr" => "French",
20
+ "de" => "German",
21
+ "el" => "Greek",
22
+ "he" => "Hebrew",
23
+ "is" => "Icelandic",
24
+ "id" => "Indonesian",
25
+ "it" => "Italian",
26
+ "ja" => "Japanese",
27
+ "ko" => "Korean",
28
+ "lv" => "Latvian",
29
+ "lt" => "Lithuanian",
30
+ "no" => "Norwegian",
31
+ "pl" => "Polish",
32
+ "pt" => "Portuguese",
33
+ "ro" => "Romanian",
34
+ "ru" => "Russian",
35
+ "sr" => "SerboCroatian",
36
+ "sk" => "Slovak",
37
+ "sl" => "Slovenian",
38
+ "es" => "Spanish",
39
+ "sv" => "Swedish",
40
+ "th" => "Thai",
41
+ "tr" => "Turkish",
42
+ "uk" => "Ukrainian",
43
+ "vi" => "Vietnamese",
44
+ "zh" => "ChineseSimplified",
45
+ "zh-tw" => "ChineseTraditional",
46
+ "hu" => "Hungarian"
47
+ }
48
+
49
+ def initialize(language_code)
50
+ @code = language_code
51
+ end
52
+
53
+ def human_readable_name
54
+ LANGUAGES.fetch(code) { abort "Unkown language '#{code}' encountered." }
55
+ end
56
+
57
+ private
58
+
59
+ def code
60
+ @code
61
+ end
62
+ end
63
+ end
64
+ end
@@ -10,8 +10,7 @@ module Terrestrial
10
10
  URL = "https://api.mixpanel.com/track"
11
11
 
12
12
  def track(event)
13
- # If we're live
14
- if Config[:api_url] == "https://mission.terrestrial.io"
13
+ unless Config.testing?
15
14
  `curl -silent -X POST #{URL}?data=#{format_event(event)} &`
16
15
  end
17
16
  end
@@ -18,11 +18,17 @@ module Terrestrial
18
18
  process_ios
19
19
  when "android"
20
20
  process_android
21
+ when "unity"
22
+ process_unity
21
23
  else
22
24
  raise "Unknown platform"
23
25
  end
24
26
  end
25
27
 
28
+ def process_unity
29
+ process_android
30
+ end
31
+
26
32
  def process_android
27
33
  translations
28
34
  .reject {|entry| entry["translation"].nil? || entry["translation"].empty? }
@@ -41,6 +41,8 @@ module Terrestrial
41
41
  ios_translation_file_path(language)
42
42
  elsif Config[:platform] == "android"
43
43
  android_translation_file_path(language)
44
+ elsif Config[:platform] == "unity"
45
+ Config[:directory] + "/Assets/Terrestrial/" + human_readable_language_name(language) + ".xml"
44
46
  end
45
47
  end
46
48
 
@@ -72,6 +74,9 @@ module Terrestrial
72
74
  elsif Config[:platform] == "android"
73
75
  f.write "<!-- Updated by Terrestrial #{Time.now.to_s} -->\n\n"
74
76
  f.write AndroidXmlFormatter.new(translations).format_foreign_translation
77
+ elsif Config[:platform] == "unity"
78
+ f.write "<!-- Updated by Terrestrial #{Time.now.to_s} -->\n\n"
79
+ f.write UnityFormatter.new(translations).format_foreign_translation
75
80
  end
76
81
  end
77
82
  end
@@ -86,6 +91,10 @@ module Terrestrial
86
91
  end
87
92
  end
88
93
 
94
+ def human_readable_language_name(language_code)
95
+ LanguageName.new(language_code).human_readable_name
96
+ end
97
+
89
98
  def fetch_translations
90
99
  @response = web_client.get_translations(Config[:project_id], Config[:app_id])
91
100
  end
@@ -9,6 +9,8 @@ module Terrestrial
9
9
  DotStringsParser.parse_file(Config[:directory] + "/#{file}")
10
10
  elsif Config[:platform] == "android"
11
11
  AndroidXmlParser.parse_file(Config[:directory] + "/#{file}")
12
+ elsif Config[:platform] == "unity"
13
+ UnityParser.parse_file(Config[:directory] + "/#{file}")
12
14
  end
13
15
  rescue Errno::ENOENT
14
16
  abort "Could not find #{file}. If the file is no longer in your project, remove it from your tracked files in terrestrial.yml."
@@ -0,0 +1,20 @@
1
+ module Terrestrial
2
+ module Cli
3
+ class UnityFormatter
4
+
5
+ def initialize(entries)
6
+ @formatter = AndroidXmlFormatter.new(entries)
7
+ end
8
+
9
+ def format_foreign_translation
10
+ formatter.format_foreign_translation
11
+ end
12
+
13
+ private
14
+
15
+ def formatter
16
+ @formatter
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ module Terrestrial
2
+ module Cli
3
+ class UnityParser
4
+
5
+ def self.parse_file(file)
6
+ # Same file format as Android, so we delegate directly.
7
+ result = AndroidXmlParser.parse_file(file)
8
+
9
+ # Map over the results to change the types
10
+ # to be unity instead of the Android default.
11
+ result.map do |entry|
12
+ entry["type"] = "unity"
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  module Terrestrial
2
2
  module Cli
3
- VERSION = "0.6.0"
3
+ VERSION = "0.6.1.debug"
4
4
  end
5
5
  end
@@ -0,0 +1,25 @@
1
+ require 'json'
2
+
3
+ module Terrestrial
4
+ module Cli
5
+ class VersionChecker
6
+
7
+ URL = 'https://api.github.com/repos/terrestrial-io/terrestrial-cli/releases/latest'
8
+
9
+ def self.run
10
+ response = Net::HTTP.get_response(URI(URL))
11
+ json = JSON.load(response.body)
12
+
13
+ # Ignore the "v" in "v1.1.1"
14
+ version = json["tag_name"][1..-1]
15
+
16
+ if version != Terrestrial::Cli::VERSION
17
+ puts "There is an update for Terrestrial: #{version} (your version: #{Terrestrial::Cli::VERSION})"
18
+ puts "Run 'gem update terrestrial-cli' to update."
19
+ puts ""
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+
@@ -6,9 +6,11 @@ require "terrestrial/cli/ignite"
6
6
  require "terrestrial/cli/push"
7
7
  require "terrestrial/cli/pull"
8
8
  require "terrestrial/cli/photoshoot"
9
+ require "terrestrial/cli/version_checker"
9
10
  require "terrestrial/cli/version"
10
11
  require "terrestrial/cli/variable_normalizer"
11
12
  require "terrestrial/cli/terminal_ui"
13
+ require "terrestrial/cli/language_name"
12
14
  require "terrestrial/cli/entry_collection_differ"
13
15
  require "terrestrial/cli/detects_project_type"
14
16
  require "terrestrial/cli/file_picker"
@@ -19,6 +21,8 @@ require "terrestrial/cli/android_xml_parser"
19
21
  require "terrestrial/cli/android_xml_formatter"
20
22
  require "terrestrial/cli/dot_strings_parser"
21
23
  require "terrestrial/cli/dot_strings_formatter"
24
+ require "terrestrial/cli/unity_parser"
25
+ require "terrestrial/cli/unity_formatter"
22
26
  require "terrestrial/cli/parser"
23
27
  require "terrestrial/cli/editor"
24
28
  require "terrestrial/cli/engine_mapper"
@@ -1,3 +1,5 @@
1
+ require 'fileutils'
2
+
1
3
  module Terrestrial
2
4
  module Config
3
5
  class << self
@@ -57,6 +59,10 @@ module Terrestrial
57
59
  self[:api_url] != DEFAULTS[:api_url]
58
60
  end
59
61
 
62
+ def touch_global_config!
63
+ FileUtils.touch(_global_config_path)
64
+ end
65
+
60
66
  private
61
67
 
62
68
  def _load_project_config
@@ -11,7 +11,13 @@ module Terrestrial
11
11
  end
12
12
 
13
13
  def read(path)
14
- symbolize_keys(YAML.load_file(path))
14
+ result = YAML.load_file(path)
15
+
16
+ if result
17
+ symbolize_keys(result)
18
+ else
19
+ {}
20
+ end
15
21
  end
16
22
 
17
23
  def update(path, new_content)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terrestrial-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1.debug
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niklas Begley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-09 00:00:00.000000000 Z
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: terminal-table
@@ -139,6 +139,7 @@ files:
139
139
  - lib/terrestrial/cli/flight/table_workflow.rb
140
140
  - lib/terrestrial/cli/ignite.rb
141
141
  - lib/terrestrial/cli/init.rb
142
+ - lib/terrestrial/cli/language_name.rb
142
143
  - lib/terrestrial/cli/mixpanel_client.rb
143
144
  - lib/terrestrial/cli/parser.rb
144
145
  - lib/terrestrial/cli/parser/android_xml.rb
@@ -154,10 +155,12 @@ files:
154
155
  - lib/terrestrial/cli/scan.rb
155
156
  - lib/terrestrial/cli/string_registry.rb
156
157
  - lib/terrestrial/cli/terminal_ui.rb
158
+ - lib/terrestrial/cli/unity_formatter.rb
159
+ - lib/terrestrial/cli/unity_parser.rb
157
160
  - lib/terrestrial/cli/variable_normalizer.rb
158
161
  - lib/terrestrial/cli/version.rb
162
+ - lib/terrestrial/cli/version_checker.rb
159
163
  - lib/terrestrial/config.rb
160
- - lib/terrestrial/creates_terrestrial_yml.rb
161
164
  - lib/terrestrial/web.rb
162
165
  - lib/terrestrial/web/response.rb
163
166
  - lib/terrestrial/yaml_helper.rb
@@ -177,9 +180,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
180
  version: '0'
178
181
  required_rubygems_version: !ruby/object:Gem::Requirement
179
182
  requirements:
180
- - - '>='
183
+ - - '>'
181
184
  - !ruby/object:Gem::Version
182
- version: '0'
185
+ version: 1.3.1
183
186
  requirements: []
184
187
  rubyforge_project:
185
188
  rubygems_version: 2.4.8
@@ -1,9 +0,0 @@
1
- module Terrestrial
2
- module Cli
3
- class CreatesTerrestrialYml
4
-
5
- def self.run(project_id, app_id, project_type)
6
- end
7
- end
8
- end
9
- end