README.md
# 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).