From 3abf465aec2a71389f7f0d76b623dd35960116ca Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Thu, 7 May 2015 04:00:46 +0700 Subject: [PATCH] changing build flow --- build/build.sh | 37 ------------------------------------- dist/ua-parser.pack.js | 9 +++++++++ package.json | 3 ++- readme.md | 40 ++++++++++++++++++++-------------------- 4 files changed, 31 insertions(+), 58 deletions(-) delete mode 100755 build/build.sh create mode 100644 dist/ua-parser.pack.js diff --git a/build/build.sh b/build/build.sh deleted file mode 100755 index b2a8336..0000000 --- a/build/build.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -# dependencies -JSHINT_DIR="node_modules/jshint/bin/jshint" -MOCHA_DIR="node_modules/mocha/bin/mocha" -UGLIFY_DIR="node_modules/uglify-js/bin/uglifyjs" - -# check module directory & install if not found -function check_module { - if ! type $2 &> /dev/null - then - echo "$2 is not found" - if ! type "npm" &> /dev/null - then - echo "npm is not installed" - echo "Exiting" - exit 1 - else - echo "Installing $1..." - npm install $1 - fi - fi -} - -check_module "jshint" $JSHINT_DIR -check_module "mocha" $MOCHA_DIR -check_module "uglify-js" $UGLIFY_DIR - -echo "Verifiying code..." -$JSHINT_DIR src/ua-parser.js - -echo "Running test..." -$MOCHA_DIR -R nyan test/test.js - -echo "Minifying script..." -$UGLIFY_DIR src/ua-parser.js > dist/ua-parser.min.js --comments '/UAParser\.js/' -echo "OK" diff --git a/dist/ua-parser.pack.js b/dist/ua-parser.pack.js new file mode 100644 index 0000000..7911c24 --- /dev/null +++ b/dist/ua-parser.pack.js @@ -0,0 +1,9 @@ +/** + * UAParser.js v0.7.7 + * Lightweight JavaScript-based User-Agent string parser + * https://github.com/faisalman/ua-parser-js + * + * Copyright © 2012-2015 Faisal Salman + * Dual licensed under GPLv2 & MIT + */ +!function(i,s){"use strict";var e="0.7.7",o="",r="?",n="function",a="undefined",t="object",w="string",l="major",d="model",p="name",c="type",u="vendor",m="version",f="architecture",g="console",b="mobile",h="tablet",v="smarttv",x="wearable",k="embedded",y={extend:function(i,s){for(var e in s)-1!=="browser cpu device engine os".indexOf(e)&&s[e].length%2===0&&(i[e]=s[e].concat(i[e]));return i},has:function(i,s){return"string"==typeof i?-1!==s.toLowerCase().indexOf(i.toLowerCase()):!1},lowerize:function(i){return i.toLowerCase()},major:function(i){return typeof i===w?i.split(".")[0]:s}},A={rgx:function(){for(var i,e,o,r,w,l,d,p=0,c=arguments;p0?2==w.length?i[w[0]]=typeof w[1]==n?w[1].call(this,d):w[1]:3==w.length?i[w[0]]=typeof w[1]!==n||w[1].exec&&w[1].test?d?d.replace(w[1],w[2]):s:d?w[1].call(this,d,w[2]):s:4==w.length&&(i[w[0]]=d?w[3].call(this,d.replace(w[1],w[2])):s):i[w]=d?d:s;p+=2}return i},str:function(i,e){for(var o in e)if(typeof e[o]===t&&e[o].length>0){for(var n=0;n dist/ua-parser.min.js --comments '/UAParser\\.js/' && uglifyjs src/ua-parser.js > dist/ua-parser.pack.js --comments '/UAParser\\.js/' --compress --mangle", + "test": "jshint src/ua-parser.js && mocha -R nyan test/test.js", "verup": "node ./build/verup.js" }, "devDependencies": { diff --git a/readme.md b/readme.md index 8be4d91..8a62201 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ # UAParser.js -Lightweight JavaScript-based User-Agent string parser. Supports browser & node.js environment. Also available as jQuery/Zepto plugin, Component package, Bower package, Meteor package, & AMD module +Lightweight JavaScript-based User-Agent string parser. Supports browser & node.js environment. Also available as jQuery/Zepto plugin, Component/Bower/Meteor package, & RequireJS/AMD module [![Build Status](https://travis-ci.org/faisalman/ua-parser-js.svg?branch=master)](https://travis-ci.org/faisalman/ua-parser-js) @@ -30,7 +30,7 @@ Mosaic, Mozilla, Netfront, Netscape, NetSurf, Nokia, OmniWeb, Opera [Mini/Mobi/T Phoenix, Polaris, QQBrowser, RockMelt, Silk, Skyfire, SeaMonkey, SlimBrowser, Swiftfox, Tizen, UCBrowser, Vivaldi, w3m, Yandex -# 'browser.version' & 'browser.major' determined dynamically +# 'browser.version' determined dynamically ``` * `getDevice()` @@ -112,8 +112,7 @@ ppc, sparc, sparc64 ua: "", browser: { name: "", - version: "", - major: "" + version: "" }, engine: { name: "", @@ -142,7 +141,7 @@ ppc, sparc, sparc64 // this will also produce the same result (without instantiation): // var result = UAParser(uastring); - console.log(result.browser); // {name: "Chromium", major: "15", version: "15.0.874.106"} + console.log(result.browser); // {name: "Chromium", version: "15.0.874.106"} console.log(result.device); // {model: undefined, type: undefined, vendor: undefined} console.log(result.os); // {name: "Ubuntu", version: "11.10"} console.log(result.os.version); // "11.10" @@ -167,20 +166,6 @@ ppc, sparc, sparc64 ``` -### Extending regex patterns - -* `UAParser(uastring[, extensions])` - -Pass your own regexes to extend the limited matching rules. - -```js -// Example: -var uaString = 'ownbrowser/1.3'; -var ownBrowser = [[/(ownbrowser)\/((\d+)?[\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION, UAParser.BROWSER.MAJOR]]; -var parser = new UAParser(uaString, {browser: ownBrowser}); -console.log(parser.getBrowser()); // {name: "ownbrowser", major: "1", version: "1.3"} -``` - ### Using node.js ```sh @@ -250,12 +235,27 @@ console.log($.ua.device); // {vendor: "Motorola", model: "Xoom", type: console.log(parseInt($.ua.browser.version.split('.')[0], 10)); // 4 ``` +### Extending regex patterns + +* `UAParser(uastring[, extensions])` + +Pass your own regexes to extend the limited matching rules. + +```js +// Example: +var uaString = 'ownbrowser/1.3'; +var ownBrowser = [[/(ownbrowser)\/((\d+)?[\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION, UAParser.BROWSER.MAJOR]]; +var parser = new UAParser(uaString, {browser: ownBrowser}); +console.log(parser.getBrowser()); // {name: "ownbrowser", major: "1", version: "1.3"} +``` + ## Development Verify, test, & minify script ```sh -$ npm test +$ npm run test +$ npm run build ``` Then submit a pull request to https://github.com/faisalman/ua-parser-js under `develop` branch.