Commit Graph

64 Commits

Author SHA1 Message Date
Andrew Stewart f14ac10c95 Add addional edge case handling for snake_casing
Closes https://github.com/hybridgroup/robeaux/issues/19.
2015-07-03 10:37:08 -07:00
Andrew Stewart def91ffe53 Split apart MCP, API manager, exports 2015-06-29 08:25:07 -07:00
Andrew Stewart ceac0df8dd Consolidate Robot initialization to a single fn
Additionally, extracts validation of connections being present out to
the validator logic.
2015-06-26 10:31:23 -07:00
Edgar O Silva fd564f61f8 Merge pull request #296 from hybridgroup/remove/async
Remove dependency on 'async'
2015-06-24 13:30:43 -05:00
Andrew Stewart b1c91b7419 Logger should subscribe to updates, not be told what to do 2015-06-22 19:08:15 -07:00
Andrew Stewart 8ac8d7de94 Update config to act as subscribable data store 2015-06-22 18:57:34 -07:00
Andrew Stewart 0719fa203c Remove dependency on 'async'
This commit removes the last current dependency of Cylon, 'async'.

In it's place, simplified versions of the methods used have been added
so lib/utils/helpers.js.
2015-06-18 15:40:33 -07:00
Andrew Stewart f3efa83643 Correct issue with Robot halting 2015-06-18 14:56:39 -07:00
Andrew Stewart ad2db2d459 Update ESLint, use local for make tasks 2015-06-11 12:16:43 -07:00
Andrew Stewart 9c67d9ba02 Add method for removing monkey-patched methods 2015-06-11 08:40:15 -07:00
Andrew Stewart 681e197ed9 Stop giving robots random names, use inc. counter 2015-06-09 11:50:50 -07:00
Andrew Stewart 952a25ac2c Add specs for initializer 2015-06-09 08:05:37 -07:00
Andrew Stewart 8adacef282 s/source/lib for loading files for specs 2015-06-09 07:21:03 -07:00
Andrew Stewart 3f4140bd08 Add util to verify constructor calls use 'new' 2015-05-12 18:47:27 -07:00
Andrew Stewart e9416129ee Move spec globals to spec eslintrc 2015-04-15 12:07:16 -07:00
Andrew Stewart 62cbae7cff Switch to ESLint for linting 2015-04-15 08:59:34 -07:00
Edgar Silva 287b4205dd Offering to the lint godsgit add .! 2015-03-27 15:36:24 -06:00
Edgar Silva ec4dde7448 Adds error handling to basetar#respond. 2015-03-27 15:18:45 -06:00
Andrew Stewart 82ef3d31a2 Add exploding interface functions for Driver/Adaptor
Explicit is better than implicit, and this causes errors to be more
specific
2015-03-19 17:47:15 -07:00
Andrew Stewart c0a3a9439e Add #respond method to work with events/callbacks 2015-03-19 10:48:45 -07:00
Andrew Stewart a17c70a18b Bind passed function to Robot by default 2015-03-17 14:22:14 -07:00
Andrew Stewart 28415f0b74 Add basic #includes helper for arrays 2015-03-11 12:31:45 -07:00
Andrew Stewart 6c5208577a Correct bug in Registry#findBy, add spec 2015-03-09 21:26:45 -07:00
Andrew Stewart cb492c0747 Remove deprecated Connection / Device syntaxes
Removes deprecation warnings + support for single-object + array
syntaxes.

The array syntax will likely continue to work due to the `_.each`
abstraction, but since we don't use it anywhere, the requisite specs
have been removed.
2015-03-04 09:27:33 -08:00
Adrian Zankich 3e65e2027e Merge pull request #271 from hybridgroup/feature/replace-lodash
Replace Lodash
2015-02-24 10:08:06 -08:00
Andrew Stewart 4e363e7930 Add a basic reduce implementation 2015-02-23 15:22:45 -08:00
Andrew Stewart 2eaea42a72 Add helpers for partial application 2015-02-23 14:31:52 -08:00
Andrew Stewart 6e3d7c6667 Add helpers to replace some lodash functionality
Not a 1:1, and probably much slower than Lodash's ultra-optimised
implementations, but we do enough I/O that it's not really relevant,
is it?
2015-02-23 08:38:12 -08:00
Daniel Lamb ccebab4cc2 The register method should return existing modules 2015-02-20 11:25:31 -08:00
Andrew Stewart 618aa8212d Remove lodash 2015-02-20 11:15:34 -08:00
edgarsilva cd23d989cf Fix broken test. 2015-01-30 15:04:14 -06:00
Andrew Stewart 147816b366 First crack at removing seperate Device/Connection initialization 2015-01-22 14:41:58 -08:00
Andrew Stewart d56f9bc53f Add better error checking for Robot#halt 2015-01-21 08:56:13 -08:00
Andrew Stewart 754af3b4db Add test for Robot#log 2015-01-20 19:38:48 -08:00
Andrew Stewart 9165ab36b4 Extract API from core 2015-01-08 10:02:14 -08:00
Andrew Stewart 8065644b4e Add support for nested device details inside conn
e.g.
    connections: {
      loopback: {
        adaptor: "loopback",
        devices: {
          ping: { driver: "ping", pin: 1 }
        }
      }
    }

In the event of a name collision between the `devices` hash and a nested
device, the nested device will 'win'.
2015-01-07 10:21:51 -08:00
Andrew Stewart cf0d24f785 Add API event publication
This update gives Cylon support for the latest changes to the CPPP-IO
spec.
2015-01-05 12:20:53 -08:00
Loren West 1030a50ca3 Added async command tests 2014-12-31 14:25:15 -08:00
Loren West b124e24363 API command discovery and execution tests 2014-12-29 14:26:50 -08:00
Andrew Stewart c9e16fe8c2 Use _.result to get commands from options. 2014-12-17 15:07:03 -08:00
Andrew Stewart 36d1505c2f Add specs for new #connections/#devices behaviour 2014-12-15 13:17:04 -08:00
Andrew Stewart e2bec78de7 Clean up specs for JSHint 2014-12-15 09:37:52 -08:00
Andrew Stewart 7f761c7268 WIP on cleaning up specs 2014-12-14 15:24:49 -08:00
Andrew Stewart 4f850d5e9e Support passing config to Logger#setup again 2014-11-28 09:37:44 -08:00
Andrew Stewart 83153664f5 Remove deprecated syntax from robot spec 2014-11-26 09:42:09 -08:00
Andrew Stewart ca8e22f1e2 Fluent #device/#connection update
Now pass name, then object of details

    #device({ name: 'ping', driver: 'ping' });
    // vs
    #device('ping', { driver: 'ping' });
2014-11-26 09:33:19 -08:00
Andrew Stewart 15c9b96333 Extract out Connection/Device initialization
Simple extraction out of Connection/Device initialization code inside
Robot.

This yields an interesting boon, however - this is now a valid Cylon
program:

    var Cylon = require('cylon');

    Cylon
      .robot()
      .connection({ name: 'loopback', adaptor: 'loopback' })
      .device({ name: 'ping', driver: 'ping' })
      .on('ready', function(bot) {
        console.log("Bot working!");

        every(1000, function() {
          console.log(bot.ping.ping());
        })
      });

    Cylon.start();

For those that prefer imperative programs with Cylon, this is a nice
syntax addition.
2014-11-20 08:43:08 -08:00
Andrew Stewart 8da2a17929 Fix broken test 2014-11-14 11:01:57 -08:00
Andrew Stewart 38bf5fdfed Refer to Adaptor instances as 'Connection' 2014-11-14 10:56:45 -08:00
Andrew Stewart ce87a355f0 Modifications, fix test suite 2014-11-11 11:41:23 -08:00