The `select_agent_type` helper is waiting for the options editor to be
initialized, which will never happen for Agents that are
FormConfigurable. The GrowlAgent was recently changed to
FormConfigurable which mean the spec should always have failed.
I have no idea how it passes on CI in some cases but this should fix the
'random' failures.
The to_xml method encodes `{ "category": ["a", "b"] }` as follows:
```xml
<item>
<category>
<category>a</category>
<category>b</category>
</category>
</item>
```
Instead of this:
```xml
<item>
<category>a</category>
<category>b</category>
</item>
```
Even if `category` is a singular noun. This feature prevents
DataOutputAgent from emitting multiple `<category>` elements (or
`<enclosure>`, etc.) properly, so I've added a tweak to fix the
resulted XML document.
I know the code in the current form is far from optimal, so I think
we'll have to revisit here soon or later...
The Agent expects the data in its memory groups to be castable to a
float. By attempting the type cast when receiving events we prevent the
memory from being corrupted with invalid data which lead exceptions
while trying to access it.
#2101
It now additionally allows to use `sticky`, `priority` and
`callback_url`. The Agent is now `FormConfigurable` and supports Liquid
in all options.
`register_growl` had to be moved inside of the `events` loop to allow
Liquid interpolation for the previously static `growl_*` options.
#2018
* Keep X events to make Digest from
Added a configuration option to save a fixed number of events for the Digest. Currently all received events are purged when an event is emitted by this agent. This option allows received events to be remembered and reused for future Digests.
* added validate_options for new config
Added a check to prevent negative numbers, which would cause breakage. Also gave an upper limit at 999, just to set a sane maximum.
* removed unnecessary while loop
As suggested by @dsander here: https://github.com/huginn/huginn/pull/2041#discussion_r123965060
* Updated name of feature and description
* ensure retained_events is an Integer
* typo in check if retained events is int
* specs for digest_agent
* removed validate as integer
* removed check for integer status
* Rspec mostly working
Got rspec mostly working. The #'working?' check for events received in last few days is failing for me, but it was failing for other agents too on my setup. Likely a local problem, so lets see if this passes the automated builds.
* removed comments
ack. forgot about those