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

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.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -13
  3. data/lib/fastlane/plugin/polidea.rb +11 -0
  4. data/lib/fastlane/plugin/polidea/actions/add_prefix_schema.rb +3 -0
  5. data/lib/fastlane/plugin/polidea/actions/extract_app_info.rb +4 -0
  6. data/lib/fastlane/plugin/polidea/actions/fota_mail.rb +4 -0
  7. data/lib/fastlane/plugin/polidea/actions/fota_s3.rb +39 -28
  8. data/lib/fastlane/plugin/polidea/actions/import_provisioning.rb +5 -0
  9. data/lib/fastlane/plugin/polidea/actions/release_notes.rb +6 -1
  10. data/lib/fastlane/plugin/polidea/actions/release_notes_from_commits.rb +54 -0
  11. data/lib/fastlane/plugin/polidea/actions/shuttle.rb +6 -38
  12. data/lib/fastlane/plugin/polidea/helper/analytics.rb +43 -0
  13. data/lib/fastlane/plugin/polidea/helper/page_generator.rb +17 -56
  14. data/lib/fastlane/plugin/polidea/helper/qr_generator.rb +1 -1
  15. data/lib/fastlane/plugin/polidea/helper/shuttle.rb +39 -0
  16. data/lib/fastlane/plugin/polidea/version.rb +1 -1
  17. data/templates/install.erb +238 -0
  18. data/{lib/fastlane/plugin/polidea/templates/download.erb → templates/mail.erb} +19 -24
  19. metadata +21 -105
  20. data/lib/fastlane/plugin/polidea/actions/extract_app_icon.rb +0 -168
  21. data/lib/fastlane/plugin/polidea/actions/extract_app_name.rb +0 -97
  22. data/lib/fastlane/plugin/polidea/actions/extract_version.rb +0 -102
  23. data/lib/fastlane/plugin/polidea/actions/get_binary_size.rb +0 -53
  24. data/lib/fastlane/plugin/polidea/templates/images/cover-shuttle.jpg +0 -0
  25. data/lib/fastlane/plugin/polidea/templates/images/icon-placeholder.png +0 -0
  26. data/lib/fastlane/plugin/polidea/templates/images/polidea-logo.png +0 -0
  27. data/lib/fastlane/plugin/polidea/templates/images/social-behance.png +0 -0
  28. data/lib/fastlane/plugin/polidea/templates/images/social-dribbble.png +0 -0
  29. data/lib/fastlane/plugin/polidea/templates/images/social-facebook.png +0 -0
  30. data/lib/fastlane/plugin/polidea/templates/images/social-github.png +0 -0
  31. data/lib/fastlane/plugin/polidea/templates/images/social-instagram.png +0 -0
  32. data/lib/fastlane/plugin/polidea/templates/images/social-linkedin.png +0 -0
  33. data/lib/fastlane/plugin/polidea/templates/images/social-twitter.png +0 -0
  34. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css +0 -4895
  35. data/lib/fastlane/plugin/polidea/templates/installation-page/css/installation-page.css.map +0 -7
  36. data/lib/fastlane/plugin/polidea/templates/installation-page/img/bg.png +0 -0
  37. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg.jpg +0 -0
  38. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1024.jpg +0 -0
  39. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1280.jpg +0 -0
  40. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1360.jpg +0 -0
  41. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1440.jpg +0 -0
  42. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_1680.jpg +0 -0
  43. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_768.jpg +0 -0
  44. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_1024.jpg +0 -0
  45. data/lib/fastlane/plugin/polidea/templates/installation-page/img/jenkins_bg_ipad_768.jpg +0 -0
  46. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo.svg +0 -32
  47. data/lib/fastlane/plugin/polidea/templates/installation-page/img/logo_square.svg +0 -12
  48. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation.min.js +0 -10
  49. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.abide.js +0 -294
  50. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.accordion.js +0 -65
  51. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.alert.js +0 -43
  52. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.clearing.js +0 -558
  53. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.dropdown.js +0 -313
  54. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.equalizer.js +0 -74
  55. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.interchange.js +0 -344
  56. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.joyride.js +0 -915
  57. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.js +0 -625
  58. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.magellan.js +0 -189
  59. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.offcanvas.js +0 -139
  60. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.orbit.js +0 -472
  61. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.reveal.js +0 -443
  62. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.slider.js +0 -231
  63. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tab.js +0 -167
  64. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.tooltip.js +0 -298
  65. data/lib/fastlane/plugin/polidea/templates/installation-page/js/foundation/foundation.topbar.js +0 -436
  66. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/aes.js +0 -35
  67. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/enc-base64-min.js +0 -8
  68. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/fastclick.js +0 -9
  69. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.cookie.js +0 -8
  70. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/jquery.js +0 -26
  71. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/modernizr.js +0 -8
  72. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/pbkdf2.js +0 -19
  73. data/lib/fastlane/plugin/polidea/templates/installation-page/js/vendor/placeholder.js +0 -2
  74. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/fonts.scss +0 -64
  75. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation.scss +0 -45
  76. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_functions.scss +0 -101
  77. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/_settings.scss +0 -1441
  78. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_accordion.scss +0 -156
  79. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_alert-boxes.scss +0 -126
  80. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_block-grid.scss +0 -132
  81. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_breadcrumbs.scss +0 -132
  82. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_button-groups.scss +0 -200
  83. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_buttons.scss +0 -252
  84. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_clearing.scss +0 -247
  85. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown-buttons.scss +0 -129
  86. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_dropdown.scss +0 -248
  87. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_flex-video.scss +0 -51
  88. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_forms.scss +0 -570
  89. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_global.scss +0 -447
  90. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_grid.scss +0 -275
  91. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_icon-bar.scss +0 -293
  92. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_inline-lists.scss +0 -57
  93. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_joyride.scss +0 -222
  94. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_keystrokes.scss +0 -61
  95. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_labels.scss +0 -105
  96. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_magellan.scss +0 -34
  97. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_offcanvas.scss +0 -510
  98. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_orbit.scss +0 -368
  99. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pagination.scss +0 -162
  100. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_panels.scss +0 -93
  101. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_pricing-tables.scss +0 -150
  102. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_progress-bars.scss +0 -79
  103. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_range-slider.scss +0 -168
  104. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_reveal.scss +0 -220
  105. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_side-nav.scss +0 -116
  106. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_split-buttons.scss +0 -191
  107. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_sub-nav.scss +0 -125
  108. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_switches.scss +0 -226
  109. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tables.scss +0 -135
  110. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tabs.scss +0 -123
  111. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_thumbs.scss +0 -66
  112. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_toolbar.scss +0 -70
  113. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_tooltips.scss +0 -142
  114. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_top-bar.scss +0 -676
  115. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_type.scss +0 -523
  116. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/foundation/components/_visibility.scss +0 -408
  117. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/installation-page.scss +0 -171
  118. data/lib/fastlane/plugin/polidea/templates/installation-page/sass/normalize.scss +0 -425
  119. data/lib/fastlane/plugin/polidea/templates/installation_template.erb +0 -54
  120. data/lib/fastlane/plugin/polidea/templates/mailgun_template.erb +0 -1257
  121. 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));