ymdp 0.7.1 → 0.7.2

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
- 0.7.1
1
+ 0.7.2
@@ -278,6 +278,10 @@ module YMDP
278
278
  yield
279
279
  end
280
280
  end
281
+
282
+ def process_coffee(template, filename=nil)
283
+ CoffeeScript.compile(process_template(template))
284
+ end
281
285
 
282
286
  # Write this template with the application layout applied.
283
287
  #
@@ -61,20 +61,14 @@ ABTesting = {
61
61
  },
62
62
 
63
63
  apply: function(content_id, language) {
64
- try {
65
- if (ABTesting.on && $.inArray(language, ABTesting.languages) >= 0) {
66
- var index;
67
-
68
- index = ABTesting.randomAB();
69
- ABTesting.setVariable(index);
70
-
71
- ABTesting.get(content_id);
72
- } else {
73
- YMDP.Init.showAndFinish();
74
- }
75
- }
76
- catch(e) {
77
- Debug.log(e);
64
+ if (ABTesting.on && $.inArray(language, ABTesting.languages) >= 0) {
65
+ var index;
66
+
67
+ index = ABTesting.randomAB();
68
+ ABTesting.setVariable(index);
69
+
70
+ ABTesting.get(content_id);
71
+ } else {
78
72
  YMDP.Init.showAndFinish();
79
73
  }
80
74
  },
@@ -88,36 +82,28 @@ ABTesting = {
88
82
  },
89
83
 
90
84
  success: function(content_id, response) {
91
- try {
92
- var content, experiment, experimentId;
93
- Debug.log("ABTesting.success", response);
94
-
95
- experiment = response.experiment;
96
-
97
- if (experiment) {
98
- content = ABTesting.content(experiment);
99
- experimentId = response.experiment.id;
85
+ var content, experiment, experimentId;
86
+ Debug.log("ABTesting.success", response);
87
+
88
+ experiment = response.experiment;
89
+
90
+ if (experiment) {
91
+ content = ABTesting.content(experiment);
92
+ experimentId = response.experiment.id;
100
93
 
101
- ABTesting.postView(experimentId);
102
- ABTesting.replaceContents(content_id, content);
103
- } else {
104
- Debug.log("No experiment running");
105
- }
106
-
107
- YMDP.Init.showAndFinish();
108
- } catch(e) {
109
- Debug.log("ABTesting.success error" + e);
94
+ ABTesting.postView(experimentId);
95
+ ABTesting.replaceContents(content_id, content);
96
+ } else {
97
+ Debug.log("No experiment running");
110
98
  }
99
+
100
+ YMDP.Init.showAndFinish();
111
101
  },
112
102
 
113
103
  replaceContents: function(content_id, content) {
114
104
  openmail.Application.filterHTML({html: content}, function(response) {
115
105
  if (response.html && response.html !== '') {
116
- try {
117
- $("#" + content_id).html(response.html);
118
- } catch(omg) {
119
- Debug.error(omg);
120
- }
106
+ $("#" + content_id).html(response.html);
121
107
  }
122
108
  YMDP.Init.showAndFinish();
123
109
  });
@@ -100,18 +100,7 @@ OIB = {
100
100
  //
101
101
  // response doesn't have a parameter called "error"
102
102
  //
103
- try {
104
- success_function(response);
105
- } catch(e) {
106
- if (debug) {
107
- Debug.log("Error in OIB.request success function", e);
108
- }
109
- YMDP.showError({
110
- "method": "OIB.request",
111
- "description": "exception caught in OIB.request success callback",
112
- "error": e
113
- });
114
- }
103
+ success_function(response);
115
104
  }
116
105
  });
117
106
  },
@@ -91,13 +91,9 @@ YMDP.Init.upgradeCheck = function(success_callback, failure_callback) {
91
91
 
92
92
  // Minty-only code goes here
93
93
 
94
- try {
95
- Debug.log("Minty found");
96
-
97
- success_callback();
98
- } catch(wtf) {
99
- Debug.error(wtf);
100
- }
94
+ Debug.log("Minty found");
95
+
96
+ success_callback();
101
97
  } else {
102
98
  // non-Minty
103
99
 
@@ -19,6 +19,7 @@ Authorize = {
19
19
  Authorize.default_state = default_state;
20
20
 
21
21
  Authorize.params = params;
22
+ Debug.log("end of Authorize.init");
22
23
  },
23
24
 
24
25
  assignUrl: function(url) {
@@ -36,22 +36,18 @@ Data = {
36
36
  };
37
37
 
38
38
  openmail.Application.getData(keys, function(response) {
39
- try {
40
- Debug.log("Inside openmail.Application.getData callback", response);
41
-
42
- if (response.error && (response.error !== YAHOO.openmail.ERR_NONE)) {
43
- Debug.error("Error retrieving data", response);
44
- if (error_function) {
45
- error_function(response);
46
- }
47
- } else {
48
- Debug.log("success in openmail.Application.getData", response);
49
- if (success_function) {
50
- success_function(response);
51
- }
39
+ Debug.log("Inside openmail.Application.getData callback", response);
40
+
41
+ if (response.error && (response.error !== YAHOO.openmail.ERR_NONE)) {
42
+ Debug.error("Error retrieving data", response);
43
+ if (error_function) {
44
+ error_function(response);
45
+ }
46
+ } else {
47
+ Debug.log("success in openmail.Application.getData", response);
48
+ if (success_function) {
49
+ success_function(response);
52
50
  }
53
- } catch(omg) {
54
- Debug.error(omg);
55
51
  }
56
52
  });
57
53
  },
@@ -2,23 +2,19 @@ var Education;
2
2
 
3
3
  Education = {
4
4
  init: function(name) {
5
- try {
6
- Debug.log("Education.init", name);
7
- var m;
8
-
9
- Education.name = name;
10
-
11
- m = "";
12
- m = m + Tags.linkToFunction("Close", "Education.educate(); return false;", {"class": "close"});
13
- m = m + Education.educationModule();
14
-
15
- Education.container().insert(m);
16
- Education.container().insert({"after": Education.forcedEducation()});
17
-
18
- Education.load();
19
- } catch(omg) {
20
- Debug.error(omg);
21
- }
5
+ Debug.log("Education.init", name);
6
+ var m;
7
+
8
+ Education.name = name;
9
+
10
+ m = "";
11
+ m = m + Tags.linkToFunction("Close", "Education.educate(); return false;", {"class": "close"});
12
+ m = m + Education.educationModule();
13
+
14
+ Education.container().insert(m);
15
+ Education.container().insert({"after": Education.forcedEducation()});
16
+
17
+ Education.load();
22
18
  },
23
19
 
24
20
  educationModule: function() {
@@ -151,18 +147,9 @@ Education = {
151
147
  },
152
148
 
153
149
  load: function() {
154
- try {
155
- Debug.log('Education.load');
156
- Education.get({}, function(response) {
157
- Education.show(response);
158
- });
159
- } catch(err) {
160
- YMDP.showError({
161
- "method": "Education.load",
162
- "type": "exception caught",
163
- "error": err
164
- });
165
- Debug.error(err);
166
- }
150
+ Debug.log('Education.load');
151
+ Education.get({}, function(response) {
152
+ Education.show(response);
153
+ });
167
154
  }
168
155
  };
@@ -14,12 +14,9 @@ Flash.duration = 0.25;
14
14
  Flash.write = function(type, message) {
15
15
  type = type || "notice";
16
16
  if (message) {
17
- $('#flash_message').update(message);
18
- Flash.setFlashClass('flash', type);
19
-
20
- if ($('#flash').css("display") === "none") {
21
- $('#flash').show();
22
- }
17
+ $('#flash_message').html(message);
18
+ Flash.setFlashClass('#flash', type);
19
+ $('#flash').show();
23
20
  YMDP.setTimeoutInSeconds(Flash.close, Flash.timeout);
24
21
  }
25
22
  };
@@ -30,12 +27,12 @@ Flash.close = function() {
30
27
 
31
28
  Flash.setFlashClass = function(flash_id, type) {
32
29
  if (type === "error") {
33
- $("#" + flash_id).removeClass('notice');
30
+ $(flash_id).removeClass('notice');
34
31
  }
35
32
  if (type === "notice") {
36
- $("#" + flash_id).removeClass('error');
33
+ $(flash_id).removeClass('error');
37
34
  }
38
- $("#" + flash_id).addClass(type);
35
+ $(flash_id).addClass(type);
39
36
  };
40
37
 
41
38
 
@@ -4,57 +4,49 @@
4
4
  // popup help text
5
5
  //
6
6
  var Help = function(content) {
7
- try {
8
- this.content = content;
9
-
10
- // instance method
11
- this.show = function(event) {
12
- var x = event.clientX + 20;
13
- var y = event.clientY - 10;
14
- this.create(x,y);
15
- };
16
-
17
- this.create = function(x, y) {
18
- try {
19
- if (!$("#" + this.css_id).length) {
20
- var popup = new Element('div', {
21
- "id": this.css_id,
22
- "class": "popup"
23
- });
24
- popup.update(this.content);
25
- popup.setStyle({
26
- "display": "none",
27
- "left": x + "px",
28
- "top": y + "px"
29
- });
30
- $('body').append(popup);
31
- setTimeout("$(\"" + this.css_id + "\").show();", 500);
32
- }
33
- } catch(e) {
34
- // alert(e);
35
- }
36
- };
37
-
38
- this.destroy = function() {
39
- setTimeout("$('" + this.css_id + "').remove();", 4000);
40
- };
41
-
42
- this.link = function(text) {
43
- text = text || "?";
44
- return Tags.linkToFunction(text, "", {
45
- "onmouseover": "Help.show(event, " + this.id + ");",
46
- "onmouseout": "Help.destroy(" + this.id + ")"
47
- });
48
- };
49
-
50
- Help.popups = Help.popups || [];
51
- Help.popups.push(this);
7
+ this.content = content;
8
+
9
+ // instance method
10
+ this.show = function(event) {
11
+ var x = event.clientX + 20;
12
+ var y = event.clientY - 10;
13
+ this.create(x,y);
14
+ };
52
15
 
53
- this.id = Help.popups.size() - 1;
54
- this.css_id = "popup_" + this.id;
55
- } catch(e) {
56
- // alert(e);
57
- }
16
+ this.create = function(x, y) {
17
+ if (!$("#" + this.css_id).length) {
18
+ var popup = new Element('div', {
19
+ "id": this.css_id,
20
+ "class": "popup"
21
+ });
22
+ popup.update(this.content);
23
+ popup.setStyle({
24
+ "display": "none",
25
+ "left": x + "px",
26
+ "top": y + "px"
27
+ });
28
+ $('body').append(popup);
29
+ setTimeout("$(\"" + this.css_id + "\").show();", 500);
30
+ }
31
+ };
32
+
33
+ this.destroy = function() {
34
+ setTimeout("$('" + this.css_id + "').remove();", 4000);
35
+ };
36
+
37
+ this.link = function(text) {
38
+ text = text || "?";
39
+ return Tags.linkToFunction(text, "", {
40
+ "onmouseover": "Help.show(event, " + this.id + ");",
41
+ "onmouseout": "Help.destroy(" + this.id + ")"
42
+ });
43
+ };
44
+
45
+ Help.popups = Help.popups || [];
46
+ Help.popups.push(this);
47
+
48
+ this.id = Help.popups.size() - 1;
49
+ this.css_id = "popup_" + this.id;
58
50
  };
59
51
 
60
52
  Help.show = function(event, id) {
@@ -9,20 +9,14 @@
9
9
  Methods and constants dealing with internationalization.
10
10
  */
11
11
 
12
- var I18N, I18n;
12
+ var I18n;
13
13
 
14
14
  /* set asset version */
15
15
 
16
- I18N = {
17
- VERSION: "<%= @hash %>",
18
- MESSAGE: "<%= @message %>",
19
- DEPLOYED: <%= Time.now.to_i %>,
20
- DEPLOYED_STRING: "<%= Time.now.to_s %>"
16
+ I18n = {
17
+ "keys": {}
21
18
  };
22
19
 
23
-
24
- I18n = {};
25
-
26
20
  I18n.init = function() {
27
21
  Debug.log("about to call I18n.init");
28
22
 
@@ -38,23 +32,16 @@ I18n.init = function() {
38
32
  };
39
33
 
40
34
  I18n.setResources = function() {
41
- var scope, asset_path;
42
-
43
- scope = "keys";
35
+ var asset_path;
44
36
 
45
37
  Debug.log("begin I18n.setResources for language " + I18n.currentLanguage);
46
- try {
47
- asset_path = "<%= @assets_directory %>/yrb/";
48
- I18n[scope] = I18n[scope] || OpenMailIntl.getResources(asset_path, scope, I18n.currentLanguage);
49
- if (I18n.currentLanguage !== "en-US") {
50
- I18n.default_keys = OpenMailIntl.getResources(asset_path, scope, "en-US");
51
- } else {
52
- I18n.default_keys = I18n[scope];
53
- }
54
- } catch(err) {
55
- Debug.error("error in I18n.setResources: " + err);
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;
56
44
  }
57
- I18n.scope = scope;
58
45
  };
59
46
 
60
47
  I18n.english = function() {
@@ -120,15 +107,11 @@ I18n.translate_sentence = function(key, args) {
120
107
  // only updates the element if the translation is not blank
121
108
  //
122
109
  I18n.update = function(id, key, args) {
123
- try {
124
- if (typeof(id) === "string") {
125
- I18n.updateById(id, key, args);
126
- } else {
127
- I18n.updateByElement(id, key, args);
128
- }
129
- } catch(omg) {
130
- Debug.error("Error in I18n.update", omg, id, key, args)
131
- }
110
+ if (typeof(id) === "string") {
111
+ I18n.updateById(id, key, args);
112
+ } else {
113
+ I18n.updateByElement(id, key, args);
114
+ }
132
115
  };
133
116
 
134
117
  I18n.updateById = function(id, key, args) {
@@ -161,16 +144,9 @@ I18n.u = function(id, args) {
161
144
  I18n.u(element);
162
145
  });
163
146
  } else {
164
- try {
165
- var key;
166
- key = id.toUpperCase();
167
- I18n.update(id, key, args);
168
- } catch(wtf) {
169
- Debug.error("Error in i18n.u: " + JSON.stringify({
170
- id: id,
171
- args: args
172
- }));
173
- }
147
+ var key;
148
+ key = id.toUpperCase();
149
+ I18n.update(id, key, args);
174
150
  }
175
151
  };
176
152
 
@@ -183,19 +159,11 @@ I18n.u = function(id, args) {
183
159
  // only updates the element if the translation is not blank
184
160
  //
185
161
  I18n.updateValue = function(id, key, args) {
186
- try {
187
- var message;
188
- message = I18n.t(key, args);
189
- if (message) {
190
- $("#" + id).val(message);
191
- }
192
- } catch(omg) {
193
- Debug.error("Error in i18n.updateValue: " + JSON.stringify({
194
- id: id,
195
- key: key,
196
- args: args
197
- }));
198
- };
162
+ var message;
163
+ message = I18n.t(key, args);
164
+ if (message) {
165
+ $("#" + id).val(message);
166
+ }
199
167
  };
200
168
 
201
169
 
@@ -207,23 +175,14 @@ I18n.updateValue = function(id, key, args) {
207
175
  // within the local scope of the current view, and update the element's value with
208
176
  // that translation
209
177
  //
210
- I18n.v = function(id, args) {
211
- try {
212
- $(id).each(function(i, element) {
213
- I18n.v(element);
214
- });
215
- } catch(omg) {
216
- try {
217
- var key;
218
- key = id.toUpperCase();
219
- I18n.updateValue(id, key, args);
220
- } catch(wtf) {
221
- Debug.error("Error in i18n.v: " + JSON.stringify({
222
- id: id,
223
- args: args
224
- }));
225
- }
226
- }
178
+ I18n.v = function(elements, args) {
179
+ $(elements).each(function(i, element) {
180
+ var key;
181
+
182
+ element = $(element);
183
+ key = element.val();
184
+ element.val(I18n.t(key));
185
+ });
227
186
  };
228
187
 
229
188
  // Specific to Organizer
@@ -252,11 +211,7 @@ I18n.translateLoading = function() {
252
211
  };
253
212
 
254
213
  I18n.addLanguageToBody = function() {
255
- try {
256
- $('body').addClass(I18n.currentLanguage);
257
- } catch(omg) {
258
- Debug.error(omg);
259
- }
214
+ $('body').addClass(I18n.currentLanguage);
260
215
  };
261
216
 
262
217
  I18n.p = function(element) {
@@ -273,21 +228,18 @@ I18n.findAndTranslateAll = function() {
273
228
 
274
229
  $('.p').each(function(i) {
275
230
  var element = $(this);
276
- try {
277
- I18n.p(element);
278
- } catch(e) {
279
- Debug.error("Translation error for element: " + e);
280
- }
231
+ I18n.p(element);
281
232
  });
282
233
 
283
234
  $('.t').each(function(i) {
284
235
  var element = $(this);
285
- try {
286
- I18n.translate_element(element);
287
- } catch(e) {
288
- Debug.error("Translation error for element: " + e);
289
- }
290
- });
236
+ I18n.translate_element(element);
237
+ });
238
+
239
+ $('.v').each(function(i) {
240
+ var element = $(this);
241
+ I18n.v(element);
242
+ });
291
243
 
292
244
  Debug.log("End I18n.findAndTranslateAll");
293
245
  };
@@ -13,14 +13,10 @@ YMDP.Init.addBehaviors = function() {
13
13
  // hide the loading screen and show the main body of the summary
14
14
  YMDP.Init.show = function() {
15
15
  Debug.log("YMDP.Init.show");
16
- try {
17
- $('#utility').hide();
18
- $('#error').hide();
19
- $('#loading').hide();
20
- $('#main').show();
21
- } catch(e) {
22
- Debug.error("Error in YMDP.Init.show", e);
23
- }
16
+ $('#utility').hide();
17
+ $('#error').hide();
18
+ $('#loading').hide();
19
+ $('#main').show();
24
20
  };
25
21
 
26
22
 
@@ -43,12 +39,16 @@ YMDP.Init.startup = function() {
43
39
  Debug.log("init.startup");
44
40
  // gets the user
45
41
  YMDP.getGuid(function(guid) {
46
- try {
47
- Reporter.reportCurrentView(guid);
48
- } catch(omg) {
49
- Debug.error(omg);
50
- }
51
- YMDP.getUserState(YMDP.Init.local, YMDP.Init.local);
42
+ Reporter.reportCurrentView(guid);
43
+ callback = function() {
44
+ try {
45
+ YMDP.Init.local();
46
+ } catch(omg) {
47
+ Debug.error("Error in YMDP.Init.local", omg);
48
+ YMDP.showError();
49
+ }
50
+ };
51
+ YMDP.getUserState(callback, callback);
52
52
  });
53
53
  };
54
54
 
@@ -65,24 +65,15 @@ YMDP.Init.abTesting = function() {
65
65
  // runs the A/B testing callback, which in turn will execute the last callbacks.
66
66
  //
67
67
  YMDP.Init.finish = function() {
68
- // try {
69
- Debug.log("init.finish for view " + View.name);
70
- YMDP.showTranslations();
71
- Debug.log("addBehaviors:");
72
- YMDP.Init.addBehaviors();
73
- Debug.log("abTesting:");
74
- YMDP.Init.abTesting();
75
- Debug.log("page_loaded = true:");
76
- View.page_loaded = true;
77
- Debug.log("finished init.finish for view " + View.name);
78
- // } catch(omg) {
79
- // Debug.error("Error in YMDP.Init.finish", omg);
80
- // YMDP.showError({
81
- // "method": "YMDP.Init.finish",
82
- // "description": "exception caught in YMDP.Init.finish",
83
- // "error": omg
84
- // });
85
- // }
68
+ Debug.log("init.finish for view " + View.name);
69
+ YMDP.showTranslations();
70
+ Debug.log("addBehaviors:");
71
+ YMDP.Init.addBehaviors();
72
+ Debug.log("abTesting:");
73
+ YMDP.Init.abTesting();
74
+ Debug.log("page_loaded = true:");
75
+ View.page_loaded = true;
76
+ Debug.log("finished init.finish for view " + View.name);
86
77
  };
87
78
 
88
79
  // Post-initalizer. Very last thing that runs, after content has been shown.
@@ -94,24 +85,15 @@ YMDP.Init.after = function() {
94
85
  // Execute the before, startup and after methods. Do not overwrite. (Change YMDP.Init.startup to create a custom initializer.)
95
86
  YMDP.init = function() {
96
87
  Debug.log("OIB.init for view " + View.name, "<%= @message %>");
97
- try {
98
- Logger.init();
99
- Tags.init();
100
- YMDP.Init.browser();
101
- YMDP.Init.resources();
102
- I18n.addLanguageToBody();
103
- I18n.translateLoading();
104
- I18n.translateError();
105
- YMDP.Init.before();
106
- YMDP.Init.startup();
107
- } catch(err_f) {
108
- YMDP.showError({
109
- "method": "YMDP.init",
110
- "description": "exception caught in YMDP.init",
111
- "error": err_f
112
- });
113
- Debug.error("Error in YMDP.init", err_f);
114
- }
88
+ Logger.init();
89
+ Tags.init();
90
+ YMDP.Init.browser();
91
+ YMDP.Init.resources();
92
+ I18n.addLanguageToBody();
93
+ I18n.translateLoading();
94
+ I18n.translateError();
95
+ YMDP.Init.before();
96
+ YMDP.Init.startup();
115
97
  };
116
98
 
117
99
  YMDP.Init.browser = function() {
@@ -6,29 +6,21 @@ var Params = {
6
6
  launchParams = launchParams || {};
7
7
  Debug.log("Params.init", launchParams);
8
8
 
9
- try {
10
- if (launchParams) {
11
- Params.parameters = launchParams;
12
- } else {
13
- Params.parameters = {};
14
- }
15
- } catch(wtf) {
16
- Debug.error(wtf);
9
+ if (launchParams) {
10
+ Params.parameters = launchParams;
11
+ } else {
12
+ Params.parameters = {};
17
13
  }
18
14
  },
19
15
 
20
16
  get: function(name) {
21
17
  Debug.log("Params.get", name);
22
18
  var index, result;
23
-
24
- try {
25
- index = Params.names.indexOf(name);
26
-
27
- if (index >= 0) {
28
- result = Params.parameters["param" + index];
29
- }
30
- } catch(wtf) {
31
- Debug.error(wtf);
19
+
20
+ index = $.inArray(name, Params.names);
21
+
22
+ if (index >= 0) {
23
+ result = Params.parameters["param" + index];
32
24
  }
33
25
  return result;
34
26
  }
@@ -1,25 +1,12 @@
1
1
  /* TAG HELPERS */
2
2
 
3
-
4
3
  // DO NOT USE the @view instance variable in any files in /app/javascripts/base.
5
4
  // The way they are cached makes it not safe to do so.
6
5
 
7
6
  var Tags;
8
7
 
9
8
  function tagHelper(tag_name, text, options) {
10
- var m, opts;
11
-
12
- m = "";
13
- opts = "";
14
-
15
- Object.keys(options).each(function(key) {
16
- opts = opts + " " + key + "='" + options[key] + "'";
17
- });
18
-
19
- m = m + "<" + tag_name + " " + opts + ">";
20
- m = m + text;
21
- m = m + "<\/" + tag_name + ">";
22
- return m;
9
+ return Tags.create(tag_name, text, options);
23
10
  }
24
11
 
25
12
  function optionTag(text, options) {
@@ -63,10 +50,11 @@ function submitTag(value, options) {
63
50
  function optionsForSelect(options, selected) {
64
51
  var m;
65
52
  m = "";
66
- options.each(function(option) {
53
+
54
+ $.each(options, function(i, option) {
67
55
  var key, value, opts;
68
56
 
69
- if (Object.isArray(option)) {
57
+ if ($.isArray(option)) {
70
58
  key = option[0];
71
59
  value = option[1];
72
60
  } else {
@@ -82,7 +70,7 @@ function optionsForSelect(options, selected) {
82
70
  opts.selected = 'selected';
83
71
  }
84
72
 
85
- m = m + optionTag(key, opts);
73
+ m = m + optionTag(key, opts);
86
74
  });
87
75
  return m;
88
76
  }
@@ -91,20 +79,21 @@ Tags = {
91
79
  create: function(tag_name, text, options) {
92
80
  options = options || {};
93
81
  var m, opts;
82
+ text = text || "";
94
83
 
95
84
  m = "";
96
85
  opts = "";
97
-
98
- Object.keys(options).each(function(key) {
99
- if (options[key]) {
100
- opts = opts + " " + key + "='" + options[key] + "'";
101
- }
102
- });
86
+
87
+ $.each(options, function(i, key) {
88
+ if (options[key]) {
89
+ opts = opts + " " + key + "='" + options[key] + "'";
90
+ }
91
+ });
103
92
 
104
93
  m = m + "<" + tag_name + " " + opts + ">";
105
94
  m = m + text;
106
95
  m = m + "<\/" + tag_name + ">";
107
- return m;
96
+ return $(m);
108
97
  },
109
98
 
110
99
  input: function(value, options) {
@@ -163,17 +152,15 @@ Tags = {
163
152
  return Tags.a(value, options);
164
153
  },
165
154
 
166
- div: function(text, options) {
167
- return new Element('div', options).update(text);
168
- },
155
+ tag_list: ["li", "ol", "ul", "span", "div", "p", "a", "option", "select", "strong", "table", "th", "tr", "td", "div"],
169
156
 
170
157
  init: function() {
171
- for (tag_name in ["li", "ol", "ul", "span", "div", "p", "a", "option", "select", "strong", "table", "th", "tr", "td"]) {
158
+ $.each(Tags.tag_list, function(i, tag_name) {
172
159
  Tags[tag_name] = function(text, options) {
173
160
  options = options || {};
174
161
  return Tags.create(tag_name, text, options);
175
162
  };
176
- };
163
+ });
177
164
  }
178
165
  };
179
166
 
@@ -149,11 +149,7 @@ YMDP.getYmailWssid = function(success_function, error_function) {
149
149
 
150
150
  Debug.log("YMDP.ymail_wssid is defined", YMDP.ymail_wssid);
151
151
 
152
- try {
153
- success_function(YMDP.ymail_wssid);
154
- } catch(omg) {
155
- Debug.error("Error in YMDP.getYmailWssid getData callback", omg);
156
- }
152
+ success_function(YMDP.ymail_wssid);
157
153
  });
158
154
  };
159
155
 
@@ -168,17 +164,16 @@ YMDP.getGuid = function(success_function, error_function) {
168
164
  openmail.Application.getParameters(function(response) {
169
165
  Debug.log("getParameters callback");
170
166
  YMDP.guid = response.user.guid;
171
- try {
172
- Debug.log("YMDP.getGuid getParameters response", response);
173
-
174
- var params = {};
175
- if (response.data) {
176
- params = response.data.launchParams;
177
- }
178
- Params.init(params);
179
- } catch(omg) {
180
- Debug.error("error getting parameters: " + omg);
167
+
168
+ Debug.log("YMDP.getGuid getParameters response", response);
169
+
170
+ var params = {};
171
+ if (response.data) {
172
+ params = response.data.launchParams;
181
173
  }
174
+
175
+ Params.init(params);
176
+
182
177
  if (YMDP.guid !== undefined) {
183
178
  success_function(YMDP.guid);
184
179
  }
@@ -61,21 +61,15 @@ ABTesting = {
61
61
  },
62
62
 
63
63
  apply: function(content_id, language) {
64
- try {
65
- Debug.log("ABTesting.apply", $A(arguments));
66
- if (ABTesting.on && ABTesting.languages.include(language)) {
67
- var index;
68
-
69
- index = ABTesting.randomAB();
70
- ABTesting.setVariable(index);
71
-
72
- ABTesting.get(content_id);
73
- } else {
74
- YAHOO.init.showAndFinish();
75
- }
76
- }
77
- catch(e) {
78
- Debug.log(e);
64
+ Debug.log("ABTesting.apply", $A(arguments));
65
+ if (ABTesting.on && ABTesting.languages.include(language)) {
66
+ var index;
67
+
68
+ index = ABTesting.randomAB();
69
+ ABTesting.setVariable(index);
70
+
71
+ ABTesting.get(content_id);
72
+ } else {
79
73
  YAHOO.init.showAndFinish();
80
74
  }
81
75
  },
@@ -89,36 +83,28 @@ ABTesting = {
89
83
  },
90
84
 
91
85
  success: function(content_id, response) {
92
- try {
93
- var content, experiment, experimentId;
94
- Debug.log("ABTesting.success", response);
95
-
96
- experiment = response.experiment;
97
-
98
- if (experiment) {
99
- content = ABTesting.content(experiment);
100
- experimentId = response.experiment.id;
86
+ var content, experiment, experimentId;
87
+ Debug.log("ABTesting.success", response);
88
+
89
+ experiment = response.experiment;
90
+
91
+ if (experiment) {
92
+ content = ABTesting.content(experiment);
93
+ experimentId = response.experiment.id;
101
94
 
102
- ABTesting.postView(experimentId);
103
- ABTesting.replaceContents(content_id, content);
104
- } else {
105
- Debug.log("No experiment running");
106
- }
107
-
108
- YAHOO.init.showAndFinish();
109
- } catch(e) {
110
- Debug.log("ABTesting.success error" + e);
95
+ ABTesting.postView(experimentId);
96
+ ABTesting.replaceContents(content_id, content);
97
+ } else {
98
+ Debug.log("No experiment running");
111
99
  }
100
+
101
+ YAHOO.init.showAndFinish();
112
102
  },
113
103
 
114
104
  replaceContents: function(content_id, content) {
115
105
  openmail.Application.filterHTML({html: content}, function(response) {
116
- if (response.html && response.html !== '') {
117
- try {
118
- $(content_id).update(response.html);
119
- } catch(omg) {
120
- Debug.error(omg);
121
- }
106
+ if (response.html) {
107
+ $("#" + content_id).html(response.html);
122
108
  }
123
109
  YAHOO.init.showAndFinish();
124
110
  });
@@ -21,9 +21,9 @@ LAUNCHER = {
21
21
 
22
22
  YAHOO.namespace("launcher");
23
23
 
24
- Launcher = YAHOO.launcher;
24
+ Launcher = Launcher;
25
25
 
26
- YAHOO.launcher.launch = function(view, title, type) {
26
+ Launcher.launch = function(view, title, type) {
27
27
  openmail.Application.getParameters(function(response) {
28
28
  title = I18n.t("APPLICATION_NAME");
29
29
  // don't try to relaunch current tab
@@ -45,7 +45,7 @@ YAHOO.launcher.launch = function(view, title, type) {
45
45
  };
46
46
 
47
47
 
48
- YAHOO.launcher.launchView = function(launch_view) {
48
+ Launcher.launchView = function(launch_view) {
49
49
  var user;
50
50
 
51
51
  user = YAHOO.oib.user || {"state": "active"};
@@ -53,10 +53,10 @@ YAHOO.launcher.launchView = function(launch_view) {
53
53
  switch(user.state) {
54
54
  case "scanning":
55
55
  // formerly known as 'inspect'
56
- YAHOO.launcher.launchScanning();
56
+ Launcher.launchScanning();
57
57
  break;
58
58
  case "summary":
59
- YAHOO.launcher.launchSummary();
59
+ Launcher.launchSummary();
60
60
  break;
61
61
  case "authorized":
62
62
  // authorized but not yet 'signed in'
@@ -72,52 +72,52 @@ YAHOO.launcher.launchView = function(launch_view) {
72
72
  break;
73
73
  default:
74
74
  // other
75
- YAHOO.launcher.launchAuthorize();
75
+ Launcher.launchAuthorize();
76
76
  }
77
77
  };
78
78
 
79
79
 
80
- YAHOO.launcher.launchTab = function(view, title) {
81
- YAHOO.launcher.launch(view, title, "tab");
80
+ Launcher.launchTab = function(view, title) {
81
+ Launcher.launch(view, title, "tab");
82
82
  };
83
83
 
84
84
  // User must be signed in for this page, we'll
85
85
  // sign them in if they don't have an OIB cookie
86
86
  //
87
- YAHOO.launcher.launchActiveTab = function(view, title) {
88
- YAHOO.launcher.launchTab(view, title);
87
+ Launcher.launchActiveTab = function(view, title) {
88
+ Launcher.launchTab(view, title);
89
89
  };
90
90
 
91
91
 
92
- YAHOO.launcher.launchAuthorize = function() {
93
- YAHOO.launcher.launchTab("authorize", "Authorize");
92
+ Launcher.launchAuthorize = function() {
93
+ Launcher.launchTab("authorize", "Authorize");
94
94
  };
95
95
 
96
- YAHOO.launcher.launchDeactivate = function() {
97
- YAHOO.launcher.launchHidden("deactivate", "Deactivate");
96
+ Launcher.launchDeactivate = function() {
97
+ Launcher.launchHidden("deactivate", "Deactivate");
98
98
  };
99
99
 
100
- YAHOO.launcher.launchHidden = function(view, title) {
101
- YAHOO.launcher.launch(view, title, "hidden");
100
+ Launcher.launchHidden = function(view, title) {
101
+ Launcher.launch(view, title, "hidden");
102
102
  };
103
103
 
104
- YAHOO.launcher.l = function(view) {
104
+ Launcher.l = function(view) {
105
105
  view = "launch" + view.capitalize();
106
- YAHOO.launcher[view]();
106
+ Launcher[view]();
107
107
  };
108
108
 
109
- YAHOO.launcher.launchGoodbye = function() {
110
- YAHOO.launcher.launchTab("goodbye", "Goodbye");
109
+ Launcher.launchGoodbye = function() {
110
+ Launcher.launchTab("goodbye", "Goodbye");
111
111
  };
112
112
 
113
- YAHOO.launcher.relaunchAuthorize = YAHOO.launcher.launchAuthorize;
113
+ Launcher.relaunchAuthorize = Launcher.launchAuthorize;
114
114
 
115
- YAHOO.launcher.launchMaintenance = function() {
116
- YAHOO.launcher.launchTab("maintenance", "Maintenance");
115
+ Launcher.launchMaintenance = function() {
116
+ Launcher.launchTab("maintenance", "Maintenance");
117
117
  };
118
118
 
119
- YAHOO.launcher.launchReauthorize = function() {
120
- YAHOO.launcher.launchTab("reauthorize", "Reauthorize");
119
+ Launcher.launchReauthorize = function() {
120
+ Launcher.launchTab("reauthorize", "Reauthorize");
121
121
  };
122
122
 
123
123
  Launcher.launchView = function(launch_view) {
@@ -132,10 +132,10 @@ Launcher.launchView = function(launch_view) {
132
132
  switch(user.state) {
133
133
  case "scanning":
134
134
  // formerly known as 'inspect'
135
- YAHOO.launcher.launchScanning();
135
+ Launcher.launchScanning();
136
136
  break;
137
137
  case "summary":
138
- YAHOO.launcher.launchSummary();
138
+ Launcher.launchSummary();
139
139
  break;
140
140
  case "authorized":
141
141
  // authorized but not yet 'signed in'
@@ -151,7 +151,7 @@ Launcher.launchView = function(launch_view) {
151
151
  break;
152
152
  default:
153
153
  // other
154
- YAHOO.launcher.launchAuthorize();
154
+ Launcher.launchAuthorize();
155
155
  }
156
156
  });
157
157
  });
@@ -88,8 +88,8 @@ YAHOO.oib.confirm = function() {
88
88
  YAHOO.oib.ymail_wssid = response.ymail_wssid;
89
89
 
90
90
  // now that we've got their ymail_wssid, we can sign them in:
91
- YAHOO.oib.verifyUser(YAHOO.launcher.launchMain);
92
- // YAHOO.launcher.launchMain();
91
+ YAHOO.oib.verifyUser(Launcher.launchMain);
92
+ // Launcher.launchMain();
93
93
  } else {
94
94
  // signin didn't work properly, display an error
95
95
  Debug.log("YAHOO.oib.response was false");
@@ -204,7 +204,7 @@ YAHOO.oib.deactivateUser = function() {
204
204
  },
205
205
  function(response) {
206
206
  if (View.name !== "deactivate") {
207
- YAHOO.launcher.launchGoodbye();
207
+ Launcher.launchGoodbye();
208
208
  }
209
209
  });
210
210
  });
@@ -416,7 +416,13 @@ module YMDP
416
416
  def render_without_compression(path, tags=true)
417
417
  output = ""
418
418
 
419
- if File.exists?(path)
419
+ if File.exists?("#{path}.coffee")
420
+ path = "#{path}.coffee"
421
+ $stdout.puts("Parsing #{path}")
422
+ template = File.read(path)
423
+ output = process_coffee(template)
424
+ elsif File.exists?(path)
425
+ $stdout.puts("Parsing #{path}")
420
426
  template = File.read(path)
421
427
  output = process_template(template)
422
428
  end
@@ -18,7 +18,7 @@ module YMDP
18
18
  options[:target] ||= "_blank"
19
19
  else
20
20
  # this will create an in-YMDP link
21
- options[:onclick] = "YAHOO.launcher.l('#{url_or_view}'); return false;"
21
+ options[:onclick] = "Launcher.l('#{url_or_view}'); return false;"
22
22
  options[:href] = "#"
23
23
  end
24
24
  content_tag("a", text, options)
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ymdp}
8
- s.version = "0.7.1"
8
+ s.version = "0.7.2"
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 = %q{2011-05-13}
12
+ s.date = %q{2011-05-31}
13
13
  s.description = %q{Framework for developing applications in the Yahoo! Mail Development Platform.}
14
14
  s.email = %q{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: 1
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 1
10
- version: 0.7.1
9
+ - 2
10
+ version: 0.7.2
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: 2011-05-13 00:00:00 -05:00
18
+ date: 2011-05-31 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency