comics-apps/comic_vine-api

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# ComicVine::Api

[![Gem Downloads](https://img.shields.io/gem/dt/comic_vine-api.svg)](https://rubygems.org/gems/comic_vine-api)
[![Build Status](https://travis-ci.org/comics-apps/comic_vine-api.svg?branch=master)](https://travis-ci.org/comics-apps/comic_vine-api)
[![Code Climate](https://codeclimate.com/github/comics-apps/comic_vine-api.svg)](https://codeclimate.com/github/comics-apps/comic_vine-api)

A simple ComicVine API client for Ruby, inspired by the koala's gem style.

This gem contains several advantages over other API clients:
* unlike with `comic_vine` gem, you can fetch series list
* you can write own http service class which can use different gem than `faraday`
* response is returned as pure Hash instead of mapping to different object
* default http service class allows you to override http options like proxy settings.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'comic_vine-api'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install comic_vine-api

## Usage

```ruby
api_key = 'foo'
options = {}
service = ComicVine::Api.new(api_key, **options)
```

There are two static methods:

* search

```ruby
service.search(...)
```

* types

```ruby
service.types
```

Rest of methods, for resources are creating dynamically. If API some method will change you can call `#redefine_api_methods` which recreate method from `types` API endpoint.
 
Gem provides also universal method which allows you to create custom call to API:

```ruby
service.api_call(path, args, options)
```

* path - append to `http://comicvine.gamespot.com/api/`
* args - query params
* options - options for http service class

Dynamic methods:

* `character(id, args)`
* `characters(args)`
* `chat(id, args)`
* `chats(args)`
* `concept(id, args)`
* `concepts(args)`
* `episode(id, args)`
* `episodes(args)`
* `issue(id, args)`
* `issues(args)`
* `location(id, args)`
* `locations(args)`
* `movie(id, args)`
* `movies(args)`
* `object(id, args)`
* `objects(args)`
* `origin(id, args)`
* `origins(args)`
* `person(id, args)`
* `people(args)`
* `power(id, args)`
* `powers(args)`
* `promo(id, args)`
* `promos(args)`
* `publisher(id, args)`
* `publishers(args)`
* `series(id, args)`
* `series_list(args)`
* `story_arc(id, args)`
* `story_arcs(args)`
* `team(id, args)`
* `teams(args)`
* `video(id, args)`
* `videos(args)`
* `video_type(id, args)`
* `video_types(args)`
* `video_category(id, args)`
* `video_categories(args)`
* `volume(id, args)`
* `volumes(args)`

Check official API docs what arguments you can use: http://comicvine.gamespot.com/api/documentation


## Development

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/Krzysztof Wawer/comic_vine-api.


## License

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