Topics = require './datarank/topics'
Comments = require './datarank/comments'
Datasources = require './datarank/datasources'
Fizzle = require './datarank/fizzle'
Live = require './datarank/live'
Locations = require './datarank/locations'
Reach = require './datarank/reach'
Retailers = require './datarank/retailers'
Search = require './datarank/search'
Sentiment = require './datarank/sentiment'
Themes = require './datarank/themes'
Volume = require './datarank/volume'
Wordcloud = require './datarank/wordcloud'
class Datarank
client: []
constructor: (apiKey, host, version) ->
@config =
host: host or 'https://api.datarank.com'
apiKey: apiKey
version: version or 'v1'
@addResources
'topics': Topics
'comments': Comments
'datasources': Datasources
'fizzle': Fizzle
'live': Live
'locations': Locations
'reach': Reach
'retailers': Retailers
'search': Search
'sentiment': Sentiment
'themes': Themes
'volume': Volume
'wordcloud': Wordcloud
addResources: (resources) ->
for name, module of resources
@client[name] = new module @config
module.exports = Datarank