andela-mogala/shot_api_gem

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Code Climate](https://codeclimate.com/github/andela-mogala/shot_api_gem/badges/gpa.svg)](https://codeclimate.com/github/andela-mogala/shot_api_gem)  [![Build Status](https://travis-ci.org/andela-mogala/shot_api_gem.svg?branch=master)](https://travis-ci.org/andela-mogala/shot_api_gem)

# ShotApiGem

Shot api gem was built out of a desire to make interactions with the [turbo-url](http://turbo-url.herokuapp.com) api a hassle free process. It does the job of communicating with the api and returns ruby objects that you can use directly in your code.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'shot_api_gem'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install shot_api_gem

## Usage
This gem is intended for use directly with your ruby code. The entry point to all interactions with the turbo-url api is from the ShotApiGem::Consumer class.
This class accepts an api key when creating an instance.

### Getting an API key.
* Create an account on [turbo-url](http://turbo-url.herokuapp.com) if you don't already have one
* Visit your dashboard and find the `Generate API Key` button.
* Clicking on this button generates an api key.
* You can now copy this key and use it with the gem

### Making requests
Start by creating an instance of Consumer class

```ruby
resource = ShotApiGem::Consumer.new(api_key)
```

You can now call methods like

```ruby
resource.fetch_all
```
This returns an array of links that you have created with your account.

```ruby
resource.fetch(1)
```
Returns the link with `{ id: 1 }`

```ruby
resource.create({ url: 'somelink.com', slug: 'slk' })
```
creates a new link and returns the created link as an object

```ruby
resource.update(1, { url: 'anotherlink.com', slug: 'anlk' })
```
updates the link with `{ id: 1 }` and returns the updated link as an object

```ruby
resource.delete(1)
```
deletes the link with `{ id: 1 }` but doesn't return any content

A typical Link object has the following properties:
* id
* url
* slug
* active
* clicks
* title
* date_created
* date_updated

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/andela-mogala/shot_api_gem. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.


## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).