<commit_before>[ ![Download](https://api.bintray.com/packages/fobsolutions/io.cify/cify-framework/images/download.svg) ](https://bintray.com/fobsolutions/io.cify/cify-framework/_latestVersion)

1. <a href="#what">What Is Cify Framework?</a>
2. <a href="#usage">How To Use Cify Framework</a>

<a name="what" />
## What Is Cify Framework?

Cify Framework is part of an open source test automation tool called Cify. Framework is responsible for managing communication with devices, and handling device actions (click, touch, tap, fillIn, sendKeys etc.) independently from device platform.

All examples are written in Groovy, optionally users can use Java.

<a name="usage" />
## How To Use Cify Framework

### Installation
Add Gradle dependency to your project as following:

```
repositories {
    maven {
        url "http://fobsolutions.bintray.com/io.cify"
    }
}

dependencies {
    // Check the latest version above
    compile 'io.cify:cify-framework:1.2.8'
}
```

### Framework configuration

When framework is used as a standalone project, then user must provide framework configuration.

Framework configuration must be defined in **configuration.json** file located in project root.
Configuration must contain all needed devices and their capabilities.
Optionally, configuration could contain framework parameters. 

**configuration.json** example:<commit_msg>Update maven repository url<commit_after>1. <a href="#what">What Is Cify Framework?</a>
2. <a href="#usage">How To Use Cify Framework</a>

<a name="what" />
## What Is Cify Framework?

Cify Framework is part of an open source test automation tool called Cify. Framework is responsible for managing communication with devices, and handling device actions (click, touch, tap, fillIn, sendKeys etc.) independently from device platform.

All examples are written in Groovy, optionally users can use Java.

<a name="usage" />
## How To Use Cify Framework

### Installation
Add Gradle dependency to your project as following:

```
repositories {
    maven {
        url = 'https://cify-artifacts.s3.eu-central-1.amazonaws.com'
    }
}

dependencies {
    // Check the latest version above
    compile 'io.cify:cify-framework:1.2.8'
}
```

### Framework configuration

When framework is used as a standalone project, then user must provide framework configuration.

Framework configuration must be defined in **configuration.json** file located in project root.
Configuration must contain all needed devices and their capabilities.
Optionally, configuration could contain framework parameters. 

**configuration.json** example:
{'fraction_non_alphanumeric': 0.09768339768339768, 'fraction_numerical': 0.004633204633204633, 'mean_word_length': 4.560085836909871, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1479724', 'n_tokens_mistral': 719, 'n_tokens_neox': 681, 'n_words': 281}