Travis build: 1006

This commit is contained in:
30secondsofcode
2018-01-04 09:08:44 +00:00
parent b0efd4af05
commit 84dd8831d2
2 changed files with 36 additions and 23 deletions

View File

@ -940,17 +940,24 @@ a <span class="token operator">===</span> b<span class="token punctuation">;</sp
);
};</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">palindrome</span><span class="token punctuation">(</span><span class="token string">'taco cat'</span><span class="token punctuation">);</span> <span class="token comment">// true</span>
</pre><button class="primary clipboard-copy"><img src="clipboard.svg" alt="clipboard">&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="pluralize" class="section double-padded">pluralize</h3><div class="section double-padded"><p>If <code>num</code> is greater than <code>1</code> returns the plural form of the given string, else return the singular form.</p><p>Check if <code>num</code> is greater than <code>0</code>. Throw an appropriate <code>Error</code> if not, return the appropriate string otherwise. Omit the third argument, <code>items</code>, to use a default plural form same as <code>item</code> suffixed with a single <code>'s'</code>.</p><pre class="language-js"><span class="token keyword">const</span> pluralize <span class="token operator">=</span> <span class="token punctuation">(</span>num<span class="token punctuation">,</span> item<span class="token punctuation">,</span> items <span class="token operator">=</span> item <span class="token operator">+</span> <span class="token string">'s'</span><span class="token punctuation">)</span> <span class="token operator">=></span>
num <span class="token operator">&lt;=</span> <span class="token number">0</span>
<span class="token operator">?</span> <span class="token punctuation">(()</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">throw new</span> <span class="token class-name">Error</span><span class="token punctuation">(</span><span class="token template-string"><span class="token string">`'num' should be >= 1. Value povided was </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>num<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">.`</span></span><span class="token punctuation">);
})()
:</span> num <span class="token operator">===</span> <span class="token number">1</span> <span class="token operator">?</span> item <span class="token punctuation">:</span> items<span class="token punctuation">;</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">'apple'</span><span class="token punctuation">,</span> <span class="token string">'apples'</span><span class="token punctuation">);</span> <span class="token comment">// 'apple'</span>
<span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token string">'apple'</span><span class="token punctuation">,</span> <span class="token string">'apples'</span><span class="token punctuation">);</span> <span class="token comment">// 'apples'</span>
</pre><button class="primary clipboard-copy"><img src="clipboard.svg" alt="clipboard">&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="pluralize" class="section double-padded">pluralize</h3><div class="section double-padded"><p>Returns the singular or plural form of the word based on the input number. If the first argument is an <code>object</code>, it will use a closure by returning a function that can auto-pluralize words that don't simply end in <code>s</code> if the supplied dictionary contains the word.</p><p>If <code>num</code> is either <code>-1</code> or <code>1</code>, return the singular form of the word. If <code>num</code> is any other number, return the plural form. Omit the third argument to use the default of the singular word + <code>s</code>, or supply a custom pluralized word when necessary. If the first argument is an <code>object</code>, utilize a closure by returning a function which can use the supplied dictionary to resolve the correct plural form of the word.</p><pre class="language-js"><span class="token keyword">const</span> pluralize <span class="token operator">=</span> <span class="token punctuation">(</span>val<span class="token punctuation">,</span> word<span class="token punctuation">,</span> plural <span class="token operator">=</span> word <span class="token operator">+</span> <span class="token string">'s'</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> _pluralize <span class="token operator">=</span> <span class="token punctuation">(</span>num<span class="token punctuation">,</span> word<span class="token punctuation">,</span> plural <span class="token operator">=</span> word <span class="token operator">+</span> <span class="token string">'s'</span><span class="token punctuation">)</span> <span class="token operator">=></span>
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">].</span><span class="token function">includes</span><span class="token punctuation">(</span><span class="token function">Number</span><span class="token punctuation">(</span>num<span class="token punctuation">))</span> <span class="token operator">?</span> word <span class="token punctuation">:</span> plural<span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">typeof</span> val <span class="token operator">===</span> <span class="token string">'object'</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token punctuation">(</span>num<span class="token punctuation">,</span> word<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">_pluralize</span><span class="token punctuation">(</span>num<span class="token punctuation">,</span> word<span class="token punctuation">,</span> val<span class="token punctuation">[</span>word<span class="token punctuation">]);</span>
<span class="token keyword">return</span> <span class="token function">_pluralize</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> word<span class="token punctuation">,</span> plural<span class="token punctuation">);
};</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token string">'apple'</span><span class="token punctuation">);</span> <span class="token comment">// 'apples'</span>
<span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">'apple'</span><span class="token punctuation">);</span> <span class="token comment">// 'apple'</span>
<span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">'apple'</span><span class="token punctuation">);</span> <span class="token comment">// 'apples'</span>
<span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token string">'apple'</span><span class="token punctuation">,</span> <span class="token string">'apples'</span><span class="token punctuation">);</span> <span class="token comment">// Gives error</span>
<span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token string">'apple'</span><span class="token punctuation">,</span> <span class="token string">'apples'</span><span class="token punctuation">);</span> <span class="token comment">// Gives error</span>
<span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">'person'</span><span class="token punctuation">);</span> <span class="token comment">// 'person'</span>
<span class="token function">pluralize</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">'person'</span><span class="token punctuation">,</span> <span class="token string">'people'</span><span class="token punctuation">);</span> <span class="token comment">// 'people'</span>
<span class="token keyword">const</span> PLURALS <span class="token operator">=</span> <span class="token punctuation">{</span>
person<span class="token punctuation">:</span> <span class="token string">'people'</span><span class="token punctuation">,</span>
radius<span class="token punctuation">:</span> <span class="token string">'radii'</span>
<span class="token punctuation">};</span>
<span class="token keyword">const</span> autoPluralize <span class="token operator">=</span> <span class="token function">pluralize</span><span class="token punctuation">(</span>PLURALS<span class="token punctuation">);</span>
<span class="token function">autoPluralize</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">'person'</span><span class="token punctuation">);</span> <span class="token comment">// 'people'</span>
</pre><button class="primary clipboard-copy"><img src="clipboard.svg" alt="clipboard">&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="repeatstring" class="section double-padded">repeatString</h3><div class="section double-padded"><p>Repeats a string n times using <code>String.repeat()</code></p><p>If no string is provided the default is <code>&quot;&quot;</code> and the default number of times is 2.</p><pre class="language-js"><span class="token keyword">const</span> repeatString <span class="token operator">=</span> <span class="token punctuation">(</span>str <span class="token operator">=</span> <span class="token string">''</span><span class="token punctuation">,</span> num <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> num <span class="token operator">>=</span> <span class="token number">0</span> <span class="token operator">?</span> str<span class="token punctuation">.</span><span class="token function">repeat</span><span class="token punctuation">(</span>num<span class="token punctuation">) :</span> str<span class="token punctuation">;
};</span>