Skip to content

Commit 3c80f81

Browse files
committed
Added protocol path catcher
1 parent 28cac81 commit 3c80f81

File tree

10 files changed

+359
-122
lines changed

10 files changed

+359
-122
lines changed

cli-index.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var argv = require('minimist')(process.argv.slice(2), {
77
e: 'exact',
88
d: 'declared',
99
m: 'match',
10+
r: 'resolvePath',
1011
g: 'groups',
1112
h: 'help'
1213
},
@@ -19,13 +20,16 @@ if (argv.h) {
1920
'Options: \n' +
2021
'-e, --exact Find an exact match \n' +
2122
'-d, --declared Find a DOI with a `doi:` prefix\n' +
23+
'-r, --resolvePath Find a DOI with a `https://dx.doi.org` prefix\n' +
2224
'-m, --match Find all matches within the given string\n' +
2325
'-g, --groups Find matches with groupings for extra suffixes')
2426
process.exit(-1)
2527
}
2628

2729
var doi = (argv.doi || argv._[0])
2830

31+
// TODO This is not the best way to do this.
32+
2933
if (argv.m) {
3034
console.log(doi.match(doiRegex()))
3135
process.exit(-1)
@@ -37,10 +41,14 @@ if (argv.m) {
3741
if (argv.e && argv.d) {
3842
console.log('Is this a declared DOI',
3943
doiRegex.declared({exact: true}).test(doi))
40-
} else if (argv.e && !argv.d) {
44+
} else if (argv.e && !argv.d && !argv.r) {
4145
console.log('Is this a DOI?', doiRegex({exact: true}).test(doi))
4246
} else if (!argv.e && argv.d) {
4347
console.log('Is the DOI declared?', doiRegex.declared().test(doi))
48+
} else if (!argv.e && !argv.d && argv.r) {
49+
console.log('Is the DOI declared with an optional path?', doiRegex.resolvePath().test(doi))
50+
} else if (argv.e && !argv.d && argv.r) {
51+
console.log('Is the DOI declared with an mandatory path?', doiRegex.resolvePath({protocol: true}).test(doi))
4452
} else {
4553
console.log('Does a DOI exist?', doiRegex().test(doi))
4654
}

coverage/coverage.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

coverage/lcov-report/doi-regex/index.html

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
<h1>Code coverage report for <span class="entity">doi-regex/</span></h1>
1919
<h2>
2020

21-
Statements: <span class="metric">95% <small>(19 / 20)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21+
Statements: <span class="metric">95.65% <small>(22 / 23)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2222

2323

24-
Branches: <span class="metric">85.71% <small>(12 / 14)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
24+
Branches: <span class="metric">88.89% <small>(16 / 18)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2525

2626

27-
Functions: <span class="metric">100% <small>(4 / 4)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
27+
Functions: <span class="metric">100% <small>(5 / 5)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2828

2929

30-
Lines: <span class="metric">100% <small>(19 / 19)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
30+
Lines: <span class="metric">100% <small>(22 / 22)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
3131

3232
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
3333
</h2>
@@ -52,23 +52,23 @@ <h2>
5252
</thead>
5353
<tbody><tr>
5454
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
55-
<td data-value="95" class="pic high"><span class="cover-fill" style="width: 95px;"></span><span class="cover-empty" style="width:5px;"></span></td>
56-
<td data-value="95" class="pct high">95%</td>
57-
<td data-value="20" class="abs high">(19&nbsp;/&nbsp;20)</td>
58-
<td data-value="85.71" class="pct high">85.71%</td>
59-
<td data-value="14" class="abs high">(12&nbsp;/&nbsp;14)</td>
55+
<td data-value="95.65" class="pic high"><span class="cover-fill" style="width: 95px;"></span><span class="cover-empty" style="width:5px;"></span></td>
56+
<td data-value="95.65" class="pct high">95.65%</td>
57+
<td data-value="23" class="abs high">(22&nbsp;/&nbsp;23)</td>
58+
<td data-value="88.89" class="pct high">88.89%</td>
59+
<td data-value="18" class="abs high">(16&nbsp;/&nbsp;18)</td>
6060
<td data-value="100" class="pct high">100%</td>
61-
<td data-value="4" class="abs high">(4&nbsp;/&nbsp;4)</td>
61+
<td data-value="5" class="abs high">(5&nbsp;/&nbsp;5)</td>
6262
<td data-value="100" class="pct high">100%</td>
63-
<td data-value="19" class="abs high">(19&nbsp;/&nbsp;19)</td>
63+
<td data-value="22" class="abs high">(22&nbsp;/&nbsp;22)</td>
6464
</tr>
6565

6666
</tbody>
6767
</table>
6868
</div>
6969
</div>
7070
<div class="footer">
71-
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sat Mar 07 2015 21:10:48 GMT-0800 (PST)</div>
71+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Oct 02 2015 13:30:28 GMT-0400 (EDT)</div>
7272
</div>
7373

7474
<script src="../prettify.js"></script>

coverage/lcov-report/doi-regex/index.js.html

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
<h1>Code coverage report for <span class="entity">doi-regex/index.js</span></h1>
1919
<h2>
2020

21-
Statements: <span class="metric">95% <small>(19 / 20)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21+
Statements: <span class="metric">95.65% <small>(22 / 23)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2222

2323

24-
Branches: <span class="metric">85.71% <small>(12 / 14)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
24+
Branches: <span class="metric">88.89% <small>(16 / 18)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2525

2626

27-
Functions: <span class="metric">100% <small>(4 / 4)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
27+
Functions: <span class="metric">100% <small>(5 / 5)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2828

2929

30-
Lines: <span class="metric">100% <small>(19 / 19)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
30+
Lines: <span class="metric">100% <small>(22 / 22)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
3131

3232
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
3333
</h2>
@@ -84,7 +84,13 @@ <h2>
8484
47
8585
48
8686
49
87-
50</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span>
87+
50
88+
51
89+
52
90+
53
91+
54
92+
55
93+
56</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span>
8894
<span class="cline-any cline-neutral">&nbsp;</span>
8995
<span class="cline-any cline-neutral">&nbsp;</span>
9096
<span class="cline-any cline-neutral">&nbsp;</span>
@@ -133,7 +139,13 @@ <h2>
133139
<span class="cline-any cline-yes">7</span>
134140
<span class="cline-any cline-neutral">&nbsp;</span>
135141
<span class="cline-any cline-neutral">&nbsp;</span>
136-
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
142+
<span class="cline-any cline-neutral">&nbsp;</span>
143+
<span class="cline-any cline-yes">1</span>
144+
<span class="cline-any cline-yes">7</span>
145+
<span class="cline-any cline-yes">7</span>
146+
<span class="cline-any cline-neutral">&nbsp;</span>
147+
<span class="cline-any cline-neutral">&nbsp;</span>
148+
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict'
137149
&nbsp;
138150
/**
139151
* Parts of a DOI:
@@ -177,17 +189,23 @@ <h2>
177189
return match
178190
}
179191
&nbsp;
180-
doi.declared = function(opts) {
192+
doi.declared = function (opts) {
181193
opts = opts || {}
182194
return opts.exact ? new RegExp('^' + doiTextPrefix + doiRegex + '$') :
183195
new RegExp(doiTextPrefix + doiRegex, 'g')
184196
}
197+
&nbsp;
198+
doi.resolvePath = function (opts) {
199+
opts = opts || {}
200+
return opts.protocol ? new RegExp('^http(s)?\\://dx\\.doi\\.org/' + doiRegex + '$') :
201+
new RegExp('^(http(s)?\\://)?dx\\.doi\\.org/' + doiRegex + '$')
202+
}
185203
&nbsp;</pre></td></tr>
186204
</table></pre>
187205

188206
</div>
189207
<div class="footer">
190-
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sat Mar 07 2015 21:10:48 GMT-0800 (PST)</div>
208+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Oct 02 2015 13:30:28 GMT-0400 (EDT)</div>
191209
</div>
192210

193211
<script src="../prettify.js"></script>

coverage/lcov-report/doi-regex/spec/index.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
<h1>Code coverage report for <span class="entity">doi-regex/spec/</span></h1>
1919
<h2>
2020

21-
Statements: <span class="metric">100% <small>(50 / 50)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
21+
Statements: <span class="metric">100% <small>(68 / 68)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2222

2323

2424
Branches: <span class="metric">50% <small>(1 / 2)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2525

2626

27-
Functions: <span class="metric">100% <small>(21 / 21)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
27+
Functions: <span class="metric">100% <small>(28 / 28)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
2828

2929

30-
Lines: <span class="metric">100% <small>(50 / 50)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
30+
Lines: <span class="metric">100% <small>(68 / 68)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
3131

3232
Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
3333
</h2>
@@ -54,21 +54,21 @@ <h2>
5454
<td class="file high" data-value="test.js"><a href="test.js.html">test.js</a></td>
5555
<td data-value="100" class="pic high"><span class="cover-fill cover-full" style="width: 100px;"></span><span class="cover-empty" style="width:0px;"></span></td>
5656
<td data-value="100" class="pct high">100%</td>
57-
<td data-value="50" class="abs high">(50&nbsp;/&nbsp;50)</td>
57+
<td data-value="68" class="abs high">(68&nbsp;/&nbsp;68)</td>
5858
<td data-value="50" class="pct medium">50%</td>
5959
<td data-value="2" class="abs medium">(1&nbsp;/&nbsp;2)</td>
6060
<td data-value="100" class="pct high">100%</td>
61-
<td data-value="21" class="abs high">(21&nbsp;/&nbsp;21)</td>
61+
<td data-value="28" class="abs high">(28&nbsp;/&nbsp;28)</td>
6262
<td data-value="100" class="pct high">100%</td>
63-
<td data-value="50" class="abs high">(50&nbsp;/&nbsp;50)</td>
63+
<td data-value="68" class="abs high">(68&nbsp;/&nbsp;68)</td>
6464
</tr>
6565

6666
</tbody>
6767
</table>
6868
</div>
6969
</div>
7070
<div class="footer">
71-
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sat Mar 07 2015 21:10:48 GMT-0800 (PST)</div>
71+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Oct 02 2015 13:30:28 GMT-0400 (EDT)</div>
7272
</div>
7373

7474
<script src="../../prettify.js"></script>

0 commit comments

Comments
 (0)