fancybox2-rails 0.2.1 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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: