diff --git a/attr.built.no-oldie.js b/attr.built.no-oldie.js new file mode 100644 index 00000000..efacc330 --- /dev/null +++ b/attr.built.no-oldie.js @@ -0,0 +1,79 @@ + +define('lib/attr.getters',['require','exports','module'],function(require, get){ + + get['class'] = function(){ + return this.getAttribute('class') || this.className + } + + get['for'] = function(){ + return ('htmlFor' in this) ? this.htmlFor : this.getAttribute('for') + } + + get.href = function(){ + return ('href' in this) ? this.getAttribute('href', 2) : this.getAttribute('href') + } + + get.style = function(){ + return (this.style) ? this.style.cssText : this.getAttribute('style') + } + + get.type = function(){ + return this.getAttribute('type') + } + + get.tabindex = function(){ + var attributeNode = this.getAttributeNode('tabindex') + return (attributeNode && attributeNode.specified) ? attributeNode.nodeValue : null + } + + get.maxlength = + get.maxLength = function(){ + var attributeNode = this.getAttributeNode('maxLength') + return (attributeNode && attributeNode.specified) ? attributeNode.nodeValue : null + } + +}) + +define('lib/attr',['require','exports','module','./attr.has','./attr.getters'],function(require, attr){ + + var has = require('./attr.has') + + var getters = require('./attr.getters') || {} + + attr.define = function(name, fn){ + getters[name] = fn + return this + } + + attr.lookup = function(name){ + return getters[name] + } + + true + ? + attr.has = function(node, attribute){ + return node.hasAttribute(attribute) + } + : + attr.has = function(node, attribute){ + // IE6-7 (at least) doesn't implement hasAttribute + node = node.getAttributeNode(attribute) + return !!(node && (node.specified || node.nodeValue)) + } + + true + ? + attr.get = function(node, attribute){ + var getter = getters[attribute] + if (getter) return getter.call(node, attribute) + return node.getAttribute(name) + } + : + attr.get = function(node, attribute){ + // in IE6-7, if a form has an input of id x, form.getAttribute(x) returns a reference to the input + var getter = this.getters[attribute] + if (getter) return getter.call(node, attribute) + var attributeNode = node.getAttributeNode(attribute) + return attributeNode ? attributeNode.nodeValue : null + } +}) diff --git a/build/attr.build.js b/build/attr.build.js new file mode 100644 index 00000000..9592e1c4 --- /dev/null +++ b/build/attr.build.js @@ -0,0 +1,34 @@ +// more info: https://github.com/jrburke/r.js/blob/master/build/example.build.js + +module.exports = { + baseUrl: '../' + , + name: 'lib/attr' + , + out: '../attr.built.no-oldie.js' + , + paths:{ + 'lib/attr.has': 'empty:' + } + , + has:{ + 'has': false, + 'dom.hasAttribute': true, + 'dom.getAttribute': true + } + , + optimize:'none' + // , + // pragmas:{// true = yes, remove + // 'has':true, + // 'oldie':true + // } + , + wrap:true + // , + // uglify:{ + // beautify:true + // } +} + +if (module.id == '.') require('requirejs').optimize(module.exports, console.log) diff --git a/build/slick.build.js b/build/slick.build.js new file mode 100755 index 00000000..91c42cd7 --- /dev/null +++ b/build/slick.build.js @@ -0,0 +1,16 @@ +#!/usr/bin/env node +var requirejs = require('requirejs') + +var configs = [ + require('./attr.build') +] + +configs.forEach(function(config){ + requirejs.optimize(config, function (buildResponse) { + //buildResponse is just a text output of the modules + //included. Load the built file for the contents. + //Use config.out to get the optimized file contents. + // var contents = fs.readFileSync(config.out, 'utf8') + console.log(buildResponse) + }) +}) diff --git a/example/example.html b/example/example.html new file mode 100644 index 00000000..9dbdb0fe --- /dev/null +++ b/example/example.html @@ -0,0 +1,24 @@ + + +
+ +