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
This allows a CommanderAgent to control only some of the targets
depending on the agent attributes. For example, you can update the
threshold value of a target agent only if the current value is
lower (or higher) than the suggested new value.
Updates google-api-client to 0.13 along with GoogleCalendarPublishAgent
and GoogleTranslationAgent to newer API signatures. In preparation for
including a google-cloud-bigquery gem and Agent which would otherwise
have dependency version mismatches.
May break backwards compatibility for the GoogleCalendarPublishAgent due to Google's new preferred
authentication method. PKCS12 keys are no longer support by the gem,
in favor of RSA private keys / JSON key files.
The new API no longer uses a discovery method and implements methods in
Ruby, adopting snake case names for object keys. So `dateTime` becomes
`date_time`. `time_zone` also appears to now be required.
Detecting the database type by the name this time, because
ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter is defined only
if the mysql2 gem is loaded.
This works around #1940 for the most typical cases.
* Option for custom response headers for receive_web_request
In DataOutputAgent, WebhookAgent, LiquidOutputAgent, this enables
setting options['response_headers'] as a JSON object with custom
response headers to set on the HTTP response through the
WebRequestsController.
* code copy edits from @cantino