lazysizes_rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 798e7771330ba8d4034f67cdf7a754751ee680e3
4
- data.tar.gz: a59520c8a45dc565d2be28009768bc8a8c596da5
3
+ metadata.gz: d37fb6863c8b1abfcff47d83fe0ad6b393d621cc
4
+ data.tar.gz: 7954cedf2ef0fef1950be732f4cffb784fea55b6
5
5
  SHA512:
6
- metadata.gz: 5d789610444cf69dc942fad2765ef765d0d9ab2eaa5c0ab52767505507ec537ba65166366176b4a71749aa93fd4133d8bb93d8ee2c40e46f5666d872ce46881f
7
- data.tar.gz: e3a622373bed0a0fc9b7eacabeabf50f781fe7c6dddf515c7ee20f84ed9e7ccb953d1d35e87decb0bbb1cfafd4dffc2d589c4ed44507e69ebd32969258e4ab89
6
+ metadata.gz: 6f59a31ddcfc8dbbeedaa431dd31ec8477ceb879169c0551504d6175ac86f6a420e7b2db015a5d67707614f877ac997fd6060036e42d365c84899c8ceac72879
7
+ data.tar.gz: ccb0526e075803a21cd3b038a0cfb6c9d3fcb33eff07e5e18b54e15d2ad6b06792388e5993ca7f639aa1075666ea5a0d7bc826f89fcb033b196a69c3a887c2ea
data/README.md CHANGED
@@ -14,11 +14,10 @@ And then execute:
14
14
 
15
15
  $ bundle
16
16
 
17
- $ gem install lazysizes_rails
18
-
19
17
  ## Usage
20
18
 
21
- * put necessary images into /app/assets/images folder
19
+ * add to your **application.js** this line `//= require lazysizes_rails` or `//= require lazysizes_rails.min.js` if your want use minified version
20
+ * put necessary images into **app/assets/images** folder
22
21
  * and show images with **image_tag** helper
23
22
 
24
23
  ```ruby
data/Rakefile CHANGED
@@ -1,2 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
+ desc 'Download fresh js from GH'
4
+ task :download_js do
5
+ `wget https://raw.githubusercontent.com/aFarkas/lazysizes/master/lazysizes.js -O vendor/assets/javascripts/lazysizes_rails.js`
6
+ `wget https://raw.githubusercontent.com/aFarkas/lazysizes/master/lazysizes.min.js -O vendor/assets/javascripts/lazysizes_rails.min.js`
7
+ end
8
+
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = LazysizesRails::VERSION
9
9
  spec.authors = ["Dima Zudochkin"]
10
10
  spec.email = ["dnd.pliz@gmail.com"]
11
- spec.summary = %q{Lazysizes for Rails application.}
12
- spec.homepage = ""
11
+ spec.summary = %q{Rails wrapper for Lazysizes.}
12
+ spec.homepage = "https://github.com/vredniy/lazysizes_rails"
13
13
  spec.license = "MIT"
14
14
 
15
15
  spec.files = `git ls-files -z`.split("\x0")
@@ -1,3 +1,3 @@
1
1
  module LazysizesRails
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -208,7 +208,7 @@
208
208
  }
209
209
 
210
210
  function unveilLazy(elem, force){
211
- var sources, i, len, sourceSrcset, sizes, src, srcset, parent;
211
+ var sources, i, len, sourceSrcset, sizes, src, srcset, parent, isPicture;
212
212
 
213
213
  var event = triggerEvent(elem, 'lazybeforeunveil', {force: !!force});
214
214
 
@@ -231,14 +231,15 @@
231
231
  scriptUrls[src] = true;
232
232
  }
233
233
  } else if(regImg.test(elem.nodeName || '')) {
234
+ isPicture = regPicture.test(parent.nodeName || '');
234
235
 
235
236
  //LQIP
236
- if(!force && !elem.complete && elem.getAttribute('src') && elem.src && !elem.lazyload){
237
+ if(!isPicture && !force && !elem.complete && elem.getAttribute('src') && elem.src && !elem.lazyload){
237
238
  addRemoveImgEvents(elem, resetPreloading);
238
239
  addRemoveImgEvents(elem, resetPreloading, true);
239
240
  return;
240
241
  }
241
- if(regPicture.test(parent.nodeName || '')){
242
+ if(isPicture){
242
243
  sources = parent.getElementsByTagName('source');
243
244
  for(i = 0, len = sources.length; i < len; i++){
244
245
  sourceSrcset = sources[i].getAttribute(lazySizesConfig.srcsetAttr);
@@ -0,0 +1,3 @@
1
+ /*! lazysizes - v0.2.0 - 2014-10-21
2
+ Licensed MIT */
3
+ !function(a){window.lazySizes=a(),"function"==typeof define&&define.amd&&define(function(){return window.lazySizes})}(function(){"use strict";function a(a,b){var c;window.picturefill?picturefill({reevaluate:!0,reparse:!0,elements:[a]}):window.respimage&&!respimage._.observer?(b&&(c=a[respimage._.ns],c&&(c[b.srcset?"srcset":"src"]=void 0)),respimage({reparse:!0,elements:[a]})):!window.HTMLPictureElement&&window.console&&"complete"==t.readyState&&console.log("Please use a responsive image polyfill, like respimage or picturefill. https://github.com/aFarkas/respimage")}function b(a){u++,a=e(a),C(a,O),C(a,O,!0),clearTimeout(F),F=setTimeout(O,5e3)}function c(a){var b=t.createElement("script"),c=a.parentNode;return a.removeAttribute(j.srcAttr),c.insertBefore(b,a),A(function(){q(a,j.lazyClass)}),b}function d(){n=0,clearTimeout(m)}function e(b,d){var e,f,h,i,k,l,m,n,o,r=D(b,"lazybeforeunveil",{force:!!d});if(!r.defaultPrevented&&(k=b.getAttribute(j.sizesAttr),l=b.getAttribute(j.srcAttr),m=b.getAttribute(j.srcsetAttr),n=b.parentNode,l||m)){if(v.test(b.nodeName)&&(b=c(b)),x.test(b.nodeName||"")){if(B[l])return;B[l]=!0}else if(y.test(b.nodeName||"")){if(o=w.test(n.nodeName||""),!o&&!d&&!b.complete&&b.getAttribute("src")&&b.src&&!b.lazyload)return C(b,O),void C(b,O,!0);if(o)for(e=n.getElementsByTagName("source"),f=0,h=e.length;h>f;f++)i=e[f].getAttribute(j.srcsetAttr),i&&e[f].setAttribute("srcset",i)}k&&("auto"==k?g(b,!0):b.setAttribute("sizes",k),b.removeAttribute(j.sizesAttr),!m&&window.console&&b.getAttribute("srcset")&&console.log("using lazysizes with a `srcset` attribute is not good. Use `data-srcset` instead")),m?(b.setAttribute("srcset",m),b.removeAttribute(j.srcsetAttr)):l&&(b.setAttribute("src",l),b.removeAttribute(j.srcAttr))}return A(function(){q(b,j.lazyClass),"auto"==k&&p(b,j.autosizesClass),(m||k)&&a(b,{srcset:m,src:l})}),b}function f(){l=0,clearTimeout(k)}function g(b,c){var d,e,f,g,h,i,k,l;if(g=b.parentNode){if(d=g.offsetWidth,e=b.offsetWidth,f=e>d?e:d,!f&&!b._lazysizesWidth)for(;g&&g!=t.body&&!f;)f=g.offsetWidth,g=g.parentNode;if(l=D(b,"lazybeforesizes",{width:f,polyfill:!c}),!l.defaultPrevented&&(f=l.details.width,f&&f!==b._lazysizesWidth&&(!j.onlyLargerSizes||!b._lazysizesWidth||b._lazysizesWidth<f))){if(b._lazysizesWidth=f,f+="px",b.setAttribute("sizes",f),w.test(g.nodeName||""))for(h=g.getElementsByTagName("source"),i=0,k=h.length;k>i;i++)h[i].setAttribute("sizes",f);l.details.polyfill&&a(b)}}}if(Date.now&&window.document.getElementsByClassName){var h,i,j,k,l,m,n,o,p,q,r,s,t=window.document,u=0,v=/^(?:span|div)$/i,w=/^picture$/i,x=/^script$/i,y=/^img$/i,z=10,A=window.setImmediate||window.setTimeout,B={},C=function(a,b,c){var d=c?"addEventListener":"removeEventListener";a[d]("load",b,!1),a[d]("abort",b,!1),a[d]("readystatechange",b,!1),a[d]("error",b,!1)},D=function(a,b,c){var d=t.createEvent("Event");return d.initEvent(b,!0,!0),d.details=c||{},a.dispatchEvent(d),d};t.documentElement.classList?(p=function(a,b){a.classList.add(b)},q=function(a,b){a.classList.remove(b)},r=function(a,b){return a.classList.contains(b)}):(p=function(a,b){r(a,b)||(a.className+=" "+b)},q=function(a,b){var c;r(a,b)&&(c=new RegExp("(\\s|^)"+b+"(\\s|$)"),a.className=a.className.replace(c," "))},r=function(a,b){return a.className.match(new RegExp("(\\s|^)"+b+"(\\s|$)"))});var E,F,G,H,I,J,K,L,M,N=Date.now(),O=function(a){u--,clearTimeout(F),a&&a.target&&C(a.target,O),(!a||0>u||!a.target)&&(u=0)},P=function(){var a,b,c=function(){b=!1},e=function(){clearTimeout(a),d(),Q(),setTimeout(c)};return{debounce:function(){clearTimeout(a),clearTimeout(o),b=!0,a=setTimeout(e,66)},throttled:function(){var c;b||(b=!0,clearTimeout(a),c=Date.now()-N,c=c>300?9:99,a=setTimeout(e,c))}}}(),Q=function(){var a,c,d;if(E=h.length,N=Date.now(),E){for(G=window.innerWidth+z,H=window.innerHeight+z,M=-1*z;E>n;n++)if(a=h[n].getBoundingClientRect(),(L=a.bottom)>=M&&(I=a.top)<=H&&(K=a.right)>=M&&(J=a.left)<=G&&(L||K||J||I))e(h[n]),d=!0;else{if(E-1>n&&Date.now()-N>9){n++,c=!1,m=setTimeout(Q,4);break}!d&&s&&!c&&j.preloadAfterLoad&&2>u&&(L||K||J||I||"auto"!=h[n].getAttribute(j.sizesAttr))&&(c=h[n])}c&&!d&&b(c)}},R=function(){var a,b=function(){clearTimeout(a),f(),S()};return function(){clearTimeout(a),clearTimeout(k),a=setTimeout(b,99)}}(),S=function(){var a,b,c,d=i.length;if(d)for(b=Date.now(),c=l||0,a=c+3,f();d>c;c++)if(g(i[c]),c>a&&d-1>c&&Date.now()-b>9){l=c+1,k=setTimeout(S,4);break}},T=function(){z=400,clearTimeout(o),t.addEventListener("load",P.throttled,!0),s=!0},U=function(){var a=t.body||t.documentElement;j.mutation&&(window.MutationObserver?new MutationObserver(P.throttled).observe(t.documentElement,{childList:!0,subtree:!0,attributes:!0}):(a.addEventListener("DOMNodeInserted",P.throttled,!0),t.documentElement.addEventListener("DOMAttrModified",P.throttled,!0))),j.hover&&t.addEventListener("mouseover",P.throttled,!0),t.addEventListener("focus",P.throttled,!0),window.addEventListener("hashchange",P.throttled,!0),"onmozfullscreenchange"in a?window.addEventListener("mozfullscreenchange",P.throttled,!0):"onwebkitfullscreenchange"in a?window.addEventListener("webkitfullscreenchange",P.throttled,!0):window.addEventListener("fullscreenchange",P.throttled,!0),j.cssanimation&&(t.addEventListener("animationstart",P.throttled,!0),t.addEventListener("transitionstart",P.throttled,!0))};return setTimeout(function(){var a,b={mutation:!0,hover:!0,cssanimation:!0,lazyClass:"lazyload",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",preloadAfterLoad:!1,onlyLargerSizes:!0};j=window.lazySizesConfig||{};for(a in b)a in j||(j[a]=b[a]);h=t.getElementsByClassName(j.lazyClass),i=t.getElementsByClassName(j.autosizesClass),addEventListener("scroll",P.throttled,!1),(t.body||t.documentElement).addEventListener("scroll",P.throttled,!0),t.addEventListener("touchmove",P.throttled,!1),addEventListener("resize",P.debounce,!1),addEventListener("resize",R,!1),/^i|^loade|c/.test(t.readyState)?U():t.addEventListener("DOMContentLoaded",U,!1),"complete"==t.readyState?T():(addEventListener("load",T,!1),t.addEventListener("readystatechange",P.throttled,!1)),P.throttled(),"lazySizesConfig"in window&&(window.lazySizesConfig=null)},t.body?9:99),{updateAllSizes:R,updateAllLazy:P.throttled,unveilLazy:function(a){r(a,j.lazyClass)&&e(a)},updateSizes:g,updatePolyfill:a}}});
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazysizes_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dima Zudochkin
@@ -55,7 +55,8 @@ files:
55
55
  - lib/lazysizes_rails/engine.rb
56
56
  - lib/lazysizes_rails/version.rb
57
57
  - vendor/assets/javascripts/lazysizes_rails.js
58
- homepage: ''
58
+ - vendor/assets/javascripts/lazysizes_rails.min.js
59
+ homepage: https://github.com/vredniy/lazysizes_rails
59
60
  licenses:
60
61
  - MIT
61
62
  metadata: {}
@@ -78,5 +79,5 @@ rubyforge_project:
78
79
  rubygems_version: 2.2.2
79
80
  signing_key:
80
81
  specification_version: 4
81
- summary: Lazysizes for Rails application.
82
+ summary: Rails wrapper for Lazysizes.
82
83
  test_files: []