zepto-for-rails 0.2.4 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8a807a3f806f060d9802f86654d6e32b65aa7a78
4
- data.tar.gz: 0660b38788ed356ea2471ada5edc6f2508475c6c
3
+ metadata.gz: f9de766fb3ce9711a7b045646bd4ba296c549228
4
+ data.tar.gz: 568eaca2d72611a3009d58e3642d0893083134ad
5
5
  SHA512:
6
- metadata.gz: 31709f426445e6ea353e77c04fa4f2495186ac4dd6bfb1eeaf6a11fe2a1b8f9801e386270dce949b099e15e1c3138be3dd7c4e7aa973985931ab586bda35f100
7
- data.tar.gz: 914acd8cf0a8d116a59d3a39267483b533907f63a882f0484b8306f0619c4135704bb2c9239c30e769ab6fdaaae70a285db413274cd39f13423b1d4cdcde2081
6
+ metadata.gz: 0cb2d8e46ef6ddf88b0bf3cba4834f41748df3d8080121576e11a65539874e6045aee7543fd2a1b38059968ed38121d0c689f67fb77b9286b649da7e79ce4d5c
7
+ data.tar.gz: f95c13f34df273184e2b2903b4845c5ed1e4bc300a8904d40797f108627b6af96f3a2a231d0f82451995cede07e7b3a47097c3883f26707d94b4be7208b00a7f
@@ -1,7 +1,7 @@
1
1
  module Zepto
2
2
  module For
3
3
  module Rails
4
- VERSION = '0.2.4'
4
+ VERSION = '0.3.0'
5
5
  end
6
6
  end
7
7
  end
@@ -1,6 +1,11 @@
1
- /* Zepto 1.1.6 - zepto event ajax form ie - zeptojs.com/license */
2
-
3
- var Zepto = (function() {
1
+ /* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */
2
+ (function(global, factory) {
3
+ if (typeof define === 'function' && define.amd)
4
+ define(function() { return factory(global) })
5
+ else
6
+ factory(global)
7
+ }(this, function(window) {
8
+ var Zepto = (function() {
4
9
  var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,
5
10
  document = window.document,
6
11
  elementDisplay = {}, classCache = {},
@@ -49,8 +54,9 @@ var Zepto = (function() {
49
54
 
50
55
  zepto.matches = function(element, selector) {
51
56
  if (!selector || !element || element.nodeType !== 1) return false
52
- var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector ||
53
- element.oMatchesSelector || element.matchesSelector
57
+ var matchesSelector = element.matches || element.webkitMatchesSelector ||
58
+ element.mozMatchesSelector || element.oMatchesSelector ||
59
+ element.matchesSelector
54
60
  if (matchesSelector) return matchesSelector.call(element, selector)
55
61
  // fall back to performing a selector:
56
62
  var match, parent = element.parentNode, temp = !parent
@@ -72,7 +78,16 @@ var Zepto = (function() {
72
78
  function isPlainObject(obj) {
73
79
  return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype
74
80
  }
75
- function likeArray(obj) { return typeof obj.length == 'number' }
81
+
82
+ function likeArray(obj) {
83
+ var length = !!obj && 'length' in obj && obj.length,
84
+ type = $.type(obj)
85
+
86
+ return 'function' != type && !isWindow(obj) && (
87
+ 'array' == type || length === 0 ||
88
+ (typeof length == 'number' && length > 0 && (length - 1) in obj)
89
+ )
90
+ }
76
91
 
77
92
  function compact(array) { return filter.call(array, function(item){ return item != null }) }
78
93
  function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }
@@ -331,6 +346,13 @@ var Zepto = (function() {
331
346
  return true
332
347
  }
333
348
 
349
+ $.isNumeric = function(val) {
350
+ var num = Number(val), type = typeof val
351
+ return val != null && type != 'boolean' &&
352
+ (type != 'string' || val.length) &&
353
+ !isNaN(num) && isFinite(num) || false
354
+ }
355
+
334
356
  $.inArray = function(elem, array, i){
335
357
  return emptyArray.indexOf.call(array, elem, i)
336
358
  }
@@ -503,11 +525,13 @@ var Zepto = (function() {
503
525
  return result
504
526
  },
505
527
  closest: function(selector, context){
506
- var node = this[0], collection = false
507
- if (typeof selector == 'object') collection = $(selector)
508
- while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))
509
- node = node !== context && !isDocument(node) && node.parentNode
510
- return $(node)
528
+ var nodes = [], collection = typeof selector == 'object' && $(selector)
529
+ this.each(function(_, node){
530
+ while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))
531
+ node = node !== context && !isDocument(node) && node.parentNode
532
+ if (node && nodes.indexOf(node) < 0) nodes.push(node)
533
+ })
534
+ return $(nodes)
511
535
  },
512
536
  parents: function(selector){
513
537
  var ancestors = [], nodes = this
@@ -621,9 +645,7 @@ var Zepto = (function() {
621
645
  attr: function(name, value){
622
646
  var result
623
647
  return (typeof name == 'string' && !(1 in arguments)) ?
624
- (!this.length || this[0].nodeType !== 1 ? undefined :
625
- (!(result = this[0].getAttribute(name)) && name in this[0]) ? this[0][name] : result
626
- ) :
648
+ (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :
627
649
  this.each(function(idx){
628
650
  if (this.nodeType !== 1) return
629
651
  if (isObject(name)) for (key in name) setAttribute(this, key, name[key])
@@ -643,6 +665,10 @@ var Zepto = (function() {
643
665
  }) :
644
666
  (this[0] && this[0][name])
645
667
  },
668
+ removeProp: function(name){
669
+ name = propMap[name] || name
670
+ return this.each(function(){ delete this[name] })
671
+ },
646
672
  data: function(name, value){
647
673
  var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()
648
674
 
@@ -653,14 +679,16 @@ var Zepto = (function() {
653
679
  return data !== null ? deserializeValue(data) : undefined
654
680
  },
655
681
  val: function(value){
656
- return 0 in arguments ?
657
- this.each(function(idx){
682
+ if (0 in arguments) {
683
+ if (value == null) value = ""
684
+ return this.each(function(idx){
658
685
  this.value = funcArg(this, value, idx, this.value)
659
- }) :
660
- (this[0] && (this[0].multiple ?
686
+ })
687
+ } else {
688
+ return this[0] && (this[0].multiple ?
661
689
  $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :
662
690
  this[0].value)
663
- )
691
+ }
664
692
  },
665
693
  offset: function(coordinates){
666
694
  if (coordinates) return this.each(function(index){
@@ -676,7 +704,7 @@ var Zepto = (function() {
676
704
  $this.css(props)
677
705
  })
678
706
  if (!this.length) return null
679
- if (!$.contains(document.documentElement, this[0]))
707
+ if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))
680
708
  return {top: 0, left: 0}
681
709
  var obj = this[0].getBoundingClientRect()
682
710
  return {
@@ -688,13 +716,14 @@ var Zepto = (function() {
688
716
  },
689
717
  css: function(property, value){
690
718
  if (arguments.length < 2) {
691
- var computedStyle, element = this[0]
692
- if(!element) return
693
- computedStyle = getComputedStyle(element, '')
694
- if (typeof property == 'string')
695
- return element.style[camelize(property)] || computedStyle.getPropertyValue(property)
696
- else if (isArray(property)) {
719
+ var element = this[0]
720
+ if (typeof property == 'string') {
721
+ if (!element) return
722
+ return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)
723
+ } else if (isArray(property)) {
724
+ if (!element) return
697
725
  var props = {}
726
+ var computedStyle = getComputedStyle(element, '')
698
727
  $.each(property, function(_, prop){
699
728
  props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))
700
729
  })
@@ -846,8 +875,17 @@ var Zepto = (function() {
846
875
  $.fn[operator] = function(){
847
876
  // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings
848
877
  var argType, nodes = $.map(arguments, function(arg) {
878
+ var arr = []
849
879
  argType = type(arg)
850
- return argType == "object" || argType == "array" || arg == null ?
880
+ if (argType == "array") {
881
+ arg.forEach(function(el) {
882
+ if (el.nodeType !== undefined) return arr.push(el)
883
+ else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())
884
+ arr = arr.concat(zepto.fragment(el))
885
+ })
886
+ return arr
887
+ }
888
+ return argType == "object" || arg == null ?
851
889
  arg : zepto.fragment(arg)
852
890
  }),
853
891
  parent, copyByClone = this.length > 1
@@ -871,8 +909,10 @@ var Zepto = (function() {
871
909
  parent.insertBefore(node, target)
872
910
  if (parentInDocument) traverseNode(node, function(el){
873
911
  if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&
874
- (!el.type || el.type === 'text/javascript') && !el.src)
875
- window['eval'].call(window, el.innerHTML)
912
+ (!el.type || el.type === 'text/javascript') && !el.src){
913
+ var target = el.ownerDocument ? el.ownerDocument.defaultView : window
914
+ target['eval'].call(target, el.innerHTML)
915
+ }
876
916
  })
877
917
  })
878
918
  })
@@ -1018,7 +1058,7 @@ window.$ === undefined && (window.$ = Zepto)
1018
1058
 
1019
1059
  var returnTrue = function(){return true},
1020
1060
  returnFalse = function(){return false},
1021
- ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$)/,
1061
+ ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,
1022
1062
  eventMethods = {
1023
1063
  preventDefault: 'isDefaultPrevented',
1024
1064
  stopImmediatePropagation: 'isImmediatePropagationStopped',
@@ -1038,6 +1078,8 @@ window.$ === undefined && (window.$ = Zepto)
1038
1078
  event[predicate] = returnFalse
1039
1079
  })
1040
1080
 
1081
+ event.timeStamp || (event.timeStamp = Date.now())
1082
+
1041
1083
  if (source.defaultPrevented !== undefined ? source.defaultPrevented :
1042
1084
  'returnValue' in source ? source.returnValue === false :
1043
1085
  source.getPreventDefault && source.getPreventDefault())
@@ -1172,7 +1214,7 @@ window.$ === undefined && (window.$ = Zepto)
1172
1214
  })(Zepto)
1173
1215
 
1174
1216
  ;(function($){
1175
- var jsonpID = 0,
1217
+ var jsonpID = +new Date(),
1176
1218
  document = window.document,
1177
1219
  key,
1178
1220
  name,
@@ -1240,6 +1282,12 @@ window.$ === undefined && (window.$ = Zepto)
1240
1282
  ajaxStop(settings)
1241
1283
  }
1242
1284
 
1285
+ function ajaxDataFilter(data, type, settings) {
1286
+ if (settings.dataFilter == empty) return data
1287
+ var context = settings.context
1288
+ return settings.dataFilter.call(context, data, type)
1289
+ }
1290
+
1243
1291
  // Empty function, used as default callback
1244
1292
  function empty() {}
1245
1293
 
@@ -1248,7 +1296,7 @@ window.$ === undefined && (window.$ = Zepto)
1248
1296
 
1249
1297
  var _callbackName = options.jsonpCallback,
1250
1298
  callbackName = ($.isFunction(_callbackName) ?
1251
- _callbackName() : _callbackName) || ('jsonp' + (++jsonpID)),
1299
+ _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),
1252
1300
  script = document.createElement('script'),
1253
1301
  originalCallback = window[callbackName],
1254
1302
  responseData,
@@ -1330,7 +1378,11 @@ window.$ === undefined && (window.$ = Zepto)
1330
1378
  // Whether data should be serialized to string
1331
1379
  processData: true,
1332
1380
  // Whether the browser should be allowed to cache GET responses
1333
- cache: true
1381
+ cache: true,
1382
+ //Used to handle the raw response data of XMLHttpRequest.
1383
+ //This is a pre-filtering function to sanitize the response.
1384
+ //The sanitized response should be returned
1385
+ dataFilter: empty
1334
1386
  }
1335
1387
 
1336
1388
  function mimeToDataType(mime) {
@@ -1350,7 +1402,7 @@ window.$ === undefined && (window.$ = Zepto)
1350
1402
  function serializeData(options) {
1351
1403
  if (options.processData && options.data && $.type(options.data) != "string")
1352
1404
  options.data = $.param(options.data, options.traditional)
1353
- if (options.data && (!options.type || options.type.toUpperCase() == 'GET'))
1405
+ if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))
1354
1406
  options.url = appendQuery(options.url, options.data), options.data = undefined
1355
1407
  }
1356
1408
 
@@ -1427,6 +1479,8 @@ window.$ === undefined && (window.$ = Zepto)
1427
1479
 
1428
1480
  try {
1429
1481
  // http://perfectionkills.com/global-eval-what-are-the-options/
1482
+ // sanitize response accordingly if data filter callback provided
1483
+ result = ajaxDataFilter(result, dataType, settings)
1430
1484
  if (dataType == 'script') (1,eval)(result)
1431
1485
  else if (dataType == 'xml') result = xhr.responseXML
1432
1486
  else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)
@@ -1448,11 +1502,11 @@ window.$ === undefined && (window.$ = Zepto)
1448
1502
  return xhr
1449
1503
  }
1450
1504
 
1451
- if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]
1452
-
1453
1505
  var async = 'async' in settings ? settings.async : true
1454
1506
  xhr.open(settings.type, settings.url, async, settings.username, settings.password)
1455
1507
 
1508
+ if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]
1509
+
1456
1510
  for (name in headers) nativeSetHeader.apply(xhr, headers[name])
1457
1511
 
1458
1512
  if (settings.timeout > 0) abortTimeout = setTimeout(function(){
@@ -1582,13 +1636,15 @@ window.$ === undefined && (window.$ = Zepto)
1582
1636
  try {
1583
1637
  getComputedStyle(undefined)
1584
1638
  } catch(e) {
1585
- var nativeGetComputedStyle = getComputedStyle;
1586
- window.getComputedStyle = function(element){
1639
+ var nativeGetComputedStyle = getComputedStyle
1640
+ window.getComputedStyle = function(element, pseudoElement){
1587
1641
  try {
1588
- return nativeGetComputedStyle(element)
1642
+ return nativeGetComputedStyle(element, pseudoElement)
1589
1643
  } catch(e) {
1590
1644
  return null
1591
1645
  }
1592
1646
  }
1593
1647
  }
1594
1648
  })()
1649
+ return Zepto
1650
+ }))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zepto-for-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Vermaas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-06 00:00:00.000000000 Z
11
+ date: 2016-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -61,8 +61,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  version: '0'
62
62
  requirements: []
63
63
  rubyforge_project:
64
- rubygems_version: 2.4.5.1
64
+ rubygems_version: 2.5.1
65
65
  signing_key:
66
66
  specification_version: 4
67
67
  summary: Zepto.js for the rails asset pipeline
68
68
  test_files: []
69
+ has_rdoc: