fastlane-plugin-polidea 2.2.0.pre.1 → 3.0.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -13
  3. data/lib/fastlane/plugin/polidea.rb +4 -0
  4. data/lib/fastlane/plugin/polidea/actions/fota_s3.rb +36 -28
  5. data/lib/fastlane/plugin/polidea/actions/release_notes.rb +1 -1
  6. data/lib/fastlane/plugin/polidea/helper/page_generator.rb +17 -56
  7. data/lib/fastlane/plugin/polidea/helper/qr_generator.rb +1 -1
  8. data/lib/fastlane/plugin/polidea/version.rb +1 -1
  9. data/templates/install.erb +238 -0
  10. data/{lib/fastlane/plugin/polidea/templates/download.erb → templates/mail.erb} +20 -25
  11. metadata +4 -105
  12. data/lib/fastlane/plugin/polidea/actions/extract_app_icon.rb +0 -172
  13. data/lib/fastlane/plugin/polidea/actions/extract_app_name.rb +0 -100
  14. data/lib/fastlane/plugin/polidea/actions/extract_version.rb +0 -106
  15. data/lib/fastlane/plugin/polidea/actions/get_binary_size.rb +0 -57
  16. data/lib/fastlane/plugin/polidea/templates/images/cover-shuttle.jpg +0 -0
  17. data/lib/fastlane/plugin/polidea/templates/images/icon-placeholder.png +0 -0
  18. data/lib/fastlane/plugin/polidea/templates/images/polidea-logo.png +0 -0
  19. data/lib/fastlane/plugin/polidea/templates/images/social-behance.png +0 -0
  20. data/lib/fastlane/plugin/polidea/templates/images/social-dribbble.png +0 -0
  21. data/lib/fastlane/plugin/polidea/templates/images/social-facebook.png +0 -0
  22. data/lib/fastlane/plugin/polidea/templates/images/social-github.png +0 -0
  23. data/lib/fastlane/plugin/polidea/templates/images/social-instagram.png +0 -0
  24. data/lib/fastlane/plugin/polidea/templates/images/social-linkedin.png +0 -0
  25. data/lib/fastlane/plugin/polidea/templates/images/social-twitter.png +0 -0
  26. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css +0 -4895
  27. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css.map +0 -7
  28. data/lib/fastlane/plugin/polidea/templates/installation-page/img/bg.png +0 -0
  29. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg.jpg +0 -0
  30. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1024.jpg +0 -0
  31. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1280.jpg +0 -0
  32. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1360.jpg +0 -0
  33. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1440.jpg +0 -0
  34. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1680.jpg +0 -0
  35. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_768.jpg +0 -0
  36. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_1024.jpg +0 -0
  37. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_768.jpg +0 -0
  38. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo.svg +0 -32
  39. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo_square.svg +0 -12
  40. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation.min.js +0 -10
  41. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.abide.js +0 -294
  42. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.accordion.js +0 -65
  43. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.alert.js +0 -43
  44. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.clearing.js +0 -558
  45. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.dropdown.js +0 -313
  46. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.equalizer.js +0 -74
  47. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.interchange.js +0 -344
  48. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.joyride.js +0 -915
  49. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.js +0 -625
  50. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.magellan.js +0 -189
  51. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.offcanvas.js +0 -139
  52. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.orbit.js +0 -472
  53. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.reveal.js +0 -443
  54. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.slider.js +0 -231
  55. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tab.js +0 -167
  56. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tooltip.js +0 -298
  57. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.topbar.js +0 -436
  58. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/aes.js +0 -35
  59. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/enc-base64-min.js +0 -8
  60. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/fastclick.js +0 -9
  61. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.cookie.js +0 -8
  62. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.js +0 -26
  63. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/modernizr.js +0 -8
  64. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/pbkdf2.js +0 -19
  65. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/placeholder.js +0 -2
  66. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/fonts.scss +0 -64
  67. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation.scss +0 -45
  68. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_functions.scss +0 -101
  69. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_settings.scss +0 -1441
  70. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_accordion.scss +0 -156
  71. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_alert-boxes.scss +0 -126
  72. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_block-grid.scss +0 -132
  73. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_breadcrumbs.scss +0 -132
  74. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_button-groups.scss +0 -200
  75. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_buttons.scss +0 -252
  76. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_clearing.scss +0 -247
  77. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown-buttons.scss +0 -129
  78. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown.scss +0 -248
  79. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_flex-video.scss +0 -51
  80. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_forms.scss +0 -570
  81. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_global.scss +0 -447
  82. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_grid.scss +0 -275
  83. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_icon-bar.scss +0 -293
  84. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_inline-lists.scss +0 -57
  85. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_joyride.scss +0 -222
  86. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_keystrokes.scss +0 -61
  87. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_labels.scss +0 -105
  88. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_magellan.scss +0 -34
  89. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_offcanvas.scss +0 -510
  90. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_orbit.scss +0 -368
  91. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pagination.scss +0 -162
  92. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_panels.scss +0 -93
  93. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pricing-tables.scss +0 -150
  94. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_progress-bars.scss +0 -79
  95. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_range-slider.scss +0 -168
  96. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_reveal.scss +0 -220
  97. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_side-nav.scss +0 -116
  98. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_split-buttons.scss +0 -191
  99. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_sub-nav.scss +0 -125
  100. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_switches.scss +0 -226
  101. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tables.scss +0 -135
  102. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tabs.scss +0 -123
  103. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_thumbs.scss +0 -66
  104. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_toolbar.scss +0 -70
  105. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tooltips.scss +0 -142
  106. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_top-bar.scss +0 -676
  107. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_type.scss +0 -523
  108. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_visibility.scss +0 -408
  109. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/installation-page.scss +0 -171
  110. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/normalize.scss +0 -425
  111. data/lib/fastlane/plugin/polidea/templates/installation_template.erb +0 -54
  112. data/lib/fastlane/plugin/polidea/templates/mailgun_template.erb +0 -1257
  113. data/lib/fastlane/plugin/polidea/templates/secure_installation_template.erb +0 -130
@@ -1,625 +0,0 @@
1
- /*
2
- * Foundation Responsive Library
3
- * http://foundation.zurb.com
4
- * Copyright 2014, ZURB
5
- * Free to use under the MIT license.
6
- * http://www.opensource.org/licenses/mit-license.php
7
- */
8
-
9
- (function ($, window, document, undefined) {
10
- 'use strict';
11
-
12
- var header_helpers = function (class_array) {
13
- var i = class_array.length;
14
- var head = $('head');
15
-
16
- while (i--) {
17
- if(head.has('.' + class_array[i]).length === 0) {
18
- head.append('<meta class="' + class_array[i] + '" />');
19
- }
20
- }
21
- };
22
-
23
- header_helpers([
24
- 'foundation-mq-small',
25
- 'foundation-mq-medium',
26
- 'foundation-mq-large',
27
- 'foundation-mq-xlarge',
28
- 'foundation-mq-xxlarge',
29
- 'foundation-data-attribute-namespace']);
30
-
31
- // Enable FastClick if present
32
-
33
- $(function() {
34
- if (typeof FastClick !== 'undefined') {
35
- // Don't attach to body if undefined
36
- if (typeof document.body !== 'undefined') {
37
- FastClick.attach(document.body);
38
- }
39
- }
40
- });
41
-
42
- // private Fast Selector wrapper,
43
- // returns jQuery object. Only use where
44
- // getElementById is not available.
45
- var S = function (selector, context) {
46
- if (typeof selector === 'string') {
47
- if (context) {
48
- var cont;
49
- if (context.jquery) {
50
- cont = context[0];
51
- if (!cont) return context;
52
- } else {
53
- cont = context;
54
- }
55
- return $(cont.querySelectorAll(selector));
56
- }
57
-
58
- return $(document.querySelectorAll(selector));
59
- }
60
-
61
- return $(selector, context);
62
- };
63
-
64
- // Namespace functions.
65
-
66
- var attr_name = function (init) {
67
- var arr = [];
68
- if (!init) arr.push('data');
69
- if (this.namespace.length > 0) arr.push(this.namespace);
70
- arr.push(this.name);
71
-
72
- return arr.join('-');
73
- };
74
-
75
- var add_namespace = function (str) {
76
- var parts = str.split('-'),
77
- i = parts.length,
78
- arr = [];
79
-
80
- while (i--) {
81
- if (i !== 0) {
82
- arr.push(parts[i]);
83
- } else {
84
- if (this.namespace.length > 0) {
85
- arr.push(this.namespace, parts[i]);
86
- } else {
87
- arr.push(parts[i]);
88
- }
89
- }
90
- }
91
-
92
- return arr.reverse().join('-');
93
- };
94
-
95
- // Event binding and data-options updating.
96
-
97
- var bindings = function (method, options) {
98
- var self = this,
99
- should_bind_events = !S(this).data(this.attr_name(true));
100
-
101
-
102
- if (S(this.scope).is('[' + this.attr_name() +']')) {
103
- S(this.scope).data(this.attr_name(true) + '-init', $.extend({}, this.settings, (options || method), this.data_options(S(this.scope))));
104
-
105
- if (should_bind_events) {
106
- this.events(this.scope);
107
- }
108
-
109
- } else {
110
- S('[' + this.attr_name() +']', this.scope).each(function () {
111
- var should_bind_events = !S(this).data(self.attr_name(true) + '-init');
112
- S(this).data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options(S(this))));
113
-
114
- if (should_bind_events) {
115
- self.events(this);
116
- }
117
- });
118
- }
119
- // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.
120
- if (typeof method === 'string') {
121
- return this[method].call(this, options);
122
- }
123
-
124
- };
125
-
126
- var single_image_loaded = function (image, callback) {
127
- function loaded () {
128
- callback(image[0]);
129
- }
130
-
131
- function bindLoad () {
132
- this.one('load', loaded);
133
-
134
- if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
135
- var src = this.attr( 'src' ),
136
- param = src.match( /\?/ ) ? '&' : '?';
137
-
138
- param += 'random=' + (new Date()).getTime();
139
- this.attr('src', src + param);
140
- }
141
- }
142
-
143
- if (!image.attr('src')) {
144
- loaded();
145
- return;
146
- }
147
-
148
- if (image[0].complete || image[0].readyState === 4) {
149
- loaded();
150
- } else {
151
- bindLoad.call(image);
152
- }
153
- };
154
-
155
- /*
156
- https://github.com/paulirish/matchMedia.js
157
- */
158
-
159
- window.matchMedia = window.matchMedia || (function( doc ) {
160
-
161
- "use strict";
162
-
163
- var bool,
164
- docElem = doc.documentElement,
165
- refNode = docElem.firstElementChild || docElem.firstChild,
166
- // fakeBody required for <FF4 when executed in <head>
167
- fakeBody = doc.createElement( "body" ),
168
- div = doc.createElement( "div" );
169
-
170
- div.id = "mq-test-1";
171
- div.style.cssText = "position:absolute;top:-100em";
172
- fakeBody.style.background = "none";
173
- fakeBody.appendChild(div);
174
-
175
- return function (q) {
176
-
177
- div.innerHTML = "&shy;<style media=\"" + q + "\"> #mq-test-1 { width: 42px; }</style>";
178
-
179
- docElem.insertBefore( fakeBody, refNode );
180
- bool = div.offsetWidth === 42;
181
- docElem.removeChild( fakeBody );
182
-
183
- return {
184
- matches: bool,
185
- media: q
186
- };
187
-
188
- };
189
-
190
- }( document ));
191
-
192
- /*
193
- * jquery.requestAnimationFrame
194
- * https://github.com/gnarf37/jquery-requestAnimationFrame
195
- * Requires jQuery 1.8+
196
- *
197
- * Copyright (c) 2012 Corey Frang
198
- * Licensed under the MIT license.
199
- */
200
-
201
- (function($) {
202
-
203
- // requestAnimationFrame polyfill adapted from Erik Möller
204
- // fixes from Paul Irish and Tino Zijdel
205
- // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
206
- // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
207
-
208
- var animating,
209
- lastTime = 0,
210
- vendors = ['webkit', 'moz'],
211
- requestAnimationFrame = window.requestAnimationFrame,
212
- cancelAnimationFrame = window.cancelAnimationFrame,
213
- jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;
214
-
215
- for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {
216
- requestAnimationFrame = window[ vendors[lastTime] + "RequestAnimationFrame" ];
217
- cancelAnimationFrame = cancelAnimationFrame ||
218
- window[ vendors[lastTime] + "CancelAnimationFrame" ] ||
219
- window[ vendors[lastTime] + "CancelRequestAnimationFrame" ];
220
- }
221
-
222
- function raf() {
223
- if (animating) {
224
- requestAnimationFrame(raf);
225
-
226
- if (jqueryFxAvailable) {
227
- jQuery.fx.tick();
228
- }
229
- }
230
- }
231
-
232
- if (requestAnimationFrame) {
233
- // use rAF
234
- window.requestAnimationFrame = requestAnimationFrame;
235
- window.cancelAnimationFrame = cancelAnimationFrame;
236
-
237
- if (jqueryFxAvailable) {
238
- jQuery.fx.timer = function (timer) {
239
- if (timer() && jQuery.timers.push(timer) && !animating) {
240
- animating = true;
241
- raf();
242
- }
243
- };
244
-
245
- jQuery.fx.stop = function () {
246
- animating = false;
247
- };
248
- }
249
- } else {
250
- // polyfill
251
- window.requestAnimationFrame = function (callback) {
252
- var currTime = new Date().getTime(),
253
- timeToCall = Math.max(0, 16 - (currTime - lastTime)),
254
- id = window.setTimeout(function () {
255
- callback(currTime + timeToCall);
256
- }, timeToCall);
257
- lastTime = currTime + timeToCall;
258
- return id;
259
- };
260
-
261
- window.cancelAnimationFrame = function (id) {
262
- clearTimeout(id);
263
- };
264
-
265
- }
266
-
267
- }( jQuery ));
268
-
269
-
270
- function removeQuotes (string) {
271
- if (typeof string === 'string' || string instanceof String) {
272
- string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, '');
273
- }
274
-
275
- return string;
276
- }
277
-
278
- window.Foundation = {
279
- name : 'Foundation',
280
-
281
- version : '5.3.3',
282
-
283
- media_queries : {
284
- small : S('.foundation-mq-small').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
285
- medium : S('.foundation-mq-medium').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
286
- large : S('.foundation-mq-large').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
287
- xlarge: S('.foundation-mq-xlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''),
288
- xxlarge: S('.foundation-mq-xxlarge').css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, '')
289
- },
290
-
291
- stylesheet : $('<style></style>').appendTo('head')[0].sheet,
292
-
293
- global: {
294
- namespace: undefined
295
- },
296
-
297
- init : function (scope, libraries, method, options, response) {
298
- var args = [scope, method, options, response],
299
- responses = [];
300
-
301
- // check RTL
302
- this.rtl = /rtl/i.test(S('html').attr('dir'));
303
-
304
- // set foundation global scope
305
- this.scope = scope || this.scope;
306
-
307
- this.set_namespace();
308
-
309
- if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {
310
- if (this.libs.hasOwnProperty(libraries)) {
311
- responses.push(this.init_lib(libraries, args));
312
- }
313
- } else {
314
- for (var lib in this.libs) {
315
- responses.push(this.init_lib(lib, libraries));
316
- }
317
- }
318
-
319
- S(window).load(function(){
320
- S(window)
321
- .trigger('resize.fndtn.clearing')
322
- .trigger('resize.fndtn.dropdown')
323
- .trigger('resize.fndtn.equalizer')
324
- .trigger('resize.fndtn.interchange')
325
- .trigger('resize.fndtn.joyride')
326
- .trigger('resize.fndtn.magellan')
327
- .trigger('resize.fndtn.topbar')
328
- .trigger('resize.fndtn.slider');
329
- });
330
-
331
- return scope;
332
- },
333
-
334
- init_lib : function (lib, args) {
335
- if (this.libs.hasOwnProperty(lib)) {
336
- this.patch(this.libs[lib]);
337
-
338
- if (args && args.hasOwnProperty(lib)) {
339
- if (typeof this.libs[lib].settings !== 'undefined') {
340
- $.extend(true, this.libs[lib].settings, args[lib]);
341
- }
342
- else if (typeof this.libs[lib].defaults !== 'undefined') {
343
- $.extend(true, this.libs[lib].defaults, args[lib]);
344
- }
345
- return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);
346
- }
347
-
348
- args = args instanceof Array ? args : new Array(args); // PATCH: added this line
349
- return this.libs[lib].init.apply(this.libs[lib], args);
350
- }
351
-
352
- return function () {};
353
- },
354
-
355
- patch : function (lib) {
356
- lib.scope = this.scope;
357
- lib.namespace = this.global.namespace;
358
- lib.rtl = this.rtl;
359
- lib['data_options'] = this.utils.data_options;
360
- lib['attr_name'] = attr_name;
361
- lib['add_namespace'] = add_namespace;
362
- lib['bindings'] = bindings;
363
- lib['S'] = this.utils.S;
364
- },
365
-
366
- inherit : function (scope, methods) {
367
- var methods_arr = methods.split(' '),
368
- i = methods_arr.length;
369
-
370
- while (i--) {
371
- if (this.utils.hasOwnProperty(methods_arr[i])) {
372
- scope[methods_arr[i]] = this.utils[methods_arr[i]];
373
- }
374
- }
375
- },
376
-
377
- set_namespace: function () {
378
-
379
- // Description:
380
- // Don't bother reading the namespace out of the meta tag
381
- // if the namespace has been set globally in javascript
382
- //
383
- // Example:
384
- // Foundation.global.namespace = 'my-namespace';
385
- // or make it an empty string:
386
- // Foundation.global.namespace = '';
387
- //
388
- //
389
-
390
- // If the namespace has not been set (is undefined), try to read it out of the meta element.
391
- // Otherwise use the globally defined namespace, even if it's empty ('')
392
- var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;
393
-
394
- // Finally, if the namsepace is either undefined or false, set it to an empty string.
395
- // Otherwise use the namespace value.
396
- this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;
397
- },
398
-
399
- libs : {},
400
-
401
- // methods that can be inherited in libraries
402
- utils : {
403
-
404
- // Description:
405
- // Fast Selector wrapper returns jQuery object. Only use where getElementById
406
- // is not available.
407
- //
408
- // Arguments:
409
- // Selector (String): CSS selector describing the element(s) to be
410
- // returned as a jQuery object.
411
- //
412
- // Scope (String): CSS selector describing the area to be searched. Default
413
- // is document.
414
- //
415
- // Returns:
416
- // Element (jQuery Object): jQuery object containing elements matching the
417
- // selector within the scope.
418
- S : S,
419
-
420
- // Description:
421
- // Executes a function a max of once every n milliseconds
422
- //
423
- // Arguments:
424
- // Func (Function): Function to be throttled.
425
- //
426
- // Delay (Integer): Function execution threshold in milliseconds.
427
- //
428
- // Returns:
429
- // Lazy_function (Function): Function with throttling applied.
430
- throttle : function (func, delay) {
431
- var timer = null;
432
-
433
- return function () {
434
- var context = this, args = arguments;
435
-
436
- if (timer == null) {
437
- timer = setTimeout(function () {
438
- func.apply(context, args);
439
- timer = null;
440
- }, delay);
441
- }
442
- };
443
- },
444
-
445
- // Description:
446
- // Executes a function when it stops being invoked for n seconds
447
- // Modified version of _.debounce() http://underscorejs.org
448
- //
449
- // Arguments:
450
- // Func (Function): Function to be debounced.
451
- //
452
- // Delay (Integer): Function execution threshold in milliseconds.
453
- //
454
- // Immediate (Bool): Whether the function should be called at the beginning
455
- // of the delay instead of the end. Default is false.
456
- //
457
- // Returns:
458
- // Lazy_function (Function): Function with debouncing applied.
459
- debounce : function (func, delay, immediate) {
460
- var timeout, result;
461
- return function () {
462
- var context = this, args = arguments;
463
- var later = function () {
464
- timeout = null;
465
- if (!immediate) result = func.apply(context, args);
466
- };
467
- var callNow = immediate && !timeout;
468
- clearTimeout(timeout);
469
- timeout = setTimeout(later, delay);
470
- if (callNow) result = func.apply(context, args);
471
- return result;
472
- };
473
- },
474
-
475
- // Description:
476
- // Parses data-options attribute
477
- //
478
- // Arguments:
479
- // El (jQuery Object): Element to be parsed.
480
- //
481
- // Returns:
482
- // Options (Javascript Object): Contents of the element's data-options
483
- // attribute.
484
- data_options : function (el, data_attr_name) {
485
- data_attr_name = data_attr_name || 'options';
486
- var opts = {}, ii, p, opts_arr,
487
- data_options = function (el) {
488
- var namespace = Foundation.global.namespace;
489
-
490
- if (namespace.length > 0) {
491
- return el.data(namespace + '-' + data_attr_name);
492
- }
493
-
494
- return el.data(data_attr_name);
495
- };
496
-
497
- var cached_options = data_options(el);
498
-
499
- if (typeof cached_options === 'object') {
500
- return cached_options;
501
- }
502
-
503
- opts_arr = (cached_options || ':').split(';');
504
- ii = opts_arr.length;
505
-
506
- function isNumber (o) {
507
- return ! isNaN (o-0) && o !== null && o !== "" && o !== false && o !== true;
508
- }
509
-
510
- function trim (str) {
511
- if (typeof str === 'string') return $.trim(str);
512
- return str;
513
- }
514
-
515
- while (ii--) {
516
- p = opts_arr[ii].split(':');
517
- p = [p[0], p.slice(1).join(':')];
518
-
519
- if (/true/i.test(p[1])) p[1] = true;
520
- if (/false/i.test(p[1])) p[1] = false;
521
- if (isNumber(p[1])) {
522
- if (p[1].indexOf('.') === -1) {
523
- p[1] = parseInt(p[1], 10);
524
- } else {
525
- p[1] = parseFloat(p[1]);
526
- }
527
- }
528
-
529
- if (p.length === 2 && p[0].length > 0) {
530
- opts[trim(p[0])] = trim(p[1]);
531
- }
532
- }
533
-
534
- return opts;
535
- },
536
-
537
- // Description:
538
- // Adds JS-recognizable media queries
539
- //
540
- // Arguments:
541
- // Media (String): Key string for the media query to be stored as in
542
- // Foundation.media_queries
543
- //
544
- // Class (String): Class name for the generated <meta> tag
545
- register_media : function (media, media_class) {
546
- if(Foundation.media_queries[media] === undefined) {
547
- $('head').append('<meta class="' + media_class + '"/>');
548
- Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));
549
- }
550
- },
551
-
552
- // Description:
553
- // Add custom CSS within a JS-defined media query
554
- //
555
- // Arguments:
556
- // Rule (String): CSS rule to be appended to the document.
557
- //
558
- // Media (String): Optional media query string for the CSS rule to be
559
- // nested under.
560
- add_custom_rule : function (rule, media) {
561
- if (media === undefined && Foundation.stylesheet) {
562
- Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);
563
- } else {
564
- var query = Foundation.media_queries[media];
565
-
566
- if (query !== undefined) {
567
- Foundation.stylesheet.insertRule('@media ' +
568
- Foundation.media_queries[media] + '{ ' + rule + ' }');
569
- }
570
- }
571
- },
572
-
573
- // Description:
574
- // Performs a callback function when an image is fully loaded
575
- //
576
- // Arguments:
577
- // Image (jQuery Object): Image(s) to check if loaded.
578
- //
579
- // Callback (Function): Function to execute when image is fully loaded.
580
- image_loaded : function (images, callback) {
581
- var self = this,
582
- unloaded = images.length;
583
-
584
- if (unloaded === 0) {
585
- callback(images);
586
- }
587
-
588
- images.each(function () {
589
- single_image_loaded(self.S(this), function () {
590
- unloaded -= 1;
591
- if (unloaded === 0) {
592
- callback(images);
593
- }
594
- });
595
- });
596
- },
597
-
598
- // Description:
599
- // Returns a random, alphanumeric string
600
- //
601
- // Arguments:
602
- // Length (Integer): Length of string to be generated. Defaults to random
603
- // integer.
604
- //
605
- // Returns:
606
- // Rand (String): Pseudo-random, alphanumeric string.
607
- random_str : function () {
608
- if (!this.fidx) this.fidx = 0;
609
- this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');
610
-
611
- return this.prefix + (this.fidx++).toString(36);
612
- }
613
- }
614
- };
615
-
616
- $.fn.foundation = function () {
617
- var args = Array.prototype.slice.call(arguments, 0);
618
-
619
- return this.each(function () {
620
- Foundation.init.apply(Foundation, [this].concat(args));
621
- return this;
622
- });
623
- };
624
-
625
- }(jQuery, window, window.document));