ymdp 1.1.0 → 1.2.0

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.0
@@ -57,7 +57,7 @@ module YMDP
57
57
  ["views", "assets"].each do |dir|
58
58
  process_path("#{base_path}/app/#{dir}/")
59
59
  end
60
- process_all_translations
60
+ # process_all_translations
61
61
  copy_config_files
62
62
  copy_images
63
63
  end
@@ -156,13 +156,14 @@ module YMDP
156
156
 
157
157
  # Concatenate together all the YRB ".pres" files for this language into one file in the tmp dir.
158
158
  #
159
- F.concat_files("#{yrb_path}/#{lang}/*", tmp_file)
159
+ # F.concat_files("#{yrb_path}/#{lang}/*", tmp_file)
160
160
 
161
- yrb = YMDP::Compiler::Template::YRB.new(:file => tmp_file, :domain => domain)
162
- yrb.build
163
- yrb.validate if CONFIG.validate_json_assets?
161
+ # yrb = YMDP::Compiler::Template::YRB.new(:file => tmp_file, :domain => domain)
162
+ # yrb = YMDP::Compiler::Template::Yaml.new(:file => tmp_file, :domain => domain)
163
+ # yrb.build
164
+ # yrb.validate if CONFIG.validate_json_assets?
164
165
 
165
- FileUtils.rm(tmp_file)
166
+ # FileUtils.rm(tmp_file)
166
167
  end
167
168
 
168
169
  # Creates a fresh destination directory structure for the code to be compiled into.
@@ -256,7 +257,7 @@ module YMDP
256
257
  end
257
258
 
258
259
  def yrb_path
259
- "#{assets_path}/yrb"
260
+ "#{config_path}/locales"
260
261
  end
261
262
 
262
263
  def images_path
@@ -339,6 +339,88 @@ module YMDP
339
339
  end
340
340
  end
341
341
 
342
+ # Process YAML format translation files.
343
+ #
344
+ # Convert them to a hash and write the hash to a JSON file.
345
+ #
346
+ # Each language can have as many YAML translation files as necessary.
347
+ # The files are converted into a single JSON file for each language.
348
+ #
349
+ class Yaml < Base
350
+ # Base directory for translations for this domain.
351
+ #
352
+ def directory
353
+ directory = "#{paths[:base_path]}/servers/#{@domain}/assets/yrb"
354
+ FileUtils.mkdir_p(directory)
355
+ directory
356
+ end
357
+
358
+ # The destination of the compiled JSON file.
359
+ #
360
+ def destination_path
361
+ filename = convert_filename(@file.split("/").last)
362
+ "#{directory}/#{filename}"
363
+ end
364
+
365
+ # JSON values of the compiled translations.
366
+ #
367
+ def to_json
368
+ processed_template
369
+ end
370
+
371
+ # Turn it back into a hash.
372
+ #
373
+ def to_hash
374
+ yaml
375
+ end
376
+
377
+ # Parse Yaml file
378
+ #
379
+ def yaml
380
+ @yaml ||= ::YAML.load_file(@file)
381
+ end
382
+
383
+ # Convert the hash to Yaml if you should want to do that.
384
+ #
385
+ def to_yaml
386
+ to_hash.to_yaml
387
+ end
388
+
389
+ # This function is the file which is written to the destination--in this
390
+ # case, the JSON file.
391
+ #
392
+ def processed_template
393
+ yaml.to_json
394
+ end
395
+
396
+ # Validate the JSON file.
397
+ #
398
+ def validate
399
+ Epic::Validator::JSON.new.validate(destination_path)
400
+ end
401
+
402
+ private
403
+
404
+ # Strip off the extension from original Yaml files.
405
+ #
406
+ def base_filename(filename)
407
+ filename.gsub(/\.yaml/, "")
408
+ end
409
+
410
+ # Take the base filename and add the ".json" extension.
411
+ #
412
+ def convert_filename(filename)
413
+ "#{base_filename(filename)}.json"
414
+ end
415
+
416
+ # Write JSON file to its destination.
417
+ #
418
+ def write_template(result)
419
+ $stdout.puts destination_path if CONFIG.verbose?
420
+ write_template_without_layout(result)
421
+ end
422
+ end
423
+
342
424
  # Process Yahoo! Resource Bundle format translation files.
343
425
  #
344
426
  # Convert them to a hash and write the hash to a JSON file.
@@ -32,16 +32,7 @@ I18n.init = function() {
32
32
  };
33
33
 
34
34
  I18n.setResources = function() {
35
- var asset_path;
36
-
37
- Debug.log("begin I18n.setResources for language " + I18n.currentLanguage);
38
- asset_path = "<%= @assets_directory %>/yrb/";
39
- I18n.keys = OpenMailIntl.getResources(asset_path, "keys", I18n.currentLanguage) || {};
40
- if (I18n.currentLanguage !== "en-US") {
41
- I18n.default_keys = OpenMailIntl.getResources(asset_path, "keys", "en-US") || {};
42
- } else {
43
- I18n.default_keys = I18n.keys;
44
- }
35
+ I18n.keys = <%= translations.to_json %>;
45
36
  };
46
37
 
47
38
  I18n.english = function() {
@@ -52,17 +43,6 @@ I18n.translate_element = function(element) {
52
43
  element = $(element);
53
44
 
54
45
  var e;
55
- //
56
- // e = element.inspect();
57
- // if (e.match(/<input/)) {
58
- // I18n.v(element.attr("id"));
59
- // } else {
60
- // if (e.match(/<img/)) {
61
- // I18n.src(element.attr("id"));
62
- // } else {
63
- // I18n.u(element.attr("id");
64
- // }
65
- // }
66
46
  I18n.u(element.attr("id"));
67
47
  };
68
48
 
@@ -83,16 +63,13 @@ I18n.translate = function(key, args) {
83
63
  } else
84
64
  {
85
65
  m = I18n.translate_phrase(key);
86
- if (!m) {
87
- m = I18n.default_keys[key];
88
- }
89
66
  }
90
67
  return m;
91
68
  };
92
69
  I18n.t = I18n.translate;
93
70
 
94
71
  I18n.translate_phrase = function(key) {
95
- return I18n["keys"][key];
72
+ return I18n["keys"][I18n.currentLanguage][key];
96
73
  };
97
74
 
98
75
  I18n.translate_sentence = function(key, args) {
@@ -137,7 +137,10 @@ window.User =
137
137
 
138
138
  Debug.log("YMDP.ymail_wssid is defined", YMDP.ymail_wssid)
139
139
 
140
- success_function(YMDP.ymail_wssid)
140
+ try
141
+ success_function(YMDP.ymail_wssid)
142
+ catch wtf
143
+ Debug.log wtf
141
144
 
142
145
  # gets the guid from the Yahoo! environment and executes the success callback
143
146
  # if there is a guid, and the error callback if it's undefined
@@ -18,19 +18,18 @@ module YMDP
18
18
  # # => ["en-US", "de-DE", "es-ES", "es-MX"]
19
19
  #
20
20
  def supported_languages
21
- dirs = Dir["#{BASE_PATH}/app/assets/yrb/*"].map do |path|
22
- filename = path.split("/").last
23
-
24
- filename
25
- end
26
-
27
- dirs.unshift(dirs.delete("en-US"))
28
-
29
- raise "Default YRB key en-US not found" unless dirs.include?("en-US")
21
+ YAML.load_file("./config/idiom.yml")["locales"].keys
22
+ end
23
+
24
+ def translations
25
+ @translations ||= {}
30
26
 
31
- dirs
27
+ Dir["./config/locales/**/*.yml"].each do |file|
28
+ @translations.merge!(YAML.load_file(file))
29
+ end
30
+ @translations
32
31
  end
33
-
32
+
34
33
  # Returns an array of country codes of English-speaking countries supported
35
34
  # by the application, based on the language-specific folders located in "app/assets/yrb".
36
35
  #
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ymdp"
8
- s.version = "1.1.0"
8
+ s.version = "1.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Isaac Priestley"]
12
- s.date = "2012-05-01"
12
+ s.date = "2012-05-24"
13
13
  s.description = "Framework for developing applications in the Yahoo! Mail Development Platform."
14
14
  s.email = "progressions@gmail.com"
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ymdp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 1.1.0
10
+ version: 1.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Isaac Priestley
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-01 00:00:00 Z
18
+ date: 2012-05-24 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  type: :runtime