fancybox2-rails 0.2.1 → 0.2.4

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/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  fancybox2-rails
2
2
  ==============
3
+ [![Build Status](https://travis-ci.org/kyparn/fancybox2-rails.png)](https://travis-ci.org/kyparn/fancybox2-rails)
4
+
3
5
 
4
6
  Use [fancybox](http://www.fancyapps.com/fancybox/) with rails 3.1 asset pipeline.
5
7
 
@@ -12,7 +14,7 @@ First add the following lines to your applications `Gemfile`:
12
14
 
13
15
  ``` ruby
14
16
  gem 'jquery-rails'
15
- gem 'fancybox2-rails'
17
+ gem 'fancybox2-rails', '~> 0.2.1'
16
18
  ```
17
19
 
18
20
  Then run `bundle install` to update your application's bundle.
@@ -50,12 +52,7 @@ $(document).ready(function() {
50
52
  ```
51
53
 
52
54
  ## More information
53
-
54
- * [Contributors](https://github.com/hecticjeff/fancybox-rails/contributors)
55
- * [DHH's RailsConf 2011 talk on the rails 3.1 asset pipeline](http://www.youtube.com/watch?v=cGdCI2HhfAU)
56
-
57
- Copyright (c) Chris Mytton
55
+ This gem is based on the [original gem](https://github.com/hecticjeff/fancybox-rails) for Fancybox 1.x by Chris Mytton.
58
56
 
59
57
  ## License
60
-
61
- [Fancybox 2 license](http://www.fancyapps.com/fancybox/#license)
58
+ Please be aware that you'll need to purchase a [license](http://fancyapps.com/fancybox/#license) if you intend to use fancybox2 for commercial purposes.
@@ -1,6 +1,6 @@
1
1
  module Fancybox2
2
2
  module Rails
3
- VERSION = "0.2.1"
4
- FANCYBOX_VERSION = "2.1"
3
+ VERSION = "0.2.4"
4
+ FANCYBOX_VERSION = "2.1.4"
5
5
  end
6
- end
6
+ end
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * Buttons helper for fancyBox
3
- * version: 1.0.3
3
+ * version: 1.0.5 (Mon, 15 Oct 2012)
4
4
  * @requires fancyBox v2.0 or later
5
5
  *
6
6
  * Usage:
@@ -12,10 +12,6 @@
12
12
  * }
13
13
  * });
14
14
  *
15
- * Options:
16
- * tpl - HTML template
17
- * position - 'top' or 'bottom'
18
- *
19
15
  */
20
16
  (function ($) {
21
17
  //Shortcut for fancyBox object
@@ -23,7 +19,12 @@
23
19
 
24
20
  //Add helper object
25
21
  F.helpers.buttons = {
26
- tpl : '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:jQuery.fancybox.close();"></a></li></ul></div>',
22
+ defaults : {
23
+ skipSingle : false, // disables if gallery contains single image
24
+ position : 'top', // 'top' or 'bottom'
25
+ tpl : '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:jQuery.fancybox.close();"></a></li></ul></div>'
26
+ },
27
+
27
28
  list : null,
28
29
  buttons: null,
29
30
 
@@ -57,7 +58,7 @@
57
58
  var buttons = this.buttons;
58
59
 
59
60
  if (!buttons) {
60
- this.list = $(opts.tpl || this.tpl).addClass(opts.position || 'top').appendTo('body');
61
+ this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
61
62
 
62
63
  buttons = {
63
64
  prev : this.list.find('.btnPrev').click( F.prev ),
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * Media helper for fancyBox
3
- * version: 1.0.3 (Mon, 13 Aug 2012)
3
+ * version: 1.0.5 (Tue, 23 Oct 2012)
4
4
  * @requires fancyBox v2.0 or later
5
5
  *
6
6
  * Usage:
@@ -37,6 +37,7 @@
37
37
  *
38
38
  * Youtube
39
39
  * http://www.youtube.com/watch?v=opj24KnzrWo
40
+ * http://www.youtube.com/embed/opj24KnzrWo
40
41
  * http://youtu.be/opj24KnzrWo
41
42
  * Vimeo
42
43
  * http://vimeo.com/40648169
@@ -85,9 +86,9 @@
85
86
 
86
87
  //Add helper object
87
88
  F.helpers.media = {
88
- types : {
89
+ defaults : {
89
90
  youtube : {
90
- matcher : /(youtube\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed)?([\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
91
+ matcher : /(youtube\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
91
92
  params : {
92
93
  autoplay : 1,
93
94
  autohide : 1,
@@ -108,7 +109,6 @@
108
109
  show_title : 1,
109
110
  show_byline : 1,
110
111
  show_portrait : 0,
111
- color : '',
112
112
  fullscreen : 1
113
113
  },
114
114
  type : 'iframe',
@@ -170,8 +170,8 @@
170
170
  rez,
171
171
  params;
172
172
 
173
- for (what in this.types) {
174
- item = this.types[ what ];
173
+ for (what in opts) {
174
+ item = opts[ what ];
175
175
  rez = url.match( item.matcher );
176
176
 
177
177
  if (rez) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * Thumbnail helper for fancyBox
3
- * version: 1.0.6
3
+ * version: 1.0.7 (Mon, 01 Oct 2012)
4
4
  * @requires fancyBox v2.0 or later
5
5
  *
6
6
  * Usage:
@@ -13,12 +13,6 @@
13
13
  * }
14
14
  * });
15
15
  *
16
- * Options:
17
- * width - thumbnail width
18
- * height - thumbnail height
19
- * source - function to obtain the URL of the thumbnail image
20
- * position - 'top' or 'bottom'
21
- *
22
16
  */
23
17
  (function ($) {
24
18
  //Shortcut for fancyBox object
@@ -26,31 +20,35 @@
26
20
 
27
21
  //Add helper object
28
22
  F.helpers.thumbs = {
29
- wrap : null,
30
- list : null,
31
- width : 0,
32
-
33
- //Default function to obtain the URL of the thumbnail image
34
- source: function ( item ) {
35
- var href;
23
+ defaults : {
24
+ width : 50, // thumbnail width
25
+ height : 50, // thumbnail height
26
+ position : 'bottom', // 'top' or 'bottom'
27
+ source : function ( item ) { // function to obtain the URL of the thumbnail image
28
+ var href;
29
+
30
+ if (item.element) {
31
+ href = $(item.element).find('img').attr('src');
32
+ }
36
33
 
37
- if (item.element) {
38
- href = $(item.element).find('img').attr('src');
39
- }
34
+ if (!href && item.type === 'image' && item.href) {
35
+ href = item.href;
36
+ }
40
37
 
41
- if (!href && item.type === 'image' && item.href) {
42
- href = item.href;
38
+ return href;
43
39
  }
44
-
45
- return href;
46
40
  },
47
41
 
42
+ wrap : null,
43
+ list : null,
44
+ width : 0,
45
+
48
46
  init: function (opts, obj) {
49
47
  var that = this,
50
48
  list,
51
- thumbWidth = opts.width || 50,
52
- thumbHeight = opts.height || 50,
53
- thumbSource = opts.source || this.source;
49
+ thumbWidth = opts.width,
50
+ thumbHeight = opts.height,
51
+ thumbSource = opts.source;
54
52
 
55
53
  //Build list structure
56
54
  list = '';
@@ -59,7 +57,7 @@
59
57
  list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>';
60
58
  }
61
59
 
62
- this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position || 'bottom').appendTo('body');
60
+ this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position).appendTo('body');
63
61
  this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);
64
62
 
65
63
  //Load each thumbnail
@@ -125,7 +123,7 @@
125
123
  }
126
124
 
127
125
  //Increase bottom margin to give space for thumbs
128
- obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height || 50) + 15);
126
+ obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15);
129
127
  },
130
128
 
131
129
  afterShow: function (opts, obj) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * fancyBox - jQuery Plugin
3
- * version: 2.1.0 (Mon, 20 Aug 2012)
3
+ * version: 2.1.4 (Thu, 17 Jan 2013)
4
4
  * @requires jQuery v1.6 or later
5
5
  *
6
6
  * Examples at http://fancyapps.com/fancybox/
@@ -18,6 +18,7 @@
18
18
  F = $.fancybox = function () {
19
19
  F.open.apply( this, arguments );
20
20
  },
21
+ IE = navigator.userAgent.match(/msie/i),
21
22
  didUpdate = null,
22
23
  isTouch = document.createTouch !== undefined,
23
24
 
@@ -33,14 +34,14 @@
33
34
  isScrollable = function(el) {
34
35
  return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));
35
36
  },
36
- getScalar = function(value, dim) {
37
- var value_ = parseInt(value, 10);
37
+ getScalar = function(orig, dim) {
38
+ var value = parseInt(orig, 10) || 0;
38
39
 
39
- if (dim && isPercentage(value)) {
40
- value_ = F.getViewport()[ dim ] / 100 * value_;
40
+ if (dim && isPercentage(orig)) {
41
+ value = F.getViewport()[ dim ] / 100 * value;
41
42
  }
42
43
 
43
- return Math.ceil(value_);
44
+ return Math.ceil(value);
44
45
  },
45
46
  getValue = function(value, dim) {
46
47
  return getScalar(value, dim) + 'px';
@@ -48,7 +49,7 @@
48
49
 
49
50
  $.extend(F, {
50
51
  // The current version of fancyBox
51
- version: '2.1.0',
52
+ version: '2.1.4',
52
53
 
53
54
  defaults: {
54
55
  padding : 15,
@@ -65,7 +66,7 @@
65
66
  autoHeight : false,
66
67
  autoWidth : false,
67
68
 
68
- autoResize : !isTouch,
69
+ autoResize : true,
69
70
  autoCenter : !isTouch,
70
71
  fitToView : true,
71
72
  aspectRatio : false,
@@ -136,7 +137,7 @@
136
137
  tpl: {
137
138
  wrap : '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
138
139
  image : '<img class="fancybox-image" src="{href}" alt="" />',
139
- iframe : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0"' + ($.browser.msie ? ' allowtransparency="true"' : '') + '></iframe>',
140
+ iframe : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '></iframe>',
140
141
  error : '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
141
142
  closeBtn : '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
142
143
  next : '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
@@ -170,17 +171,10 @@
170
171
  prevEasing : 'swing',
171
172
  prevMethod : 'changeOut',
172
173
 
173
- // Enabled helpers
174
+ // Enable default helpers
174
175
  helpers : {
175
- overlay : {
176
- closeClick : true,
177
- speedOut : 200,
178
- showEarly : true,
179
- css : {}
180
- },
181
- title : {
182
- type : 'float' // 'float', 'inside', 'outside' or 'over'
183
- }
176
+ overlay : true,
177
+ title : true
184
178
  },
185
179
 
186
180
  // Callbacks
@@ -264,8 +258,8 @@
264
258
 
265
259
  if (isQuery(element)) {
266
260
  obj = {
267
- href : element.attr('href'),
268
- title : element.attr('title'),
261
+ href : element.data('fancybox-href') || element.attr('href'),
262
+ title : element.data('fancybox-title') || element.attr('title'),
269
263
  isDom : true,
270
264
  element : element
271
265
  };
@@ -383,20 +377,20 @@
383
377
  F.imgPreload.onload = F.imgPreload.onerror = null;
384
378
  }
385
379
 
386
- // If the first item has been canceled, then clear everything
387
380
  if (coming.wrap) {
388
- coming.wrap.stop(true).trigger('onReset').remove();
381
+ coming.wrap.stop(true, true).trigger('onReset').remove();
389
382
  }
390
383
 
384
+ F.coming = null;
385
+
386
+ // If the first item has been canceled, then clear everything
391
387
  if (!F.current) {
392
- F.trigger('afterClose');
388
+ F._afterZoomOut( coming );
393
389
  }
394
-
395
- F.coming = null;
396
390
  },
397
391
 
398
392
  // Start closing animation if is open; remove immediately if opening/closing
399
- close: function (immediately) {
393
+ close: function (event) {
400
394
  F.cancel();
401
395
 
402
396
  if (false === F.trigger('beforeClose')) {
@@ -405,7 +399,11 @@
405
399
 
406
400
  F.unbindEvents();
407
401
 
408
- if (!F.isOpen || immediately === true) {
402
+ if (!F.isActive) {
403
+ return;
404
+ }
405
+
406
+ if (!F.isOpen || event === true) {
409
407
  $('.fancybox-wrap').stop(true).trigger('onReset').remove();
410
408
 
411
409
  F._afterZoomOut();
@@ -418,10 +416,6 @@
418
416
 
419
417
  F.wrap.stop(true, true).removeClass('fancybox-opened');
420
418
 
421
- if (F.wrap.css('position') === 'fixed') {
422
- F.wrap.css(F._getPosition( true ));
423
- }
424
-
425
419
  F.transitions[ F.current.closeMethod ]();
426
420
  }
427
421
  },
@@ -444,7 +438,7 @@
444
438
  stop = function () {
445
439
  clear();
446
440
 
447
- $('body').unbind('.player');
441
+ D.unbind('.player');
448
442
 
449
443
  F.player.isActive = false;
450
444
 
@@ -454,9 +448,9 @@
454
448
  if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {
455
449
  F.player.isActive = true;
456
450
 
457
- $('body').bind({
458
- 'afterShow.player onUpdate.player' : set,
451
+ D.bind({
459
452
  'onCancel.player beforeClose.player' : stop,
453
+ 'onUpdate.player' : set,
460
454
  'beforeLoad.player' : clear
461
455
  });
462
456
 
@@ -529,18 +523,22 @@
529
523
 
530
524
  // Center inside viewport and toggle position type to fixed or absolute if needed
531
525
  reposition: function (e, onlyAbsolute) {
532
- var pos;
526
+ var current = F.current,
527
+ wrap = current ? current.wrap : null,
528
+ pos;
533
529
 
534
- if (F.isOpen) {
530
+ if (wrap) {
535
531
  pos = F._getPosition(onlyAbsolute);
536
532
 
537
533
  if (e && e.type === 'scroll') {
538
534
  delete pos.position;
539
535
 
540
- F.wrap.stop(true, true).animate(pos, 200);
536
+ wrap.stop(true, true).animate(pos, 200);
541
537
 
542
538
  } else {
543
- F.wrap.css(pos);
539
+ wrap.css(pos);
540
+
541
+ current.pos = $.extend({}, current.dim, pos);
544
542
  }
545
543
  }
546
544
  },
@@ -559,23 +557,16 @@
559
557
  return;
560
558
  }
561
559
 
562
- // Help browser to restore document dimensions
563
- if (anyway || isTouch) {
564
- F.wrap.removeAttr('style').addClass('fancybox-tmp');
565
-
566
- F.trigger('onUpdate');
567
- }
568
-
569
560
  didUpdate = setTimeout(function() {
570
561
  var current = F.current;
571
562
 
572
- if (!current) {
563
+ if (!current || F.isClosing) {
573
564
  return;
574
565
  }
575
566
 
576
567
  F.wrap.removeClass('fancybox-tmp');
577
568
 
578
- if (type !== 'scroll') {
569
+ if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {
579
570
  F._setDimension();
580
571
  }
581
572
 
@@ -587,7 +578,7 @@
587
578
 
588
579
  didUpdate = null;
589
580
 
590
- }, (isTouch ? 500 : (anyway ? 20 : 300)));
581
+ }, (anyway && !isTouch ? 0 : 300));
591
582
  },
592
583
 
593
584
  // Shrink content to fit inside viewport or restore if resized
@@ -595,12 +586,19 @@
595
586
  if (F.isOpen) {
596
587
  F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView;
597
588
 
589
+ // Help browser to restore document dimensions
590
+ if (isTouch) {
591
+ F.wrap.removeAttr('style').addClass('fancybox-tmp');
592
+
593
+ F.trigger('onUpdate');
594
+ }
595
+
598
596
  F.update();
599
597
  }
600
598
  },
601
599
 
602
600
  hideLoading: function () {
603
- D.unbind('keypress.fb');
601
+ D.unbind('.loading');
604
602
 
605
603
  $('#fancybox-loading').remove();
606
604
  },
@@ -610,16 +608,17 @@
610
608
 
611
609
  F.hideLoading();
612
610
 
611
+ el = $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');
612
+
613
613
  // If user will press the escape-button, the request will be canceled
614
- D.bind('keypress.fb', function(e) {
614
+ D.bind('keydown.loading', function(e) {
615
615
  if ((e.which || e.keyCode) === 27) {
616
616
  e.preventDefault();
617
+
617
618
  F.cancel();
618
619
  }
619
620
  });
620
621
 
621
- el = $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');
622
-
623
622
  if (!F.defaults.fixed) {
624
623
  viewport = F.getViewport();
625
624
 
@@ -632,15 +631,15 @@
632
631
  },
633
632
 
634
633
  getViewport: function () {
635
- var lock = F.current ? F.current.locked : false,
636
- rez = {
634
+ var locked = (F.current && F.current.locked) || false,
635
+ rez = {
637
636
  x: W.scrollLeft(),
638
637
  y: W.scrollTop()
639
638
  };
640
639
 
641
- if (lock) {
642
- rez.w = lock[0].clientWidth;
643
- rez.h = lock[0].clientHeight;
640
+ if (locked) {
641
+ rez.w = locked[0].clientWidth;
642
+ rez.h = locked[0].clientHeight;
644
643
 
645
644
  } else {
646
645
  // See http://bugs.jquery.com/ticket/6724
@@ -671,7 +670,7 @@
671
670
 
672
671
  // Changing document height on iOS devices triggers a 'resize' event,
673
672
  // that can change document height... repeating infinitely
674
- W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb' ) + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);
673
+ W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);
675
674
 
676
675
  keys = current.keys;
677
676
 
@@ -680,6 +679,11 @@
680
679
  var code = e.which || e.keyCode,
681
680
  target = e.target || e.srcElement;
682
681
 
682
+ // Skip esc key if loading, because showLoading will cancel preloading
683
+ if (code === 27 && F.coming) {
684
+ return false;
685
+ }
686
+
683
687
  // Ignore key combinations and key events within form elements
684
688
  if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {
685
689
  $.each(keys, function(i, val) {
@@ -747,23 +751,21 @@
747
751
  return false;
748
752
  }
749
753
 
750
- if (event === 'onCancel' && !F.isOpened) {
751
- F.isActive = false;
752
- }
753
-
754
754
  if (obj.helpers) {
755
755
  $.each(obj.helpers, function (helper, opts) {
756
756
  if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {
757
+ opts = $.extend(true, {}, F.helpers[helper].defaults, opts);
758
+
757
759
  F.helpers[helper][event](opts, obj);
758
760
  }
759
761
  });
760
762
  }
761
763
 
762
- $.event.trigger(event + '.fb');
764
+ D.trigger(event);
763
765
  },
764
766
 
765
767
  isImage: function (str) {
766
- return isString(str) && str.match(/\.(jp(e|g|eg)|gif|png|bmp|webp)((\?|#).*)?$/i);
768
+ return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp)((\?|#).*)?$)/i);
767
769
  },
768
770
 
769
771
  isSWF: function (str) {
@@ -880,7 +882,7 @@
880
882
  }
881
883
 
882
884
  // Build the neccessary markup
883
- coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent );
885
+ coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );
884
886
 
885
887
  $.extend(coming, {
886
888
  skin : $('.fancybox-skin', coming.wrap),
@@ -954,7 +956,7 @@
954
956
 
955
957
  img.src = F.coming.href;
956
958
 
957
- if (img.complete === undefined || !img.complete) {
959
+ if (img.complete !== true) {
958
960
  F.showLoading();
959
961
  }
960
962
  },
@@ -1072,10 +1074,6 @@
1072
1074
  previous.wrap.stop(true).removeClass('fancybox-opened')
1073
1075
  .find('.fancybox-item, .fancybox-nav')
1074
1076
  .remove();
1075
-
1076
- if (previous.wrap.css('position') === 'fixed') {
1077
- previous.wrap.css(F._getPosition( true ));
1078
- }
1079
1077
  }
1080
1078
 
1081
1079
  F.unbindEvents();
@@ -1123,7 +1121,7 @@
1123
1121
  break;
1124
1122
 
1125
1123
  case 'swf':
1126
- content = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + href + '"></param>';
1124
+ content = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + href + '"></param>';
1127
1125
  embed = '';
1128
1126
 
1129
1127
  $.each(current.swf, function(name, val) {
@@ -1148,9 +1146,7 @@
1148
1146
  // Set initial dimensions and start position
1149
1147
  F._setDimension();
1150
1148
 
1151
- current.wrap.removeClass('fancybox-tmp');
1152
-
1153
- current.pos = $.extend({}, current.dim, F._getPosition( true ));
1149
+ F.reposition();
1154
1150
 
1155
1151
  F.isOpen = false;
1156
1152
  F.coming = null;
@@ -1187,8 +1183,8 @@
1187
1183
  scrolling = current.scrolling,
1188
1184
  scrollOut = current.scrollOutside ? current.scrollbarWidth : 0,
1189
1185
  margin = current.margin,
1190
- wMargin = margin[1] + margin[3],
1191
- hMargin = margin[0] + margin[2],
1186
+ wMargin = getScalar(margin[1] + margin[3]),
1187
+ hMargin = getScalar(margin[0] + margin[2]),
1192
1188
  wPadding,
1193
1189
  hPadding,
1194
1190
  wSpace,
@@ -1206,10 +1202,10 @@
1206
1202
  body;
1207
1203
 
1208
1204
  // Reset dimensions so we could re-check actual size
1209
- wrap.add(skin).add(inner).width('auto').height('auto');
1205
+ wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');
1210
1206
 
1211
- wPadding = skin.outerWidth(true) - skin.width();
1212
- hPadding = skin.outerHeight(true) - skin.height();
1207
+ wPadding = getScalar(skin.outerWidth(true) - skin.width());
1208
+ hPadding = getScalar(skin.outerHeight(true) - skin.height());
1213
1209
 
1214
1210
  // Any space between content and viewport (margin, padding, border, title)
1215
1211
  wSpace = wMargin + wPadding;
@@ -1277,43 +1273,52 @@
1277
1273
  origMaxWidth = maxWidth;
1278
1274
  origMaxHeight = maxHeight;
1279
1275
 
1276
+ if (current.fitToView) {
1277
+ maxWidth = Math.min(viewport.w - wSpace, maxWidth);
1278
+ maxHeight = Math.min(viewport.h - hSpace, maxHeight);
1279
+ }
1280
+
1280
1281
  maxWidth_ = viewport.w - wMargin;
1281
1282
  maxHeight_ = viewport.h - hMargin;
1282
1283
 
1283
1284
  if (current.aspectRatio) {
1284
1285
  if (width > maxWidth) {
1285
1286
  width = maxWidth;
1286
- height = width / ratio;
1287
+ height = getScalar(width / ratio);
1287
1288
  }
1288
1289
 
1289
1290
  if (height > maxHeight) {
1290
1291
  height = maxHeight;
1291
- width = height * ratio;
1292
+ width = getScalar(height * ratio);
1292
1293
  }
1293
1294
 
1294
1295
  if (width < minWidth) {
1295
1296
  width = minWidth;
1296
- height = width / ratio;
1297
+ height = getScalar(width / ratio);
1297
1298
  }
1298
1299
 
1299
1300
  if (height < minHeight) {
1300
1301
  height = minHeight;
1301
- width = height * ratio;
1302
+ width = getScalar(height * ratio);
1302
1303
  }
1303
1304
 
1304
1305
  } else {
1305
- width = Math.max(minWidth, Math.min(width, maxWidth));
1306
+ width = Math.max(minWidth, Math.min(width, maxWidth));
1307
+
1308
+ if (current.autoHeight && current.type !== 'iframe') {
1309
+ inner.width( width );
1310
+
1311
+ height = inner.height();
1312
+ }
1313
+
1306
1314
  height = Math.max(minHeight, Math.min(height, maxHeight));
1307
1315
  }
1308
1316
 
1309
1317
  // Try to fit inside viewport (including the title)
1310
1318
  if (current.fitToView) {
1311
- maxWidth = Math.min(viewport.w - wSpace, maxWidth);
1312
- maxHeight = Math.min(viewport.h - hSpace, maxHeight);
1313
-
1314
- inner.width( getScalar( width ) ).height( getScalar( height ) );
1319
+ inner.width( width ).height( height );
1315
1320
 
1316
- wrap.width( getScalar( width + wPadding ) );
1321
+ wrap.width( width + wPadding );
1317
1322
 
1318
1323
  // Real wrap dimensions
1319
1324
  width_ = wrap.width();
@@ -1326,21 +1331,21 @@
1326
1331
  }
1327
1332
 
1328
1333
  height = Math.max(minHeight, Math.min(maxHeight, height - 10));
1329
- width = height * ratio;
1334
+ width = getScalar(height * ratio);
1330
1335
 
1331
1336
  if (width < minWidth) {
1332
1337
  width = minWidth;
1333
- height = width / ratio;
1338
+ height = getScalar(width / ratio);
1334
1339
  }
1335
1340
 
1336
1341
  if (width > maxWidth) {
1337
1342
  width = maxWidth;
1338
- height = width / ratio;
1343
+ height = getScalar(width / ratio);
1339
1344
  }
1340
1345
 
1341
- inner.width( getScalar( width ) ).height( getScalar( height ) );
1346
+ inner.width( width ).height( height );
1342
1347
 
1343
- wrap.width( getScalar( width + wPadding ) );
1348
+ wrap.width( width + wPadding );
1344
1349
 
1345
1350
  width_ = wrap.width();
1346
1351
  height_ = wrap.height();
@@ -1356,9 +1361,9 @@
1356
1361
  width += scrollOut;
1357
1362
  }
1358
1363
 
1359
- inner.width( getScalar( width ) ).height( getScalar( height ) );
1364
+ inner.width( width ).height( height );
1360
1365
 
1361
- wrap.width( getScalar( width + wPadding ) );
1366
+ wrap.width( width + wPadding );
1362
1367
 
1363
1368
  width_ = wrap.width();
1364
1369
  height_ = wrap.height();
@@ -1421,14 +1426,16 @@
1421
1426
 
1422
1427
  F.isOpen = F.isOpened = true;
1423
1428
 
1424
- F.wrap.addClass('fancybox-opened').css('overflow', 'visible');
1429
+ F.wrap.css('overflow', 'visible').addClass('fancybox-opened');
1425
1430
 
1426
- F.reposition();
1431
+ F.update();
1427
1432
 
1428
1433
  // Assign a click event
1429
- if (current.closeClick || current.nextClick) {
1434
+ if ( current.closeClick || (current.nextClick && F.group.length > 1) ) {
1430
1435
  F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
1431
1436
  if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {
1437
+ e.preventDefault();
1438
+
1432
1439
  F[ current.closeClick ? 'close' : 'next' ]();
1433
1440
  }
1434
1441
  });
@@ -1436,7 +1443,11 @@
1436
1443
 
1437
1444
  // Create a close button
1438
1445
  if (current.closeBtn) {
1439
- $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', F.close);
1446
+ $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {
1447
+ e.preventDefault();
1448
+
1449
+ F.close();
1450
+ });
1440
1451
  }
1441
1452
 
1442
1453
  // Create navigation arrows
@@ -1463,10 +1474,10 @@
1463
1474
  }
1464
1475
  },
1465
1476
 
1466
- _afterZoomOut: function () {
1467
- var current = F.current;
1477
+ _afterZoomOut: function ( obj ) {
1478
+ obj = obj || F.current;
1468
1479
 
1469
- $('.fancybox-wrap').stop(true).trigger('onReset').remove();
1480
+ $('.fancybox-wrap').trigger('onReset').remove();
1470
1481
 
1471
1482
  $.extend(F, {
1472
1483
  group : {},
@@ -1483,7 +1494,7 @@
1483
1494
  inner : null
1484
1495
  });
1485
1496
 
1486
- F.trigger('afterClose', current);
1497
+ F.trigger('afterClose', obj);
1487
1498
  }
1488
1499
  });
1489
1500
 
@@ -1524,7 +1535,7 @@
1524
1535
  pos.left = viewport.x + (viewport.w - width) * current.leftRatio;
1525
1536
  }
1526
1537
 
1527
- if (current.locked) {
1538
+ if (F.wrap.css('position') === 'fixed' || current.locked) {
1528
1539
  pos.top -= viewport.y;
1529
1540
  pos.left -= viewport.x;
1530
1541
  }
@@ -1677,16 +1688,97 @@
1677
1688
  */
1678
1689
 
1679
1690
  F.helpers.overlay = {
1680
- overlay: null,
1691
+ defaults : {
1692
+ closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay
1693
+ speedOut : 200, // duration of fadeOut animation
1694
+ showEarly : true, // indicates if should be opened immediately or wait until the content is ready
1695
+ css : {}, // custom CSS properties
1696
+ locked : !isTouch, // if true, the content will be locked into overlay
1697
+ fixed : true // if false, the overlay CSS position property will not be set to "fixed"
1698
+ },
1699
+
1700
+ overlay : null, // current handle
1701
+ fixed : false, // indicates if the overlay has position "fixed"
1702
+
1703
+ // Public methods
1704
+ create : function(opts) {
1705
+ opts = $.extend({}, this.defaults, opts);
1706
+
1707
+ if (this.overlay) {
1708
+ this.close();
1709
+ }
1710
+
1711
+ this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( 'body' );
1712
+ this.fixed = false;
1713
+
1714
+ if (opts.fixed && F.defaults.fixed) {
1715
+ this.overlay.addClass('fancybox-overlay-fixed');
1716
+
1717
+ this.fixed = true;
1718
+ }
1719
+ },
1720
+
1721
+ open : function(opts) {
1722
+ var that = this;
1723
+
1724
+ opts = $.extend({}, this.defaults, opts);
1725
+
1726
+ if (this.overlay) {
1727
+ this.overlay.unbind('.overlay').width('auto').height('auto');
1728
+
1729
+ } else {
1730
+ this.create(opts);
1731
+ }
1732
+
1733
+ if (!this.fixed) {
1734
+ W.bind('resize.overlay', $.proxy( this.update, this) );
1681
1735
 
1682
- update: function () {
1736
+ this.update();
1737
+ }
1738
+
1739
+ if (opts.closeClick) {
1740
+ this.overlay.bind('click.overlay', function(e) {
1741
+ if ($(e.target).hasClass('fancybox-overlay')) {
1742
+ if (F.isActive) {
1743
+ F.close();
1744
+ } else {
1745
+ that.close();
1746
+ }
1747
+ }
1748
+ });
1749
+ }
1750
+
1751
+ this.overlay.css( opts.css ).show();
1752
+ },
1753
+
1754
+ close : function() {
1755
+ $('.fancybox-overlay').remove();
1756
+
1757
+ W.unbind('resize.overlay');
1758
+
1759
+ this.overlay = null;
1760
+
1761
+ if (this.margin !== false) {
1762
+ $('body').css('margin-right', this.margin);
1763
+
1764
+ this.margin = false;
1765
+ }
1766
+
1767
+ if (this.el) {
1768
+ this.el.removeClass('fancybox-lock');
1769
+ }
1770
+ },
1771
+
1772
+ // Private, callbacks
1773
+
1774
+ update : function () {
1683
1775
  var width = '100%', offsetWidth;
1684
1776
 
1685
1777
  // Reset width/height so it will not mess
1686
1778
  this.overlay.width(width).height('100%');
1687
1779
 
1688
1780
  // jQuery does not return reliable result for IE
1689
- if ($.browser.msie) {
1781
+ if (IE) {
1690
1782
  offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
1691
1783
 
1692
1784
  if (D.width() > offsetWidth) {
@@ -1701,25 +1793,19 @@
1701
1793
  },
1702
1794
 
1703
1795
  // This is where we can manipulate DOM, because later it would cause iframes to reload
1704
- onReady: function (opts, obj) {
1796
+ onReady : function (opts, obj) {
1705
1797
  $('.fancybox-overlay').stop(true, true);
1706
1798
 
1707
1799
  if (!this.overlay) {
1708
- $.extend(this, {
1709
- overlay : $('<div class="fancybox-overlay"></div>').appendTo( obj.parent ),
1710
- margin : D.height() > W.height() || $('body').css('overflow-y') === 'scroll' ? $('body').css('margin-right') : false,
1711
- el : document.all && !document.querySelector ? $('html') : $('body')
1712
- });
1713
- }
1800
+ this.margin = D.height() > W.height() || $('body').css('overflow-y') === 'scroll' ? $('body').css('margin-right') : false;
1801
+ this.el = document.all && !document.querySelector ? $('html') : $('body');
1714
1802
 
1715
- if (obj.fixed && !isTouch) {
1716
- this.overlay.addClass('fancybox-overlay-fixed');
1717
-
1718
- if (obj.autoCenter) {
1719
- this.overlay.append( obj.wrap );
1803
+ this.create(opts);
1804
+ }
1720
1805
 
1721
- obj.locked = this.overlay;
1722
- }
1806
+ if (opts.locked && this.fixed) {
1807
+ obj.locked = this.overlay.append( obj.wrap );
1808
+ obj.fixed = false;
1723
1809
  }
1724
1810
 
1725
1811
  if (opts.showEarly === true) {
@@ -1728,54 +1814,28 @@
1728
1814
  },
1729
1815
 
1730
1816
  beforeShow : function(opts, obj) {
1731
- var overlay = this.overlay.unbind('.fb').width('auto').height('auto').css( opts.css );
1817
+ if (obj.locked) {
1818
+ this.el.addClass('fancybox-lock');
1732
1819
 
1733
- if (opts.closeClick) {
1734
- overlay.bind('click.fb', function(e) {
1735
- if ($(e.target).hasClass('fancybox-overlay')) {
1736
- F.close();
1737
- }
1738
- });
1739
- }
1740
-
1741
- if (obj.fixed && !isTouch) {
1742
- if (obj.locked) {
1743
- this.el.addClass('fancybox-lock');
1744
-
1745
- if (this.margin !== false) {
1746
- $('body').css('margin-right', getScalar( this.margin ) + obj.scrollbarWidth);
1747
- }
1820
+ if (this.margin !== false) {
1821
+ $('body').css('margin-right', getScalar( this.margin ) + obj.scrollbarWidth);
1748
1822
  }
1749
-
1750
- } else {
1751
- this.update();
1752
1823
  }
1753
1824
 
1754
- overlay.show();
1825
+ this.open(opts);
1755
1826
  },
1756
1827
 
1757
- onUpdate : function(opts, obj) {
1758
- if (!obj.fixed || isTouch) {
1828
+ onUpdate : function() {
1829
+ if (!this.fixed) {
1759
1830
  this.update();
1760
1831
  }
1761
1832
  },
1762
1833
 
1763
1834
  afterClose: function (opts) {
1764
- var that = this,
1765
- speed = opts.speedOut || 0;
1766
-
1767
1835
  // Remove overlay if exists and fancyBox is not opening
1768
1836
  // (e.g., it is not being open using afterClose callback)
1769
- if (that.overlay && !F.isActive) {
1770
- that.overlay.fadeOut(speed || 0, function () {
1771
- $('body').css('margin-right', that.margin);
1772
-
1773
- that.el.removeClass('fancybox-lock');
1774
-
1775
- that.overlay.remove();
1776
-
1777
- that.overlay = null;
1778
- });
1837
+ if (this.overlay && !F.isActive) {
1838
+ this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));
1779
1839
  }
1780
1840
  }
1781
1841
  };
@@ -1785,12 +1845,22 @@
1785
1845
  */
1786
1846
 
1787
1847
  F.helpers.title = {
1848
+ defaults : {
1849
+ type : 'float', // 'float', 'inside', 'outside' or 'over',
1850
+ position : 'bottom' // 'top' or 'bottom'
1851
+ },
1852
+
1788
1853
  beforeShow: function (opts) {
1789
- var text = F.current.title,
1790
- type = opts.type,
1854
+ var current = F.current,
1855
+ text = current.title,
1856
+ type = opts.type,
1791
1857
  title,
1792
1858
  target;
1793
1859
 
1860
+ if ($.isFunction(text)) {
1861
+ text = text.call(current.element, current);
1862
+ }
1863
+
1794
1864
  if (!isString(text) || $.trim(text) === '') {
1795
1865
  return;
1796
1866
  }
@@ -1813,22 +1883,20 @@
1813
1883
  default: // 'float'
1814
1884
  target = F.skin;
1815
1885
 
1816
- title
1817
- .appendTo('body')
1818
- .width(title.width()) //This helps for some browsers
1819
- .wrapInner('<span class="child"></span>');
1886
+ title.appendTo('body');
1820
1887
 
1821
- //Increase bottom margin so this title will also fit into viewport
1822
- F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );
1823
- break;
1824
- }
1888
+ if (IE) {
1889
+ title.width( title.width() );
1890
+ }
1825
1891
 
1826
- if (opts.position === 'top') {
1827
- title.prependTo(target);
1892
+ title.wrapInner('<span class="child"></span>');
1828
1893
 
1829
- } else {
1830
- title.appendTo(target);
1894
+ //Increase bottom margin so this title will also fit into viewport
1895
+ F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );
1896
+ break;
1831
1897
  }
1898
+
1899
+ title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target);
1832
1900
  }
1833
1901
  };
1834
1902
 
@@ -1869,10 +1937,13 @@
1869
1937
 
1870
1938
  if (!selector || options.live === false) {
1871
1939
  that.unbind('click.fb-start').bind('click.fb-start', run);
1940
+
1872
1941
  } else {
1873
1942
  D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run);
1874
1943
  }
1875
1944
 
1945
+ this.filter('[data-fancybox-start=1]').trigger('click');
1946
+
1876
1947
  return this;
1877
1948
  };
1878
1949
 
@@ -1,4 +1,4 @@
1
- /*! fancyBox v2.1.0 fancyapps.com | fancyapps.com/fancybox/#license */
1
+ /*! fancyBox v2.1.4 fancyapps.com | fancyapps.com/fancybox/#license */
2
2
  .fancybox-wrap,
3
3
  .fancybox-skin,
4
4
  .fancybox-outer,
@@ -154,9 +154,12 @@
154
154
 
155
155
  .fancybox-tmp {
156
156
  position: absolute;
157
- top: -9999px;
158
- left: -9999px;
157
+ top: -99999px;
158
+ left: -99999px;
159
159
  visibility: hidden;
160
+ max-width: 99999px;
161
+ max-height: 99999px;
162
+ overflow: visible !important;
160
163
  }
161
164
 
162
165
  /* Overlay helper */
@@ -243,4 +246,4 @@
243
246
  padding: 10px;
244
247
  background: #000;
245
248
  background: rgba(0, 0, 0, .8);
246
- }
249
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fancybox2-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-12 00:00:00.000000000 Z
12
+ date: 2013-02-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &70234406815940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,47 +21,65 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
24
+ version_requirements: *70234406815940
25
+ - !ruby/object:Gem::Dependency
26
+ name: rails
27
+ requirement: &70234406815440 !ruby/object:Gem::Requirement
25
28
  none: false
26
29
  requirements:
27
- - - ! '>='
30
+ - - ~>
28
31
  - !ruby/object:Gem::Version
29
- version: 3.1.0
32
+ version: '3.1'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70234406815440
30
36
  - !ruby/object:Gem::Dependency
31
- name: bundler
32
- requirement: !ruby/object:Gem::Requirement
37
+ name: jquery-rails
38
+ requirement: &70234406815060 !ruby/object:Gem::Requirement
33
39
  none: false
34
40
  requirements:
35
- - - ~>
41
+ - - ! '>='
36
42
  - !ruby/object:Gem::Version
37
- version: 1.2.1
43
+ version: '0'
38
44
  type: :development
39
45
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
46
+ version_requirements: *70234406815060
47
+ - !ruby/object:Gem::Dependency
48
+ name: coffee-rails
49
+ requirement: &70234406814600 !ruby/object:Gem::Requirement
41
50
  none: false
42
51
  requirements:
43
- - - ~>
52
+ - - ! '>='
44
53
  - !ruby/object:Gem::Version
45
- version: 1.2.1
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70234406814600
46
58
  - !ruby/object:Gem::Dependency
47
- name: rails
48
- requirement: !ruby/object:Gem::Requirement
59
+ name: sqlite3
60
+ requirement: &70234406814180 !ruby/object:Gem::Requirement
49
61
  none: false
50
62
  requirements:
51
- - - ~>
63
+ - - ! '>='
52
64
  - !ruby/object:Gem::Version
53
- version: '3.1'
65
+ version: '0'
54
66
  type: :development
55
67
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
68
+ version_requirements: *70234406814180
69
+ - !ruby/object:Gem::Dependency
70
+ name: nokogiri
71
+ requirement: &70234406813760 !ruby/object:Gem::Requirement
57
72
  none: false
58
73
  requirements:
59
- - - ~>
74
+ - - ! '>='
60
75
  - !ruby/object:Gem::Version
61
- version: '3.1'
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70234406813760
62
80
  - !ruby/object:Gem::Dependency
63
- name: nokogiri
64
- requirement: !ruby/object:Gem::Requirement
81
+ name: capybara
82
+ requirement: &70234406813340 !ruby/object:Gem::Requirement
65
83
  none: false
66
84
  requirements:
67
85
  - - ! '>='
@@ -69,12 +87,18 @@ dependencies:
69
87
  version: '0'
70
88
  type: :development
71
89
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
90
+ version_requirements: *70234406813340
91
+ - !ruby/object:Gem::Dependency
92
+ name: capybara-webkit
93
+ requirement: &70234406812920 !ruby/object:Gem::Requirement
73
94
  none: false
74
95
  requirements:
75
96
  - - ! '>='
76
97
  - !ruby/object:Gem::Version
77
98
  version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70234406812920
78
102
  description: This gem provides jQuery FancyBox 2 for your Rails 3.1 application. This
79
103
  gem is based on the gem for Fancybox 1.x by Chris Mytton
80
104
  email:
@@ -117,22 +141,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
141
  - - ! '>='
118
142
  - !ruby/object:Gem::Version
119
143
  version: '0'
120
- segments:
121
- - 0
122
- hash: 2667871193779590918
123
144
  required_rubygems_version: !ruby/object:Gem::Requirement
124
145
  none: false
125
146
  requirements:
126
147
  - - ! '>='
127
148
  - !ruby/object:Gem::Version
128
149
  version: '0'
129
- segments:
130
- - 0
131
- hash: 2667871193779590918
132
150
  requirements: []
133
151
  rubyforge_project:
134
- rubygems_version: 1.8.23
152
+ rubygems_version: 1.8.11
135
153
  signing_key:
136
154
  specification_version: 3
137
155
  summary: Use FancyBox 2 with Rails 3.1
138
156
  test_files: []
157
+ has_rdoc: