Absolventa/ereignishorizont

View on GitHub
README.md

Summary

Maintainability
Test Coverage
## Deprecation

Please note that Ereignishorizont is deprecated and therefore no longer actively maintained. 

## README [![Code Climate](https://codeclimate.com/github/Absolventa/ereignishorizont.png)](https://codeclimate.com/github/Absolventa/ereignishorizont) [![Build Status](https://travis-ci.org/Absolventa/ereignishorizont.png?branch=master)](https://travis-ci.org/Absolventa/ereignishorizont)

Welcome to Ereignishorizont!

## Description

Ereignishorizont is an open event-logging system
with triggers/hooks to run arbitrary tasks when an event is
matched or not matched.

It was proposed as a project for the [Rails Girls Summer of Code](http://railsgirlssummerofcode.org/).
Its two main contributors are the Rails Girls Susanne and Tam who
worked on the project from July 2 - September 30, 2013
at the [ABSOLVENTA](https://www.absolventa.de) offices in Berlin.



### Features

- Track events
- Receive an email about if your event of choice occurred or not

### Installation
Download the code (or fork / clone locally). To host your instance
on Heroku, you need:

1. a database
2. a scheduler that runs `rake matcher` once per hour
3. a scheduler that runs `rake cleanup` daily (optional, see Configuration below)

### Configuration

The app can be configured using `EREIGNISHORIZONT_*` environment variables
or, alternatively, a `config/config.yml` file. See `config/initializers/app_config.rb`
for details and default values.

As of v1.7, a cleanup task to purge old incoming events is included. Add `rake cleanup` to your scheduler (see Installation) and set a `EREIGNISHORIZONT_RETENTION_MONTHS` environment variable. For example, `EREIGNISHORIZONT_RETENTION_MONTHS=10` will delete all incoming events older than 10 months every time the rake task runs.

### Client access

incoming events require an API token. It can be obtained by
creating a ``RemoteSide`` record.

Example for registering an event using JSON:

    API_TOKEN=a2ade3bd297bf93a039b06b8560ab193
    curl -i -X POST \
      -H 'Content-type: application/json' \
      -d '{
        "incoming_event": { "title": "my event identifier"},
        "api_token": "$API_TOKEN"
      }' \
      http://localhost:3000/incoming_events.json


Example for registering an event using XML:

    API_TOKEN=a2ade3bd297bf93a039b06b8560ab193
    curl -i -X POST \
      -H 'Content-type: application/xml' \
      -d '<incoming_event><title>xml formatted</title></incoming_event>' \
      http://localhost:3000/incoming_events.xml?api_token=$API_TOKEN

To use the corresponding gem:

`gem install ereignishorizont-client`

(More info about Ereignishorizont's corresponding gem can
be found [here](https://github.com/Absolventa/ereignishorizont-client)).

### Changelog

*v2.0.0 // 2016-06-02*
* [Renamed app](https://github.com/Absolventa/ereignishorizont/commit/31370d88e0cf53bc1018cb7ab85f65406cdb8055)) from 'Event Girl' to 'Ereignishorizont'

*v1.7.0 // 2015-11-10*
* Updated to Rails v4.2
* Updated to C-Ruby 2.2
* Allow auto-purging of old incoming events

*v1.6.0 // 2015-05-05*
* Allow filtering by remote side / origin

*v1.5.0 // 2014-05-05*
* Updated to Rails v4.1
* Updated to MRI v2.1.1
* Search through expected events' list

*v1.4.0 // 2014-02-05*
* All time values are now UTC
* Allow per-user definition of local time zone

*v1.3.2 // 2014-02-05*
* Fixed issue with final hour range (now a proper 0..23)
* Supports searching for incoming events

*v1.3.1 // 2014-01-14*
* Upgrade to Rails v4.0.2

*v1.3.0 // 2013-11-05*
* Supports event expectations for monthly tasks

*v1.2.0 // 2013-10-24*
* Allows alarms to be shared between expected events
* Requires expected event to belong to a specific remote side
* Minor bugfixes and refactorings

*v1.1.0 // 2013-10-08*
* Accepts optional ``content`` attribute for incoming events
* Heaved instance methods from Matcher onto class level
* Minor bugfixes and refactorings

*v1.0.0 // 2013-09-30*
* RGSoC final version

### Contributors

- [Susanne Dewein](https://github.com/FrauBienenstich)
- [Tam Eastley](https://github.com/berlintam)
- [Carsten Zimmermann](https://github.com/carpodaster)
- [Tobias Pfeiffer](https://github.com/PragTob)