ashtonw-slather 1.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +45 -0
- data/.travis.yml +19 -0
- data/CHANGELOG.md +132 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +206 -0
- data/Rakefile +1 -0
- data/assets/highlight.pack.js +1 -0
- data/assets/list.min.js +1 -0
- data/assets/slather.css +316 -0
- data/bin/slather +117 -0
- data/docs/logo.jpg +0 -0
- data/lib/cocoapods_plugin.rb +10 -0
- data/lib/slather.rb +20 -0
- data/lib/slather/coverage_file.rb +195 -0
- data/lib/slather/coverage_service/cobertura_xml_output.rb +183 -0
- data/lib/slather/coverage_service/coveralls.rb +186 -0
- data/lib/slather/coverage_service/gutter_json_output.rb +50 -0
- data/lib/slather/coverage_service/hardcover.rb +61 -0
- data/lib/slather/coverage_service/html_output.rb +244 -0
- data/lib/slather/coverage_service/simple_output.rb +31 -0
- data/lib/slather/coveralls_coverage_file.rb +13 -0
- data/lib/slather/project.rb +132 -0
- data/lib/slather/version.rb +3 -0
- data/slather.gemspec +32 -0
- data/spec/fixtures/fixtures.xcodeproj/project.pbxproj +496 -0
- data/spec/fixtures/fixtures.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/spec/fixtures/fixtures.xcodeproj/xcshareddata/xcschemes/fixtures.xcscheme +69 -0
- data/spec/fixtures/fixtures/Supporting Files/fixtures-Prefix.pch +9 -0
- data/spec/fixtures/fixtures/fixtures.h +16 -0
- data/spec/fixtures/fixtures/fixtures.m +23 -0
- data/spec/fixtures/fixtures/fixtures_cpp.cpp +9 -0
- data/spec/fixtures/fixtures/fixtures_cpp.h +6 -0
- data/spec/fixtures/fixtures/fixtures_m.h +5 -0
- data/spec/fixtures/fixtures/fixtures_m.m +5 -0
- data/spec/fixtures/fixtures/fixtures_mm.h +5 -0
- data/spec/fixtures/fixtures/fixtures_mm.mm +5 -0
- data/spec/fixtures/fixtures/more_files/Branches.h +15 -0
- data/spec/fixtures/fixtures/more_files/Branches.m +45 -0
- data/spec/fixtures/fixtures/more_files/Empty.h +13 -0
- data/spec/fixtures/fixtures/more_files/Empty.m +13 -0
- data/spec/fixtures/fixtures/more_files/peekaview.h +13 -0
- data/spec/fixtures/fixtures/more_files/peekaview.m +31 -0
- data/spec/fixtures/fixturesTests/BranchesTests.m +38 -0
- data/spec/fixtures/fixturesTests/Supporting Files/en.lproj/InfoPlist.strings +2 -0
- data/spec/fixtures/fixturesTests/Supporting Files/fixturesTests-Info.plist +22 -0
- data/spec/fixtures/fixturesTests/fixturesTests.m +36 -0
- data/spec/fixtures/fixturesTests/peekaviewTests.m +34 -0
- data/spec/fixtures/fixtures_html/Branches.m.html +261 -0
- data/spec/fixtures/fixtures_html/BranchesTests.m.html +228 -0
- data/spec/fixtures/fixtures_html/Empty.m.html +30 -0
- data/spec/fixtures/fixtures_html/fixtures.m.html +151 -0
- data/spec/fixtures/fixtures_html/fixturesTests.m.html +216 -0
- data/spec/fixtures/fixtures_html/fixtures_cpp.cpp.html +30 -0
- data/spec/fixtures/fixtures_html/fixtures_m.m.html +30 -0
- data/spec/fixtures/fixtures_html/fixtures_mm.mm.html +30 -0
- data/spec/fixtures/fixtures_html/index.html +134 -0
- data/spec/fixtures/fixtures_html/peekaview.m.html +190 -0
- data/spec/fixtures/fixtures_html/peekaviewTests.m.html +206 -0
- data/spec/fixtures/gutter.json +1 -0
- data/spec/slather/cocoapods_plugin_spec.rb +21 -0
- data/spec/slather/coverage_file_spec.rb +337 -0
- data/spec/slather/coverage_service/cobertura_xml_spec.rb +49 -0
- data/spec/slather/coverage_service/coveralls_spec.rb +122 -0
- data/spec/slather/coverage_service/gutter_json_spec.rb +28 -0
- data/spec/slather/coverage_service/hardcover_spec.rb +87 -0
- data/spec/slather/coverage_service/html_output_spec.rb +179 -0
- data/spec/slather/coverage_service/simple_output_spec.rb +35 -0
- data/spec/slather/fixtures.gcno +0 -0
- data/spec/slather/project_spec.rb +288 -0
- data/spec/spec_helper.rb +27 -0
- metadata +319 -0
@@ -0,0 +1 @@
|
|
1
|
+
!function(e){"undefined"!=typeof exports?e(exports):(window.hljs=e({}),"function"==typeof define&&define.amd&&define("hljs",[],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/no-?highlight|plain|text/.test(e)}function i(e){var n,t,r,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=/\blang(?:uage)?-([\w-]+)\b/.exec(i))return E(t[1])?t[1]:"no-highlight";for(i=i.split(/\s+/),n=0,r=i.length;r>n;n++)if(E(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset<r[0].offset?e:r:"start"==r[0].event?e:r:e.length?e:r}function o(e){function r(e){return" "+e.nodeName+'="'+n(e.value)+'"'}f+="<"+t(e)+Array.prototype.map.call(e.attributes,r).join("")+">"}function u(e){f+="</"+t(e)+">"}function c(e){("start"==e.event?o:u)(e.node)}for(var s=0,f="",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else"start"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\b\w+\b/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t<n.c.length;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?"":w.classPrefix,i='<span class="'+a,o=t?"":"</span>";return i+=e+'">',i+n+o}function p(){if(!L.k)return n(B);var e="",t=0;L.lR.lastIndex=0;for(var r=L.lR.exec(B);r;){e+=n(B.substr(t,r.index-t));var a=g(L,r);a?(y+=a[1],e+=h(a[0],n(r[0]))):e+=n(r[0]),t=L.lR.lastIndex,r=L.lR.exec(B)}return e+n(B.substr(t))}function d(){if(L.sL&&!x[L.sL])return n(B);var e=L.sL?f(L.sL,B,!0,M[L.sL]):l(B);return L.r>0&&(y+=e.r),"continuous"==L.subLanguageMode&&(M[L.sL]=e.top),h(e.language,e.value,!1,!0)}function b(){return void 0!==L.sL?d():p()}function v(e,t){var r=e.cN?h(e.cN,"",!0):"";e.rB?(k+=r,B=""):e.eB?(k+=n(t)+r,B=""):(k+=r,B=t),L=Object.create(e,{parent:{value:L}})}function m(e,t){if(B+=e,void 0===t)return k+=b(),0;var r=o(t,L);if(r)return k+=b(),v(r,t),r.rB?0:t.length;var a=u(L,t);if(a){var i=L;i.rE||i.eE||(B+=t),k+=b();do L.cN&&(k+="</span>"),y+=L.r,L=L.parent;while(L!=a.parent);return i.eE&&(k+=n(t)),B="",a.starts&&v(a.starts,""),i.rE?0:t.length}if(c(t,L))throw new Error('Illegal lexeme "'+t+'" for mode "'+(L.cN||"<unnamed>")+'"');return B+=t,t.length||1}var N=E(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var R,L=i||N,M={},k="";for(R=L;R!=N;R=R.parent)R.cN&&(k=h(R.cN,"",!0)+k);var B="",y=0;try{for(var C,j,I=0;;){if(L.t.lastIndex=I,C=L.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),R=L;R.parent;R=R.parent)R.cN&&(k+="</span>");return{r:y,value:k,language:e,top:L}}catch(O){if(-1!=O.message.indexOf("Illegal"))return{r:0,value:n(t)};throw O}}function l(e,t){t=t||w.languages||Object.keys(x);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(E(n)){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function g(e){return w.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,n){return n.replace(/\t/g,w.tabReplace)})),w.useBR&&(e=e.replace(/\n/g,"<br>")),e}function h(e,n,t){var r=n?R[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n=i(e);if(!a(n)){var t;w.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):t=e;var r=t.textContent,o=n?f(n,r,!0):l(r),s=u(t);if(s.length){var p=document.createElementNS("http://www.w3.org/1999/xhtml","div");p.innerHTML=o.value,o.value=c(s,u(p),r)}o.value=g(o.value),e.innerHTML=o.value,e.className=h(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){w=o(w,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){R[e]=n})}function N(){return Object.keys(x)}function E(e){return x[e]||x[R[e]]}var w={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},x={},R={};return e.highlight=f,e.highlightAuto=l,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=E,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="\\b(0[xX][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",bK:"TODO FIXME NOTE BUG XXX",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e});hljs.registerLanguage("json",function(e){var t={literal:"true false null"},i=[e.QSM,e.CNM],l={cN:"value",e:",",eW:!0,eE:!0,c:i,k:t},c={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:!0,eE:!0,c:[e.BE],i:"\\n",starts:l}],i:"\\S"},n={b:"\\[",e:"\\]",c:[e.inherit(l,{cN:null})],i:"\\S"};return i.splice(i.length,0,c,n),{c:i,k:t,i:"\\S"}});hljs.registerLanguage("objectivec",function(e){var t={cN:"built_in",b:"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\w+"},i={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},o=/[a-zA-Z@][a-zA-Z0-9_]*/,n="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],k:i,l:o,i:"</",c:[t,e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:"string",v:[{b:'@"',e:'"',i:"\\n",c:[e.BE]},{b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"}]},{cN:"preprocessor",b:"#",e:"$",c:[{cN:"title",v:[{b:'"',e:'"'},{b:"<",e:">"}]}]},{cN:"class",b:"("+n.split(" ").join("|")+")\\b",e:"({|$)",eE:!0,k:n,l:o,c:[e.UTM]},{cN:"variable",b:"\\."+e.UIR,r:0}]}});hljs.registerLanguage("cpp",function(t){var e={cN:"keyword",b:"[a-z\\d_]*_t"},r={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c","cc","h","c++","h++","hpp"],k:r,i:"</",c:[e,t.CLCM,t.CBCM,{cN:"string",v:[t.inherit(t.QSM,{b:'((u8?|U)|L)?"'}),{b:'(u8?|U)?R"',e:'"',c:[t.BE]},{b:"'\\\\?.",e:"'",i:"."}]},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},t.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line pragma",c:[{b:/\\\n/,r:0},{b:'include\\s*[<"]',e:'[>"]',k:"include",i:"\\n"},t.CLCM]},{b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:r,c:["self",e]},{b:t.IR+"::",k:r},{bK:"new throw return else",r:0},{cN:"function",b:"("+t.IR+"\\s+)+"+t.IR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:r,c:[{b:t.IR+"\\s*\\(",rB:!0,c:[t.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:r,r:0,c:[t.CBCM]},t.CLCM,t.CBCM]}]}});
|
data/assets/list.min.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
!function(){function a(b,c,d){var e=a.resolve(b);if(null==e){d=d||b,c=c||"root";var f=new Error('Failed to require "'+d+'" from "'+c+'"');throw f.path=d,f.parent=c,f.require=!0,f}var g=a.modules[e];if(!g._resolving&&!g.exports){var h={};h.exports={},h.client=h.component=!0,g._resolving=!0,g.call(this,h.exports,a.relative(e),h),delete g._resolving,g.exports=h.exports}return g.exports}a.modules={},a.aliases={},a.resolve=function(b){"/"===b.charAt(0)&&(b=b.slice(1));for(var c=[b,b+".js",b+".json",b+"/index.js",b+"/index.json"],d=0;d<c.length;d++){var b=c[d];if(a.modules.hasOwnProperty(b))return b;if(a.aliases.hasOwnProperty(b))return a.aliases[b]}},a.normalize=function(a,b){var c=[];if("."!=b.charAt(0))return b;a=a.split("/"),b=b.split("/");for(var d=0;d<b.length;++d)".."==b[d]?a.pop():"."!=b[d]&&""!=b[d]&&c.push(b[d]);return a.concat(c).join("/")},a.register=function(b,c){a.modules[b]=c},a.alias=function(b,c){if(!a.modules.hasOwnProperty(b))throw new Error('Failed to alias "'+b+'", it does not exist');a.aliases[c]=b},a.relative=function(b){function c(a,b){for(var c=a.length;c--;)if(a[c]===b)return c;return-1}function d(c){var e=d.resolve(c);return a(e,b,c)}var e=a.normalize(b,"..");return d.resolve=function(d){var f=d.charAt(0);if("/"==f)return d.slice(1);if("."==f)return a.normalize(e,d);var g=b.split("/"),h=c(g,"deps")+1;return h||(h=0),d=g.slice(0,h+1).join("/")+"/deps/"+d},d.exists=function(b){return a.modules.hasOwnProperty(d.resolve(b))},d},a.register("component-classes/index.js",function(a,b,c){function d(a){if(!a)throw new Error("A DOM element reference is required");this.el=a,this.list=a.classList}var e=b("indexof"),f=/\s+/,g=Object.prototype.toString;c.exports=function(a){return new d(a)},d.prototype.add=function(a){if(this.list)return this.list.add(a),this;var b=this.array(),c=e(b,a);return~c||b.push(a),this.el.className=b.join(" "),this},d.prototype.remove=function(a){if("[object RegExp]"==g.call(a))return this.removeMatching(a);if(this.list)return this.list.remove(a),this;var b=this.array(),c=e(b,a);return~c&&b.splice(c,1),this.el.className=b.join(" "),this},d.prototype.removeMatching=function(a){for(var b=this.array(),c=0;c<b.length;c++)a.test(b[c])&&this.remove(b[c]);return this},d.prototype.toggle=function(a,b){return this.list?("undefined"!=typeof b?b!==this.list.toggle(a,b)&&this.list.toggle(a):this.list.toggle(a),this):("undefined"!=typeof b?b?this.add(a):this.remove(a):this.has(a)?this.remove(a):this.add(a),this)},d.prototype.array=function(){var a=this.el.className.replace(/^\s+|\s+$/g,""),b=a.split(f);return""===b[0]&&b.shift(),b},d.prototype.has=d.prototype.contains=function(a){return this.list?this.list.contains(a):!!~e(this.array(),a)}}),a.register("segmentio-extend/index.js",function(a,b,c){c.exports=function(a){for(var b,c=Array.prototype.slice.call(arguments,1),d=0;b=c[d];d++)if(b)for(var e in b)a[e]=b[e];return a}}),a.register("component-indexof/index.js",function(a,b,c){c.exports=function(a,b){if(a.indexOf)return a.indexOf(b);for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}}),a.register("component-event/index.js",function(a){var b=window.addEventListener?"addEventListener":"attachEvent",c=window.removeEventListener?"removeEventListener":"detachEvent",d="addEventListener"!==b?"on":"";a.bind=function(a,c,e,f){return a[b](d+c,e,f||!1),e},a.unbind=function(a,b,e,f){return a[c](d+b,e,f||!1),e}}),a.register("timoxley-to-array/index.js",function(a,b,c){function d(a){return"[object Array]"===Object.prototype.toString.call(a)}c.exports=function(a){if("undefined"==typeof a)return[];if(null===a)return[null];if(a===window)return[window];if("string"==typeof a)return[a];if(d(a))return a;if("number"!=typeof a.length)return[a];if("function"==typeof a&&a instanceof Function)return[a];for(var b=[],c=0;c<a.length;c++)(Object.prototype.hasOwnProperty.call(a,c)||c in a)&&b.push(a[c]);return b.length?b:[]}}),a.register("javve-events/index.js",function(a,b){var c=b("event"),d=b("to-array");a.bind=function(a,b,e,f){a=d(a);for(var g=0;g<a.length;g++)c.bind(a[g],b,e,f)},a.unbind=function(a,b,e,f){a=d(a);for(var g=0;g<a.length;g++)c.unbind(a[g],b,e,f)}}),a.register("javve-get-by-class/index.js",function(a,b,c){c.exports=function(){return document.getElementsByClassName?function(a,b,c){return c?a.getElementsByClassName(b)[0]:a.getElementsByClassName(b)}:document.querySelector?function(a,b,c){return b="."+b,c?a.querySelector(b):a.querySelectorAll(b)}:function(a,b,c){var d=[],e="*";null==a&&(a=document);for(var f=a.getElementsByTagName(e),g=f.length,h=new RegExp("(^|\\s)"+b+"(\\s|$)"),i=0,j=0;g>i;i++)if(h.test(f[i].className)){if(c)return f[i];d[j]=f[i],j++}return d}}()}),a.register("javve-get-attribute/index.js",function(a,b,c){c.exports=function(a,b){var c=a.getAttribute&&a.getAttribute(b)||null;if(!c)for(var d=a.attributes,e=d.length,f=0;e>f;f++)void 0!==b[f]&&b[f].nodeName===b&&(c=b[f].nodeValue);return c}}),a.register("javve-natural-sort/index.js",function(a,b,c){c.exports=function(a,b,c){var d,e,f=/(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,g=/(^[ ]*|[ ]*$)/g,h=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,i=/^0x[0-9a-f]+$/i,j=/^0/,c=c||{},k=function(a){return c.insensitive&&(""+a).toLowerCase()||""+a},l=k(a).replace(g,"")||"",m=k(b).replace(g,"")||"",n=l.replace(f,"\x00$1\x00").replace(/\0$/,"").replace(/^\0/,"").split("\x00"),o=m.replace(f,"\x00$1\x00").replace(/\0$/,"").replace(/^\0/,"").split("\x00"),p=parseInt(l.match(i))||1!=n.length&&l.match(h)&&Date.parse(l),q=parseInt(m.match(i))||p&&m.match(h)&&Date.parse(m)||null,r=c.desc?-1:1;if(q){if(q>p)return-1*r;if(p>q)return 1*r}for(var s=0,t=Math.max(n.length,o.length);t>s;s++){if(d=!(n[s]||"").match(j)&&parseFloat(n[s])||n[s]||0,e=!(o[s]||"").match(j)&&parseFloat(o[s])||o[s]||0,isNaN(d)!==isNaN(e))return isNaN(d)?1:-1;if(typeof d!=typeof e&&(d+="",e+=""),e>d)return-1*r;if(d>e)return 1*r}return 0}}),a.register("javve-to-string/index.js",function(a,b,c){c.exports=function(a){return a=void 0===a?"":a,a=null===a?"":a,a=a.toString()}}),a.register("component-type/index.js",function(a,b,c){var d=Object.prototype.toString;c.exports=function(a){switch(d.call(a)){case"[object Date]":return"date";case"[object RegExp]":return"regexp";case"[object Arguments]":return"arguments";case"[object Array]":return"array";case"[object Error]":return"error"}return null===a?"null":void 0===a?"undefined":a!==a?"nan":a&&1===a.nodeType?"element":typeof a.valueOf()}}),a.register("list.js/index.js",function(a,b,c){!function(a,d){"use strict";var e=a.document,f=b("get-by-class"),g=b("extend"),h=b("indexof"),i=function(a,c,i){var j,k=this,l=b("./src/item")(k),m=b("./src/add-async")(k),n=b("./src/parse")(k);j={start:function(){k.listClass="list",k.searchClass="search",k.sortClass="sort",k.page=200,k.i=1,k.items=[],k.visibleItems=[],k.matchingItems=[],k.searched=!1,k.filtered=!1,k.handlers={updated:[]},k.plugins={},k.helpers={getByClass:f,extend:g,indexOf:h},g(k,c),k.listContainer="string"==typeof a?e.getElementById(a):a,k.listContainer&&(k.list=f(k.listContainer,k.listClass,!0),k.templater=b("./src/templater")(k),k.search=b("./src/search")(k),k.filter=b("./src/filter")(k),k.sort=b("./src/sort")(k),this.items(),k.update(),this.plugins())},items:function(){n(k.list),i!==d&&k.add(i)},plugins:function(){for(var a=0;a<k.plugins.length;a++){var b=k.plugins[a];k[b.name]=b,b.init(k)}}},this.add=function(a,b){if(b)return m(a,b),void 0;var c=[],e=!1;a[0]===d&&(a=[a]);for(var f=0,g=a.length;g>f;f++){var h=null;a[f]instanceof l?(h=a[f],h.reload()):(e=k.items.length>k.page?!0:!1,h=new l(a[f],d,e)),k.items.push(h),c.push(h)}return k.update(),c},this.show=function(a,b){return this.i=a,this.page=b,k.update(),k},this.remove=function(a,b,c){for(var d=0,e=0,f=k.items.length;f>e;e++)k.items[e].values()[a]==b&&(k.templater.remove(k.items[e],c),k.items.splice(e,1),f--,e--,d++);return k.update(),d},this.get=function(a,b){for(var c=[],d=0,e=k.items.length;e>d;d++){var f=k.items[d];f.values()[a]==b&&c.push(f)}return c},this.size=function(){return k.items.length},this.clear=function(){return k.templater.clear(),k.items=[],k},this.on=function(a,b){return k.handlers[a].push(b),k},this.off=function(a,b){var c=k.handlers[a],d=h(c,b);return d>-1&&c.splice(d,1),k},this.trigger=function(a){for(var b=k.handlers[a].length;b--;)k.handlers[a][b](k);return k},this.reset={filter:function(){for(var a=k.items,b=a.length;b--;)a[b].filtered=!1;return k},search:function(){for(var a=k.items,b=a.length;b--;)a[b].found=!1;return k}},this.update=function(){var a=k.items,b=a.length;k.visibleItems=[],k.matchingItems=[],k.templater.clear();for(var c=0;b>c;c++)a[c].matching()&&k.matchingItems.length+1>=k.i&&k.visibleItems.length<k.page?(a[c].show(),k.visibleItems.push(a[c]),k.matchingItems.push(a[c])):a[c].matching()?(k.matchingItems.push(a[c]),a[c].hide()):a[c].hide();return k.trigger("updated"),k},j.start()};c.exports=i}(window)}),a.register("list.js/src/search.js",function(a,b,c){var d=b("events"),e=b("get-by-class"),f=b("to-string");c.exports=function(a){var b,c,g,h,i={resetList:function(){a.i=1,a.templater.clear(),h=void 0},setOptions:function(a){2==a.length&&a[1]instanceof Array?c=a[1]:2==a.length&&"function"==typeof a[1]?h=a[1]:3==a.length&&(c=a[1],h=a[2])},setColumns:function(){c=void 0===c?i.toArray(a.items[0].values()):c},setSearchString:function(a){a=f(a).toLowerCase(),a=a.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&"),g=a},toArray:function(a){var b=[];for(var c in a)b.push(c);return b}},j={list:function(){for(var b=0,c=a.items.length;c>b;b++)j.item(a.items[b])},item:function(a){a.found=!1;for(var b=0,d=c.length;d>b;b++)if(j.values(a.values(),c[b]))return a.found=!0,void 0},values:function(a,c){return a.hasOwnProperty(c)&&(b=f(a[c]).toLowerCase(),""!==g&&b.search(g)>-1)?!0:!1},reset:function(){a.reset.search(),a.searched=!1}},k=function(b){return a.trigger("searchStart"),i.resetList(),i.setSearchString(b),i.setOptions(arguments),i.setColumns(),""===g?j.reset():(a.searched=!0,h?h(g,c):j.list()),a.update(),a.trigger("searchComplete"),a.visibleItems};return a.handlers.searchStart=a.handlers.searchStart||[],a.handlers.searchComplete=a.handlers.searchComplete||[],d.bind(e(a.listContainer,a.searchClass),"keyup",function(b){var c=b.target||b.srcElement,d=""===c.value&&!a.searched;d||k(c.value)}),d.bind(e(a.listContainer,a.searchClass),"input",function(a){var b=a.target||a.srcElement;""===b.value&&k("")}),a.helpers.toString=f,k}}),a.register("list.js/src/sort.js",function(a,b,c){var d=b("natural-sort"),e=b("classes"),f=b("events"),g=b("get-by-class"),h=b("get-attribute");c.exports=function(a){a.sortFunction=a.sortFunction||function(a,b,c){return c.desc="desc"==c.order?!0:!1,d(a.values()[c.valueName],b.values()[c.valueName],c)};var b={els:void 0,clear:function(){for(var a=0,c=b.els.length;c>a;a++)e(b.els[a]).remove("asc"),e(b.els[a]).remove("desc")},getOrder:function(a){var b=h(a,"data-order");return"asc"==b||"desc"==b?b:e(a).has("desc")?"asc":e(a).has("asc")?"desc":"asc"},getInSensitive:function(a,b){var c=h(a,"data-insensitive");b.insensitive="true"===c?!0:!1},setOrder:function(a){for(var c=0,d=b.els.length;d>c;c++){var f=b.els[c];if(h(f,"data-sort")===a.valueName){var g=h(f,"data-order");"asc"==g||"desc"==g?g==a.order&&e(f).add(a.order):e(f).add(a.order)}}}},c=function(){a.trigger("sortStart"),options={};var c=arguments[0].currentTarget||arguments[0].srcElement||void 0;c?(options.valueName=h(c,"data-sort"),b.getInSensitive(c,options),options.order=b.getOrder(c)):(options=arguments[1]||options,options.valueName=arguments[0],options.order=options.order||"asc",options.insensitive="undefined"==typeof options.insensitive?!0:options.insensitive),b.clear(),b.setOrder(options),options.sortFunction=options.sortFunction||a.sortFunction,a.items.sort(function(a,b){return options.sortFunction(a,b,options)}),a.update(),a.trigger("sortComplete")};return a.handlers.sortStart=a.handlers.sortStart||[],a.handlers.sortComplete=a.handlers.sortComplete||[],b.els=g(a.listContainer,a.sortClass),f.bind(b.els,"click",c),a.on("searchStart",b.clear),a.on("filterStart",b.clear),a.helpers.classes=e,a.helpers.naturalSort=d,a.helpers.events=f,a.helpers.getAttribute=h,c}}),a.register("list.js/src/item.js",function(a,b,c){c.exports=function(a){return function(b,c,d){var e=this;this._values={},this.found=!1,this.filtered=!1;var f=function(b,c,d){if(void 0===c)d?e.values(b,d):e.values(b);else{e.elm=c;var f=a.templater.get(e,b);e.values(f)}};this.values=function(b,c){if(void 0===b)return e._values;for(var d in b)e._values[d]=b[d];c!==!0&&a.templater.set(e,e.values())},this.show=function(){a.templater.show(e)},this.hide=function(){a.templater.hide(e)},this.matching=function(){return a.filtered&&a.searched&&e.found&&e.filtered||a.filtered&&!a.searched&&e.filtered||!a.filtered&&a.searched&&e.found||!a.filtered&&!a.searched},this.visible=function(){return e.elm.parentNode==a.list?!0:!1},f(b,c,d)}}}),a.register("list.js/src/templater.js",function(a,b,c){var d=b("get-by-class"),e=function(a){function b(b){if(void 0===b){for(var c=a.list.childNodes,d=0,e=c.length;e>d;d++)if(void 0===c[d].data)return c[d];return null}if(-1!==b.indexOf("<")){var f=document.createElement("div");return f.innerHTML=b,f.firstChild}return document.getElementById(a.item)}var c=b(a.item),e=this;this.get=function(a,b){e.create(a);for(var c={},f=0,g=b.length;g>f;f++){var h=d(a.elm,b[f],!0);c[b[f]]=h?h.innerHTML:""}return c},this.set=function(a,b){if(!e.create(a))for(var c in b)if(b.hasOwnProperty(c)){var f=d(a.elm,c,!0);f&&("IMG"===f.tagName&&""!==b[c]?f.src=b[c]:f.innerHTML=b[c])}},this.create=function(a){if(void 0!==a.elm)return!1;var b=c.cloneNode(!0);return b.removeAttribute("id"),a.elm=b,e.set(a,a.values()),!0},this.remove=function(b){a.list.removeChild(b.elm)},this.show=function(b){e.create(b),a.list.appendChild(b.elm)},this.hide=function(b){void 0!==b.elm&&b.elm.parentNode===a.list&&a.list.removeChild(b.elm)},this.clear=function(){if(a.list.hasChildNodes())for(;a.list.childNodes.length>=1;)a.list.removeChild(a.list.firstChild)}};c.exports=function(a){return new e(a)}}),a.register("list.js/src/filter.js",function(a,b,c){c.exports=function(a){return a.handlers.filterStart=a.handlers.filterStart||[],a.handlers.filterComplete=a.handlers.filterComplete||[],function(b){if(a.trigger("filterStart"),a.i=1,a.reset.filter(),void 0===b)a.filtered=!1;else{a.filtered=!0;for(var c=a.items,d=0,e=c.length;e>d;d++){var f=c[d];f.filtered=b(f)?!0:!1}}return a.update(),a.trigger("filterComplete"),a.visibleItems}}}),a.register("list.js/src/add-async.js",function(a,b,c){c.exports=function(a){return function(b,c,d){var e=b.splice(0,100);d=d||[],d=d.concat(a.add(e)),b.length>0?setTimeout(function(){addAsync(b,c,d)},10):(a.update(),c(d))}}}),a.register("list.js/src/parse.js",function(a,b,c){c.exports=function(a){var c=b("./item")(a),d=function(a){for(var b=a.childNodes,c=[],d=0,e=b.length;e>d;d++)void 0===b[d].data&&c.push(b[d]);return c},e=function(b,d){for(var e=0,f=b.length;f>e;e++)a.items.push(new c(d,b[e]))},f=function(b,c){var d=b.splice(0,100);e(d,c),b.length>0?setTimeout(function(){init.items.indexAsync(b,c)},10):a.update()};return function(){var b=d(a.list),c=a.valueNames;a.indexAsync?f(b,c):e(b,c)}}}),a.alias("component-classes/index.js","list.js/deps/classes/index.js"),a.alias("component-classes/index.js","classes/index.js"),a.alias("component-indexof/index.js","component-classes/deps/indexof/index.js"),a.alias("segmentio-extend/index.js","list.js/deps/extend/index.js"),a.alias("segmentio-extend/index.js","extend/index.js"),a.alias("component-indexof/index.js","list.js/deps/indexof/index.js"),a.alias("component-indexof/index.js","indexof/index.js"),a.alias("javve-events/index.js","list.js/deps/events/index.js"),a.alias("javve-events/index.js","events/index.js"),a.alias("component-event/index.js","javve-events/deps/event/index.js"),a.alias("timoxley-to-array/index.js","javve-events/deps/to-array/index.js"),a.alias("javve-get-by-class/index.js","list.js/deps/get-by-class/index.js"),a.alias("javve-get-by-class/index.js","get-by-class/index.js"),a.alias("javve-get-attribute/index.js","list.js/deps/get-attribute/index.js"),a.alias("javve-get-attribute/index.js","get-attribute/index.js"),a.alias("javve-natural-sort/index.js","list.js/deps/natural-sort/index.js"),a.alias("javve-natural-sort/index.js","natural-sort/index.js"),a.alias("javve-to-string/index.js","list.js/deps/to-string/index.js"),a.alias("javve-to-string/index.js","list.js/deps/to-string/index.js"),a.alias("javve-to-string/index.js","to-string/index.js"),a.alias("javve-to-string/index.js","javve-to-string/index.js"),a.alias("component-type/index.js","list.js/deps/type/index.js"),a.alias("component-type/index.js","type/index.js"),"object"==typeof exports?module.exports=a("list.js"):"function"==typeof define&&define.amd?define(function(){return a("list.js")}):this.List=a("list.js")}();
|
data/assets/slather.css
ADDED
@@ -0,0 +1,316 @@
|
|
1
|
+
/* --------------------------------------------------------
|
2
|
+
Slather stylesheet
|
3
|
+
|
4
|
+
version: 0.1
|
5
|
+
author: Ikhsan Assaat (@ixnixnixn)
|
6
|
+
----------------------------------------------------------*/
|
7
|
+
|
8
|
+
/* General */
|
9
|
+
html {
|
10
|
+
position: relative;
|
11
|
+
min-height: 100%;
|
12
|
+
}
|
13
|
+
body {
|
14
|
+
font: 16px "Helvetica", sans-serif;
|
15
|
+
margin: 0 0 120px;
|
16
|
+
color: #333;
|
17
|
+
}
|
18
|
+
.row { margin: 0 2em; }
|
19
|
+
|
20
|
+
/* Header */
|
21
|
+
header { margin-top: 1em; }
|
22
|
+
header img { width: auto; height: 120px; }
|
23
|
+
|
24
|
+
/* Coverage */
|
25
|
+
#reports > h2 { margin-bottom: 0; }
|
26
|
+
#reports > h4 { margin-top: 5px; }
|
27
|
+
.percentage {
|
28
|
+
padding: 4px ;
|
29
|
+
font-weight: bold;
|
30
|
+
}
|
31
|
+
.cov_high { color: #67CF7C; }
|
32
|
+
.cov_medium { color: #F89404; }
|
33
|
+
.cov_low { color: #F86769; }
|
34
|
+
.cov_title { margin-bottom: 0; }
|
35
|
+
.cov_subtitle { margin-top: 0.2em; }
|
36
|
+
.cov_filepath { font-style: italic; }
|
37
|
+
|
38
|
+
/* Index Table */
|
39
|
+
table.coverage_list {
|
40
|
+
width: 90%;
|
41
|
+
min-width: 400px;
|
42
|
+
}
|
43
|
+
table.coverage_list th,
|
44
|
+
table.coverage_list td {
|
45
|
+
padding: .6em .5em;
|
46
|
+
text-align: left;
|
47
|
+
}
|
48
|
+
table.coverage_list th.col_num { width: 70px; }
|
49
|
+
table.coverage_list th.col_percent { width: 75px; }
|
50
|
+
table.coverage_list thead, tfoot { background: #FDCD9B; }
|
51
|
+
table.coverage_list tbody tr:hover { background: #FCF2E6; }
|
52
|
+
table.coverage_list tbody td { border-bottom: 1px solid #CCC; }
|
53
|
+
table.coverage_list td a {
|
54
|
+
color: #333;
|
55
|
+
text-decoration: none;
|
56
|
+
border-bottom: 1px dotted;
|
57
|
+
}
|
58
|
+
table.coverage_list td a:hover {
|
59
|
+
border-bottom: none;
|
60
|
+
}
|
61
|
+
|
62
|
+
/* Source Code */
|
63
|
+
table.source_code {
|
64
|
+
width: 100%;
|
65
|
+
max-width: 1200px;
|
66
|
+
min-width: 400px;
|
67
|
+
font-size: 13px;
|
68
|
+
border-spacing: 0;
|
69
|
+
background: #FCF2E6;
|
70
|
+
padding: 1.2em 1em;
|
71
|
+
margin-bottom: 2em;
|
72
|
+
}
|
73
|
+
|
74
|
+
table.source_code td {
|
75
|
+
padding-bottom: 0.3em;
|
76
|
+
}
|
77
|
+
table.source_code tr.missed td { background-color: rgba(248, 103, 105, 0.2); }
|
78
|
+
table.source_code tr.covered td { background-color: rgba(103, 207, 124, 0.2); }
|
79
|
+
table.source_code td.num {
|
80
|
+
border-right: 1px rgba(0,0,0,0.1) solid;
|
81
|
+
text-align: right;
|
82
|
+
padding-right: 1em;
|
83
|
+
width: 30px;
|
84
|
+
}
|
85
|
+
table.source_code td.src {
|
86
|
+
border-left: 1px rgba(255,255,255,0.7) solid;
|
87
|
+
padding-left: 1em;
|
88
|
+
}
|
89
|
+
table.source_code td.src pre {
|
90
|
+
white-space: pre-wrap;
|
91
|
+
white-space: -moz-pre-wrap;
|
92
|
+
white-space: -pre-wrap;
|
93
|
+
white-space: -o-pre-wrap;
|
94
|
+
word-wrap: break-word;
|
95
|
+
margin: 0;
|
96
|
+
}
|
97
|
+
table.source_code td.src pre code { font: 13px "Menlo", "Courier New"; }
|
98
|
+
|
99
|
+
table.source_code td.coverage {
|
100
|
+
text-align: right;
|
101
|
+
padding-right: 0.5em;
|
102
|
+
}
|
103
|
+
|
104
|
+
/* Footer */
|
105
|
+
footer {
|
106
|
+
background-color: #67CDCF;
|
107
|
+
height: 80px;
|
108
|
+
|
109
|
+
position: absolute;
|
110
|
+
left: 0;
|
111
|
+
bottom: 0;
|
112
|
+
width: 100%;
|
113
|
+
overflow:hidden;
|
114
|
+
}
|
115
|
+
|
116
|
+
footer p, footer a {
|
117
|
+
color: #ffffff;
|
118
|
+
font-weight: bold;
|
119
|
+
text-align: center;
|
120
|
+
}
|
121
|
+
|
122
|
+
|
123
|
+
/* ----------------------------------------------------------
|
124
|
+
Syntax Highlighting using highlight.js (https://highlightjs.org)
|
125
|
+
------------------------------------------------------------- */
|
126
|
+
.hljs {
|
127
|
+
display: block;
|
128
|
+
overflow-x: auto;
|
129
|
+
-webkit-text-size-adjust: none;
|
130
|
+
}
|
131
|
+
|
132
|
+
.hljs,
|
133
|
+
.hljs-subst,
|
134
|
+
.hljs-tag .hljs-title,
|
135
|
+
.nginx .hljs-title {
|
136
|
+
color: #333;
|
137
|
+
}
|
138
|
+
|
139
|
+
.hljs-string,
|
140
|
+
.hljs-title,
|
141
|
+
.hljs-constant,
|
142
|
+
.hljs-parent,
|
143
|
+
.hljs-tag .hljs-value,
|
144
|
+
.hljs-rule .hljs-value,
|
145
|
+
.hljs-preprocessor,
|
146
|
+
.hljs-pragma,
|
147
|
+
.hljs-name,
|
148
|
+
.haml .hljs-symbol,
|
149
|
+
.ruby .hljs-symbol,
|
150
|
+
.ruby .hljs-symbol .hljs-string,
|
151
|
+
.hljs-template_tag,
|
152
|
+
.django .hljs-variable,
|
153
|
+
.smalltalk .hljs-class,
|
154
|
+
.hljs-addition,
|
155
|
+
.hljs-flow,
|
156
|
+
.hljs-stream,
|
157
|
+
.bash .hljs-variable,
|
158
|
+
.pf .hljs-variable,
|
159
|
+
.apache .hljs-tag,
|
160
|
+
.apache .hljs-cbracket,
|
161
|
+
.tex .hljs-command,
|
162
|
+
.tex .hljs-special,
|
163
|
+
.erlang_repl .hljs-function_or_atom,
|
164
|
+
.asciidoc .hljs-header,
|
165
|
+
.markdown .hljs-header,
|
166
|
+
.coffeescript .hljs-attribute,
|
167
|
+
.tp .hljs-variable {
|
168
|
+
color: #D14F4F;
|
169
|
+
}
|
170
|
+
|
171
|
+
.smartquote,
|
172
|
+
.hljs-comment,
|
173
|
+
.hljs-annotation,
|
174
|
+
.diff .hljs-header,
|
175
|
+
.hljs-chunk,
|
176
|
+
.asciidoc .hljs-blockquote,
|
177
|
+
.markdown .hljs-blockquote {
|
178
|
+
color: #888;
|
179
|
+
}
|
180
|
+
|
181
|
+
.hljs-number,
|
182
|
+
.hljs-date,
|
183
|
+
.hljs-regexp,
|
184
|
+
.hljs-literal,
|
185
|
+
.hljs-hexcolor,
|
186
|
+
.smalltalk .hljs-symbol,
|
187
|
+
.smalltalk .hljs-char,
|
188
|
+
.go .hljs-constant,
|
189
|
+
.hljs-change,
|
190
|
+
.lasso .hljs-variable,
|
191
|
+
.makefile .hljs-variable,
|
192
|
+
.asciidoc .hljs-bullet,
|
193
|
+
.markdown .hljs-bullet,
|
194
|
+
.asciidoc .hljs-link_url,
|
195
|
+
.markdown .hljs-link_url {
|
196
|
+
color: #05A5A8;
|
197
|
+
}
|
198
|
+
|
199
|
+
.hljs-label,
|
200
|
+
.ruby .hljs-string,
|
201
|
+
.hljs-decorator,
|
202
|
+
.hljs-filter .hljs-argument,
|
203
|
+
.hljs-localvars,
|
204
|
+
.hljs-array,
|
205
|
+
.hljs-attr_selector,
|
206
|
+
.hljs-important,
|
207
|
+
.hljs-pseudo,
|
208
|
+
.hljs-pi,
|
209
|
+
.haml .hljs-bullet,
|
210
|
+
.hljs-doctype,
|
211
|
+
.hljs-deletion,
|
212
|
+
.hljs-envvar,
|
213
|
+
.hljs-shebang,
|
214
|
+
.apache .hljs-sqbracket,
|
215
|
+
.nginx .hljs-built_in,
|
216
|
+
.tex .hljs-formula,
|
217
|
+
.erlang_repl .hljs-reserved,
|
218
|
+
.hljs-prompt,
|
219
|
+
.asciidoc .hljs-link_label,
|
220
|
+
.markdown .hljs-link_label,
|
221
|
+
.vhdl .hljs-attribute,
|
222
|
+
.clojure .hljs-attribute,
|
223
|
+
.asciidoc .hljs-attribute,
|
224
|
+
.lasso .hljs-attribute,
|
225
|
+
.coffeescript .hljs-property,
|
226
|
+
.hljs-phony {
|
227
|
+
color: #087599;
|
228
|
+
}
|
229
|
+
|
230
|
+
.hljs-keyword,
|
231
|
+
.hljs-id,
|
232
|
+
.hljs-title,
|
233
|
+
.hljs-built_in,
|
234
|
+
.css .hljs-tag,
|
235
|
+
.hljs-doctag,
|
236
|
+
.smalltalk .hljs-class,
|
237
|
+
.hljs-winutils,
|
238
|
+
.bash .hljs-variable,
|
239
|
+
.pf .hljs-variable,
|
240
|
+
.apache .hljs-tag,
|
241
|
+
.hljs-type,
|
242
|
+
.hljs-typename,
|
243
|
+
.tex .hljs-command,
|
244
|
+
.asciidoc .hljs-strong,
|
245
|
+
.markdown .hljs-strong,
|
246
|
+
.hljs-request,
|
247
|
+
.hljs-status,
|
248
|
+
.tp .hljs-data,
|
249
|
+
.tp .hljs-io {
|
250
|
+
font-weight: bold;
|
251
|
+
}
|
252
|
+
|
253
|
+
.asciidoc .hljs-emphasis,
|
254
|
+
.markdown .hljs-emphasis,
|
255
|
+
.tp .hljs-units {
|
256
|
+
font-style: italic;
|
257
|
+
}
|
258
|
+
|
259
|
+
.nginx .hljs-built_in {
|
260
|
+
font-weight: normal;
|
261
|
+
}
|
262
|
+
|
263
|
+
.coffeescript .javascript,
|
264
|
+
.javascript .xml,
|
265
|
+
.lasso .markup,
|
266
|
+
.tex .hljs-formula,
|
267
|
+
.xml .javascript,
|
268
|
+
.xml .vbscript,
|
269
|
+
.xml .css,
|
270
|
+
.xml .hljs-cdata {
|
271
|
+
opacity: 0.5;
|
272
|
+
}
|
273
|
+
|
274
|
+
/* -------------------------------------------------------
|
275
|
+
Sorting & Filtering with List.js (http://www.listjs.com/)
|
276
|
+
------------------------------------------------------- */
|
277
|
+
|
278
|
+
input.search {
|
279
|
+
border:solid 1px #ccc;
|
280
|
+
border-radius: 4px;
|
281
|
+
padding:7px;
|
282
|
+
margin-bottom:10px;
|
283
|
+
font-size: 12px;
|
284
|
+
}
|
285
|
+
input.search:focus {
|
286
|
+
outline:none;
|
287
|
+
border-color:#aaa;
|
288
|
+
}
|
289
|
+
|
290
|
+
th.sort::-moz-selection { background:transparent; }
|
291
|
+
th.sort::selection { background:transparent; }
|
292
|
+
th.sort { cursor:pointer; }
|
293
|
+
th.sort:after {
|
294
|
+
content:'';
|
295
|
+
display:inline-block;
|
296
|
+
width: 0;
|
297
|
+
height: 0;
|
298
|
+
position: relative;
|
299
|
+
top: -3px;
|
300
|
+
right: -6px;
|
301
|
+
border-width:0 4px 4px;
|
302
|
+
border-style:solid;
|
303
|
+
border-color:#404040 transparent;
|
304
|
+
visibility:hidden;
|
305
|
+
}
|
306
|
+
th.sort:hover:after { visibility:visible; }
|
307
|
+
th.sort.desc:after,
|
308
|
+
th.sort.asc:after,
|
309
|
+
th.sort.asc:hover:after {
|
310
|
+
visibility:visible;
|
311
|
+
opacity:0.6;
|
312
|
+
}
|
313
|
+
th.sort.desc:after {
|
314
|
+
border-bottom:none;
|
315
|
+
border-width:4px 4px 0;
|
316
|
+
}
|
data/bin/slather
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'clamp'
|
3
|
+
require 'yaml'
|
4
|
+
require File.join(File.dirname(__FILE__), '../lib/slather')
|
5
|
+
|
6
|
+
Clamp do
|
7
|
+
|
8
|
+
self.default_subcommand = "coverage"
|
9
|
+
|
10
|
+
subcommand "coverage", "Computes coverage for the supplied project" do
|
11
|
+
|
12
|
+
parameter "[xcodeproj]", "Path to the xcodeproj", :attribute_name => :xcodeproj_path
|
13
|
+
|
14
|
+
option ["--travis", "-t"], :flag, "Indicate that the builds are running on Travis CI"
|
15
|
+
option ["--circleci"], :flag, "Indicate that the builds are running on CircleCI"
|
16
|
+
option ["--jenkins"], :flag, "Indicate that the builds are running on Jenkins"
|
17
|
+
option ["--buildkite"], :flag, "Indicate that the builds are running on Buildkite"
|
18
|
+
|
19
|
+
option ["--coveralls", "-c"], :flag, "Post coverage results to coveralls"
|
20
|
+
option ["--simple-output", "-s"], :flag, "Output coverage results to the terminal"
|
21
|
+
option ["--gutter-json", "-g"], :flag, "Output coverage results as Gutter JSON format"
|
22
|
+
option ["--cobertura-xml", "-x"], :flag, "Output coverage results as Cobertura XML format"
|
23
|
+
option ["--html"], :flag, "Output coverage results as static html pages"
|
24
|
+
option ["--show"], :flag, "Indicate that the static html pages will open automatically"
|
25
|
+
|
26
|
+
option ["--build-directory", "-b"], "BUILD_DIRECTORY", "The directory where gcno files will be written to. Defaults to derived data."
|
27
|
+
option ["--source-directory"], "SOURCE_DIRECTORY", "The directory where your source files are located."
|
28
|
+
option ["--output-directory"], "OUTPUT_DIRECTORY", "The directory where your Cobertura XML report will be written to."
|
29
|
+
option ["--ignore", "-i"], "IGNORE", "ignore files conforming to a path", :multivalued => true
|
30
|
+
|
31
|
+
def execute
|
32
|
+
puts "Slathering..."
|
33
|
+
|
34
|
+
setup_service_name
|
35
|
+
setup_ignore_list
|
36
|
+
setup_build_directory
|
37
|
+
setup_source_directory
|
38
|
+
setup_output_directory
|
39
|
+
setup_coverage_service
|
40
|
+
|
41
|
+
post
|
42
|
+
|
43
|
+
puts "Slathered"
|
44
|
+
end
|
45
|
+
|
46
|
+
def setup_build_directory
|
47
|
+
project.build_directory = build_directory if build_directory
|
48
|
+
end
|
49
|
+
|
50
|
+
def setup_source_directory
|
51
|
+
project.source_directory = source_directory if source_directory
|
52
|
+
end
|
53
|
+
|
54
|
+
def setup_output_directory
|
55
|
+
project.output_directory = output_directory if output_directory
|
56
|
+
end
|
57
|
+
|
58
|
+
def setup_ignore_list
|
59
|
+
project.ignore_list = ignore_list if !ignore_list.empty?
|
60
|
+
end
|
61
|
+
|
62
|
+
def setup_service_name
|
63
|
+
if travis?
|
64
|
+
project.ci_service = :travis_ci
|
65
|
+
elsif circleci?
|
66
|
+
project.ci_service = :circleci
|
67
|
+
elsif jenkins?
|
68
|
+
project.ci_service = :jenkins
|
69
|
+
elsif buildkite?
|
70
|
+
project.ci_service = :buildkite
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def post
|
75
|
+
project.post
|
76
|
+
end
|
77
|
+
|
78
|
+
def project
|
79
|
+
@project ||= begin
|
80
|
+
xcodeproj_path_to_open = xcodeproj_path || Slather::Project.yml["xcodeproj"]
|
81
|
+
if xcodeproj_path_to_open
|
82
|
+
project = Slather::Project.open(xcodeproj_path_to_open)
|
83
|
+
else
|
84
|
+
raise StandardError, "Must provide an xcodeproj through .slather.yml"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def setup_coverage_service
|
90
|
+
if coveralls?
|
91
|
+
project.coverage_service = :coveralls
|
92
|
+
elsif simple_output?
|
93
|
+
project.coverage_service = :terminal
|
94
|
+
elsif gutter_json?
|
95
|
+
project.coverage_service = :gutter_json
|
96
|
+
elsif cobertura_xml?
|
97
|
+
project.coverage_service = :cobertura_xml
|
98
|
+
elsif html?
|
99
|
+
project.coverage_service = :html
|
100
|
+
project.show_html = show?
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
subcommand "setup", "Configures an xcodeproj for test coverage generation" do
|
107
|
+
|
108
|
+
parameter "[xcodeproj]", "Path to the xcodeproj", :attribute_name => :xcodeproj_path
|
109
|
+
|
110
|
+
def execute
|
111
|
+
project = Slather::Project.open(xcodeproj_path)
|
112
|
+
project.setup_for_coverage
|
113
|
+
project.save
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
end
|
data/docs/logo.jpg
ADDED
Binary file
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'slather'
|
2
|
+
|
3
|
+
Pod::HooksManager.register('slather', :post_install) do |installer_context|
|
4
|
+
sandbox_root = installer_context.sandbox_root
|
5
|
+
sandbox = Pod::Sandbox.new(sandbox_root)
|
6
|
+
project = Xcodeproj::Project.open(sandbox.project_path)
|
7
|
+
project.slather_setup_for_coverage()
|
8
|
+
project.save()
|
9
|
+
end
|
10
|
+
|