Commit Graph

72 Commits

Author SHA1 Message Date
deadprogram 4ec19961f8 Devices will only be started up once, and can be added dynamically 2015-09-01 18:12:39 -07:00
deadprogram bba5b1e653 Add 'finish' to time-based helpers 2015-09-01 11:30:55 -07:00
deadprogram 9f83eaa7a2 Fix #311 by setting default for tests to 'silent' 2015-09-01 10:18:17 -07:00
deadprogram 7415daed0c Add minutes time functions, for a complete range 2015-09-01 06:43:14 -07:00
deadprogram 012578f012 Convenience functions for milliseconds and microseconds 2015-08-31 21:34:41 -07:00
Ron Evans bea67b2e5e Merge pull request #305 from hybridgroup/refactor/logger
Simplify logger
2015-08-31 21:19:22 -07:00
Andrew Stewart 67f0386bb5 prevent callback(err) from messing with shutdown 2015-07-21 10:31:52 -07:00
Andrew Stewart 843e0a3217 Simplify logger
This commit adds a simplified logging system, with two primary methods:

- `Logger#log(String) :: void` (for normal logging)
- `Logger#debug(String) :: void` (for debug logging)

This helps dramatically simplify logging infrastructure, as well as
enabling simpler toggling of log modes.

The configuration values for the Logger have also been updated:

- `logger :: Function` - function to log output to (both normal + debug)
- `silent :: Boolean` - whether to log default normal messages or not (`--silent` flag)
- `debug  :: Boolean` - whether or not to log debug output (`--debug` flag)

Additionally, the following CLI flags are supported re: logging:

- `--silent` disables normal logging (will override all other settings)
- `--debug` enables debug logging

Deprecation notices have been added for old log methods, with first-run
messages to this effect.

This change should have negligible impact on end-users, with minor
inconvenience for library developers, as they need to switch their
logging function calls over.

Logging configuration is still possible via both
`Cylon.Config.update(Object)`, and directly calling
`Cylon.Logger.setup(Object)`.
2015-07-13 14:05:12 -07:00
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