/tricorder

A Domain-Specific Language for Star Trek API (http://stapi.co)

Primary LanguageRubyMIT LicenseMIT

tricorder

A Domain-Specific Language for Star Trek API (http://stapi.co)

Installation

gem install tricorder

Usage

CLI

Once installed, you can run the command tricorder.

To display all the available options for search type tricorder help or tricorder help search.

To search the API, invoke the search <keyword> command, which searches all databases by default.

tricorder search Uhura --api-key=ABC123

There are only 250 queries for hour for non-authenticated users, to specify the API Key, add the --api-key=APIKEY set the API Key on each query.

To search only specific database, use the --database <database name> to specify the database, for example

tricorder search Uhura --database character book

To print extra details, add the --print-details in the command, for example

tricorder search uhura --database character --print-details

To scope on a specific detail, add the --print-info <scope> scoping a result

$ tricorder search Uhura --database character --print-only-once --print-info=characterSpecies name
Human

To use a plugin use the --preprocessor

$ tricorder search Uhura --disable-logging --database character --print-only-once --print-info=characterSpecies name --preprocessor name2klingon printobject scope2klingon --format raw
0xF8DB 0xF8E8 0xF8DD 0xF8E3 0xF8D0  0xF8E5 0xF8D6 0xF8E5 0xF8E1 0xF8D0
Human
0xF8D6 0xF8E5 0xF8DA 0xF8D0 0xF8DB

To set the format output, use the --format command, available formats are plain, raw, json and html

tricorder search Uhura --database character --format html

Domain Specific Language

Here's an example of using tricorder programmatically via it's own DSL syntax,

require 'tricorder'
include Tricorder

tricorder do
  no_logging
  api_key('MYAPIKEY')
  set_subject('Uhura')
  search_locations(:character)
  print_only_once
  print_info(['characterSpecies', 'name'])
end

It set no_logging, set's the API key, set the subject to 'Uhura', set the database to 'character', scope to 'characterSpecies name' and print only once.