# Ruby Client Library

## Installation

To install via [Gem](https://rubygems.org/gems/tomba):

```bash
gem install tomba --save
```

## Usage

### Domain Search

Get email addresses found on the internet.

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

domain = Tomba::Domain.new(client);

response = domain.domain_search(domain: 'stripe.com');

puts response
```

### Email Finder

Find the verified email address of any professional.

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

finder = Tomba::Finder.new(client);

response = finder.email_finder(domain: 'stripe.com', first_name: 'fname', last_name: 'lname');

puts response
```

### Email Verifier

Verify the validity of any professional email address with the most complete email checker.

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

verifier = Tomba::Verifier.new(client);

response = verifier.email_verifier(email: 'm@wordpress.org');

puts response
```

## Examples

### Get Account Information

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

account = Tomba::Account.new(client);

response = account.get_account();

puts response
```

### Email Count

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

count = Tomba::Count.new(client);

response = count.email_count(domain: 'tomba.io');

puts response
```

### Finder Services

#### Author Finder

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

finder = Tomba::Finder.new(client);

response = finder.author_finder(url: 'https://clearbit.com/blog/company-name-to-domain-api');

puts response
```

#### LinkedIn Finder

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

finder = Tomba::Finder.new(client);

response = finder.linkedin_finder(url: 'https://www.linkedin.com/in/alex-maccaw-ab592978');

puts response
```

#### Phone Finder

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

finder = Tomba::Finder.new(client);

response = finder.phone_finder(email: '******@zapier.com');

puts response
```

### API Key Management

#### Create API Key

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

keys = Tomba::Keys.new(client);

response = keys.create_key();

puts response
```

#### Delete API Key

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

keys = Tomba::Keys.new(client);

response = keys.delete_key(id: '');

puts response
```

#### Get All API Keys

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

keys = Tomba::Keys.new(client);

response = keys.get_keys();

puts response
```

#### Reset API Key

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

keys = Tomba::Keys.new(client);

response = keys.reset_key(id: '');

puts response
```

### Lead Attributes Management

#### Create Lead Attribute

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

leads_attributes = Tomba::LeadsAttributes.new(client);

response = leads_attributes.create_lead_attribute();

puts response
```

#### Delete Lead Attribute

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

leads_attributes = Tomba::LeadsAttributes.new(client);

response = leads_attributes.delete_lead_attribute(id: '[Lead_Attributes_ID]');

puts response
```

#### Get Lead Attributes

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

leads_attributes = Tomba::LeadsAttributes.new(client);

response = leads_attributes.get_lead_attributes();

puts response
```

#### Update Lead Attribute

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

leads_attributes = Tomba::LeadsAttributes.new(client);

response = leads_attributes.update_lead_attribute(id: '[Lead_Attributes_ID]');

puts response
```

### Lead Lists Management

#### Create Lead List

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

leads_lists = Tomba::LeadsLists.new(client);

response = leads_lists.create_list();

puts response
```

#### Delete Lead List

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

leads_lists = Tomba::LeadsLists.new(client);

response = leads_lists.delete_list_id(id: '[LIST_ID]');

puts response
```

#### Get All Lead Lists

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

leads_lists = Tomba::LeadsLists.new(client);

response = leads_lists.get_lists();

puts response
```

#### Update Lead List

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

leads_lists = Tomba::LeadsLists.new(client);

response = leads_lists.update_list_id(id: '[List_ID]');

puts response
```

### Activity Logs

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

logs = Tomba::Logs.new(client);

response = logs.get_logs();

puts response
```

### Email Sources

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

sources = Tomba::Sources.new(client);

response = sources.email_sources(email: 'b.mohamed@tomba.io');

puts response
```

### Domain and Company Status

#### Auto Complete

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

status = Tomba::Status.new(client);

response = status.auto_complete(query: 'google');

puts response
```

#### Domain Status

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

status = Tomba::Status.new(client);

response = status.domain_status(domain: 'gmail.com');

puts response
```

### Usage Statistics

```ruby
require 'tomba'

client = Tomba::Client.new()

client
    .set_key('ta_xxxx') # Your Key
    .set_secret('ts_xxxx') # Your Secret
;

usage = Tomba::Usage.new(client);

response = usage.get_usage();

puts response
```

For more sample codes, check the [**examples/**](https://github.com/tomba-io/ruby/tree/master/examples) folder.
