Wikipedia Anagrams
Installation
$ npm install wikipedia-anagrams
For use in the browser, use browserify.
Usage
var getAnagrams = ;
getAnagrams( resources, [opts,] clbk )
Finds anagrams in Wikipedia pages. The function requires two arguments:
- resources: may be either a
string
specifying a page title/URL or astring array
specifying multiple page title/URLs. - clbk: callback
function
to invoke after analyzing Wikipedia pages. Thefunction
should accept two arguments:- error:
error
object. If no errors occur during analysis, this value isnull
. - hashes:
array
of anagram hashes.
- error:
// Single resource:;// Multiple resources:;{if errorconsole;return;console;}
The function accepts the following options
:
- lang: the default page language. Default:
'en'
.
To specify an alternative default language, set the lang
option.
;// => fetches the Spanish Wikipedia resource for ballet
Note: if provided a URL, the language indicated by the URL supersedes the default lang
option.
;// => fetches the 'en' ballet resource, not the 'es' resource
Examples
var getAnagrams = ;// Specify Wikipedia resources either by page title or by URL...var resources ='Linear regression''http://en.wikipedia.org/wiki/ballet''http://es.wikipedia.org/wiki/ballet''Spain''President of the United States''Mathematics';// Run the analysis...;// Callback invoked after running the anagram analysis...{var hashleni;if errorthrow error ;// Print the individual results...len = hasheslength;for i = 0; i < len; i++console;console;console;// Merge the hashes...hash = hashes 0 ;hashmerge;// Print the merged hash...console;console;}
To run the example code from the top-level application directory,
$ node ./examples/index.js
CLI
Installation
To use the module as a general utility, install the module globally
$ npm install -g wikipedia-anagrams
Usage
Usage: wikipedia-anagrams [options] [url 1] [url 2] [url 3] ...Options:-h, --help Print this message.-V, --version Print the package version.-enc, --encoding <encoding> Set the string encoding of chunks. Default: null.-hwm, --highwatermark Specify how much data can be buffered into memorybefore applying back pressure. Default: 16kb.-nho, --no-halfopen Close the stream when the writable stream ends.Default: false.-nds, --no-decodestrings Prevent strings from being converted into buffersbefore streaming to destination. Default: false.-om, --objectmode Stream individual objects rather than buffers.Default: false.-lang, --language <lang> Set the default query language. Default: 'en'.
The wikipedia-anagrams
command is available as a standard stream.
$ <stdout> | wikipedia-anagrams | <stdin>
Examples
# Specify a single page title:$ wikipedia-anagrams mathematics# Specify the default language:$ wikipedia-anagrams --lang=es ballet# Specify multiple page titles:$ wikipedia-anagrams mathematics ballet# Specify a single page URL:$ wikipedia-anagrams 'http://en.wikipedia.org/wiki/mathematics'# Specify multiple page URLs:$ wikipedia-anagrams 'http://en.wikipedia.org/wiki/mathematics' 'http://en.wikipedia/org/wiki/ballet'# Specify both page titles and page URLs:$ wikipedia-anagrams 'http://en.wikipedia.org/wiki/mathematics' ballet# Pipe Wikipedia page markup:$ curl -s 'http://en.wikipedia.org/w/index.php?action=raw&title=mathematics' | wikipedia-anagrams | awk '{print "\nAnagrams:\n\n"$1}'# Pipe multiple Wikipedia pages:$ curl -s 'http://en.wikipedia.org/w/index.php?action=raw&title=mathematics' 'http://en.wikipedia.org/w/index.php?action=raw&title=ballet' | wikipedia-anagrams | awk '{print "\nAnagrams:\n\n"$1}'
For local installations, modify the command to point to the local installation directory; e.g.,
$ ./node_modules/.bin/wikipedia-anagrams mathematics
Or, if you have cloned this repository and run npm install
, modify the command to point to the executable; e.g.,
$ node ./bin/cli mathematics
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
License
Copyright
Copyright © 2015. Athan Reines.