comicvine-mongo 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +76 -0
- data/Rakefile +42 -0
- data/bin/console +18 -0
- data/bin/setup +8 -0
- data/certs/homans.pem +21 -0
- data/checksum/comicvine-mongo-0.1.0.gem.sha256 +1 -0
- data/comicvine-mongo.gemspec +39 -0
- data/lib/comicvine/mongo/version.rb +5 -0
- data/lib/comicvine/mongo.rb +783 -0
- data.tar.gz.sig +2 -0
- metadata +228 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 34cf61f387ea7c4cb89bebc48c9f8fb9df50f9f0
|
|
4
|
+
data.tar.gz: 6f7e118f2a83c1e7754ebda4544833a687952504
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e9ce4b53dcf99f7a91637c5b94600b8b047274d53b9591bde959839ef6f7b58878956d7ce2a1f8f5cb7a0d3b5824ce3a92b4486965009787f46a196e11e8cbb0
|
|
7
|
+
data.tar.gz: d43fd87b9b1dd65ae8032d459e3e94d60755a4e1e3b463cff1538d044fba1b1bf6f8d92b1eb67cc89e62175bb668b590ea17223f6bd79dbfadb331cf6c987cd7
|
checksums.yaml.gz.sig
ADDED
|
Binary file
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016 Holden Omans
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# ComicVine::Mongo
|
|
2
|
+
|
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/comicvine/mongo`. To experiment with that code, run `bin/console` for an interactive prompt.
|
|
4
|
+
|
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
Add this line to your application's Gemfile:
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
gem 'comicvine-mongo'
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
And then execute:
|
|
16
|
+
|
|
17
|
+
$ bundle
|
|
18
|
+
|
|
19
|
+
Or install it yourself as:
|
|
20
|
+
|
|
21
|
+
$ gem install comicvine-mongo
|
|
22
|
+
|
|
23
|
+
You additionally will need to set up your ComicVine Api key [[See the comicvine gem page](https://github.com/kalinon/ruby-comicvine-api)] as well as set up your mongoid connection [[See mongoid documentaion](https://docs.mongodb.com/ruby-driver/master/tutorials/6.0.0/mongoid-installation/#configuration)]
|
|
24
|
+
|
|
25
|
+
```ruby
|
|
26
|
+
# Example config
|
|
27
|
+
ComicVine::API.api_key = '18357f40df87fb4a4aa6bbbb27cd8ad1deb08d3e'
|
|
28
|
+
Mongoid.load!('/path/to/mongo.yml', :env_name)
|
|
29
|
+
```
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
You can use the same syntax used with the comicvine gem to interact with the api. Now, however, you functions will return a resource subclass appropriate for the api call
|
|
33
|
+
|
|
34
|
+
```ruby
|
|
35
|
+
ComicVine::API.get_details(:issue, 6) #=> ComicVine::Resource::Issue
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
These are subclasses of ComicVine::Resource and are each a [Mongoid::Document](http://www.rubydoc.info/github/mongoid/mongoid/Mongoid/Document). Here are the current subclasses:
|
|
39
|
+
|
|
40
|
+
> Character, Concept, Episode, Issue, Location, Movie, Object, Origin, Person, Power, Promo, Publisher, Series, StoryArc, Team, Volume
|
|
41
|
+
|
|
42
|
+
Here is some example usages:
|
|
43
|
+
|
|
44
|
+
```ruby
|
|
45
|
+
# Gather an issue from the api
|
|
46
|
+
issue = ComicVine::API.get_details(:issue, 6)
|
|
47
|
+
# You can then save the issue
|
|
48
|
+
issue.save!
|
|
49
|
+
# You can also then save its parent and children objects (i.e Publisher, Characters, etc)
|
|
50
|
+
issue.save_assoc!
|
|
51
|
+
|
|
52
|
+
# You can also query objects that were saved via Mongoid
|
|
53
|
+
pub = ComicVine::Resource::Publisher.find(4)
|
|
54
|
+
# To update the object with newest API information or to fill missing children/parent relations
|
|
55
|
+
pub.fetch!
|
|
56
|
+
# Then you can save your changes
|
|
57
|
+
pub.save!
|
|
58
|
+
pub.save_assoc!
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## Development
|
|
63
|
+
|
|
64
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
65
|
+
|
|
66
|
+
To install this gem onto your local machine, run `gem install comicvine`. Or you can download it from https://rubygems.org/gems/comicvine-mongo
|
|
67
|
+
|
|
68
|
+
## Contributing
|
|
69
|
+
|
|
70
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/kalinon/ruby-comicvine-mongo.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
## License
|
|
74
|
+
|
|
75
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
|
76
|
+
|
data/Rakefile
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
2
|
+
require 'rake/testtask'
|
|
3
|
+
require 'yard'
|
|
4
|
+
|
|
5
|
+
# Test tasks
|
|
6
|
+
Rake::TestTask.new(:test) do |t|
|
|
7
|
+
t.libs << 'test'
|
|
8
|
+
t.libs << 'lib'
|
|
9
|
+
t.test_files = FileList['test/**/*_test.rb']
|
|
10
|
+
t.warning = false
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
YARD::Rake::YardocTask.new do |t|
|
|
14
|
+
begin
|
|
15
|
+
#require 'yard-mongoid'
|
|
16
|
+
rescue LoadError => e
|
|
17
|
+
puts 'Could not require yard-mongoid'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
t.files = ['lib/**/*.rb'] # optional
|
|
21
|
+
t.options = %w{--private} # optional
|
|
22
|
+
t.stats_options = ['--list-undoc'] # optional
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Default task
|
|
26
|
+
task :default => :test
|
|
27
|
+
|
|
28
|
+
task :console do
|
|
29
|
+
require 'irb'
|
|
30
|
+
require 'irb/completion'
|
|
31
|
+
require 'comicvine/scraper' # You know what to do.
|
|
32
|
+
ARGV.clear
|
|
33
|
+
IRB.start
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
Rake::Task['build'].enhance do
|
|
37
|
+
require 'digest/sha2'
|
|
38
|
+
built_gem_path = 'pkg/comicvine-mongo-'+ComicVine::Mongo::VERSION+'.gem'
|
|
39
|
+
checksum = Digest::SHA256.new.hexdigest(File.read(built_gem_path))
|
|
40
|
+
checksum_path = 'checksum/comicvine-mongo-'+ComicVine::Mongo::VERSION+'.gem.sha256'
|
|
41
|
+
File.open(checksum_path, 'w' ) {|f| f.write(checksum) }
|
|
42
|
+
end
|
data/bin/console
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
require 'comicvine/mongo'
|
|
5
|
+
|
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
+
|
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
+
# require "pry"
|
|
11
|
+
# Pry.start
|
|
12
|
+
|
|
13
|
+
ENV['RACK_ENV'] = 'development'
|
|
14
|
+
#Mongoid.load!(File.join(File.expand_path('../../test', __FILE__), 'mongo.yml'), ENV['RACK_ENV'])
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
require 'irb'
|
|
18
|
+
IRB.start
|
data/bin/setup
ADDED
data/certs/homans.pem
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRUwEwYDVQQDDAxob2xk
|
|
3
|
+
ZW4ub21hbnMxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
|
4
|
+
A2NvbTAeFw0xNjExMDkxNTU5MTdaFw0xNzExMDkxNTU5MTdaMEMxFTATBgNVBAMM
|
|
5
|
+
DGhvbGRlbi5vbWFuczEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
|
6
|
+
LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2V7yrTuO
|
|
7
|
+
4FNzWlhQL2R8Vdx5LKX/oewZ7bKh/2GJcR5R7mowdqejlfzJb7abtmYsQfyvwNfy
|
|
8
|
+
NrKneghJ/rLflQ1NrlehYSYLlBFTVuymPvejG+EH5C2/RJqhm2zyfjkisasqhWk8
|
|
9
|
+
Bq6IUPX1l8C78Kkd6t3QR/n3zr1Ip25NicpJ2flBMHPg3IV9qaNXywkCzutkEMoW
|
|
10
|
+
FuHdHMN2cDMUnhM9qGOK7nvRk7rkP/yJAp+sf2nv+C99s5CMNuvnGeSgnX7IMcRV
|
|
11
|
+
Ks2FrSvqKDj24Xf5kHdlcpDrS1VcFsAkIT6bVBm19KO8pFvZkDJE76Yshy80FRpQ
|
|
12
|
+
bijjrYQhYXiM4QIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
|
|
13
|
+
HQ4EFgQUbbbHhJ0Z4S/c5FcDSqEVx7Yk1agwIQYDVR0RBBowGIEWaG9sZGVuLm9t
|
|
14
|
+
YW5zQGdtYWlsLmNvbTAhBgNVHRIEGjAYgRZob2xkZW4ub21hbnNAZ21haWwuY29t
|
|
15
|
+
MA0GCSqGSIb3DQEBBQUAA4IBAQCoC/7FnCsRFIV/rwAJRXY3Ao0qdbnksPrqUhP0
|
|
16
|
+
7A8m8PccIDuUspq/WtkhzSMLZvzurlXEw1qdLtRLS2LnftQQuo5YPz6PQj4XAx8w
|
|
17
|
+
yF48j5e3XvUZJiMQ+cIsXPnjes13JgnP/KOfILgfIz9ad0pGMMUCTLYahu+fXqxE
|
|
18
|
+
if+otWjB2is7MBxd+krcr8vCJ4E46a8H3zyBN/tSgGw4RwkxHnXekTJvMy4skcSB
|
|
19
|
+
VpDNqh/BlGMQ0mqAEuBFZFSNaroph6JLUz1ykVvQENOQLThxAjolK7SAUrdoBDOc
|
|
20
|
+
fXEVP1s+hpJB6IEU8/LW016TU8WpnA+MHGfJRtkrUm/cEsWU
|
|
21
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c41a9e3d7ea4f6345b6f8aed801de86dd2e15c1544f35e69b335839eb5d61a6e
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'comicvine/mongo/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = 'comicvine-mongo'
|
|
8
|
+
spec.version = ComicVine::Mongo::VERSION
|
|
9
|
+
spec.authors = ['Holden Omans']
|
|
10
|
+
spec.email = ['holden.omans@gmail.com']
|
|
11
|
+
|
|
12
|
+
spec.summary = %q{Mongo extension to the comicvine gem}
|
|
13
|
+
spec.description = %q{Allows saving of comicvine resources to a Mongodb using Mongoid}
|
|
14
|
+
spec.homepage = 'https://github.com/kalinon/ruby-comicvine-mongo'
|
|
15
|
+
spec.license = 'MIT'
|
|
16
|
+
|
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
18
|
+
f.match(%r{^(test|spec|features)/})
|
|
19
|
+
end
|
|
20
|
+
spec.bindir = 'exe'
|
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
22
|
+
spec.require_paths = ['lib']
|
|
23
|
+
spec.required_ruby_version = '>= 2.2'
|
|
24
|
+
|
|
25
|
+
spec.cert_chain = ['certs/homans.pem']
|
|
26
|
+
spec.signing_key = File.expand_path('~/.ssh/gem-private_key.pem') if $0 =~ /gem\z/
|
|
27
|
+
|
|
28
|
+
spec.add_development_dependency 'bundler', '~> 1.13'
|
|
29
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
|
30
|
+
spec.add_development_dependency 'minitest', '~> 5.9', '>= 5.9.1'
|
|
31
|
+
spec.add_development_dependency 'minitest-reporters', '~> 1.1', '>= 1.1.12'
|
|
32
|
+
spec.add_development_dependency 'rdoc', '~> 4.2', '>= 4.2.1'
|
|
33
|
+
spec.add_development_dependency 'yard', '~> 0.9', '>= 0.9.5'
|
|
34
|
+
#spec.add_development_dependency 'yard-mongoid', '~> 0.0.4' # pending merge acceptance and update
|
|
35
|
+
|
|
36
|
+
# Dependencies
|
|
37
|
+
spec.add_dependency 'comicvine', '~> 0.1', '>= 0.1.2'
|
|
38
|
+
spec.add_dependency 'mongoid', '~> 6.0', '>= 6.0.2'
|
|
39
|
+
end
|
|
@@ -0,0 +1,783 @@
|
|
|
1
|
+
require 'comicvine/mongo/version'
|
|
2
|
+
require 'comicvine'
|
|
3
|
+
require 'mongoid'
|
|
4
|
+
|
|
5
|
+
## Yardoc macros
|
|
6
|
+
# @!macro [new] return.sub_resources
|
|
7
|
+
# @return [ Resource::Character, Resource::Concept, Resource::Episode, Resource::Issue, Resource::Location, Resource::Movie, Resource::Object, Resource::Origin, Resource::Person, Resource::Power, Resource::Promo, Resource::Publisher, Resource::Series, Resource::StoryArc, Resource::Team, Resource::Volume ]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
module ComicVine
|
|
11
|
+
|
|
12
|
+
##
|
|
13
|
+
# Module to hold our mongoid specific methods and overrides for {ComicVine::Resource}
|
|
14
|
+
# @since 0.1.0
|
|
15
|
+
module Mongo
|
|
16
|
+
##
|
|
17
|
+
# Replaces the default {ComicVine::Resource::initialize} function, allowing us to create mongo enabled classes
|
|
18
|
+
# @since 0.1.0
|
|
19
|
+
def initialize(args)
|
|
20
|
+
|
|
21
|
+
args.each do |k, v|
|
|
22
|
+
|
|
23
|
+
# Convert sub arrays to objects
|
|
24
|
+
v.collect! { |i| ComicVine::Resource::create_resource(i) } if v.kind_of?(Array) && !v.empty? && v.first.key?('api_detail_url')
|
|
25
|
+
|
|
26
|
+
# Convert sub hashes to objects
|
|
27
|
+
if v.kind_of?(Hash) && v.key?('api_detail_url')
|
|
28
|
+
v = ComicVine::Resource::create_resource(v)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Set the instance variable to value
|
|
32
|
+
args[k] = v
|
|
33
|
+
end
|
|
34
|
+
#puts args.to_json
|
|
35
|
+
super
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
# Cycles through associated id's on the object and loads/fetches the child/parent objects and saves them to mongo
|
|
40
|
+
# @since 0.1.0
|
|
41
|
+
def save_assoc!
|
|
42
|
+
# Identify methods that end in id or ids
|
|
43
|
+
self.methods.each do |attr|
|
|
44
|
+
# Match attribute ids
|
|
45
|
+
next if attr !~ /^(?!_)([\w\d\_]+)(_ids?)$/
|
|
46
|
+
|
|
47
|
+
# endings with ids imply multiple
|
|
48
|
+
if attr =~ /^(?!_)([\w\d\_]+)(_ids)$/
|
|
49
|
+
assoc = $1.to_s.pluralize.to_sym
|
|
50
|
+
|
|
51
|
+
next if self.reflect_on_association(assoc).nil?
|
|
52
|
+
|
|
53
|
+
meta = self.reflect_on_association(assoc)
|
|
54
|
+
self.method(attr).call.each do |id|
|
|
55
|
+
obj = self._fetch_by_assoc_and_id(meta, id)
|
|
56
|
+
obj.fetch!.save! unless obj.nil?
|
|
57
|
+
end
|
|
58
|
+
elsif attr =~ /^(?!_)([\w\d\_]+)(_id)$/
|
|
59
|
+
assoc = $1.to_s.to_sym
|
|
60
|
+
|
|
61
|
+
next if self.reflect_on_association(assoc).nil?
|
|
62
|
+
|
|
63
|
+
meta = self.reflect_on_association(assoc)
|
|
64
|
+
obj = self._fetch_by_assoc_and_id(meta, self.method(attr).call)
|
|
65
|
+
obj.fetch!.save! unless obj.nil?
|
|
66
|
+
else
|
|
67
|
+
next
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
##
|
|
73
|
+
# Will parse the relation metadata to identify the class and resource type. A check is performed to see if it is saved in the mongodb, if so it will then load it. It will then query ComicVine::API for the latest information, and return the resource
|
|
74
|
+
# @param meta [Mongoid::Relations::Metadata]
|
|
75
|
+
# @param id [Integer]
|
|
76
|
+
# @macro return.sub_resources
|
|
77
|
+
# @since 0.1.0
|
|
78
|
+
def _fetch_by_assoc_and_id(meta, id)
|
|
79
|
+
if Object.class_eval(meta.class_name).where(id: id).exists?
|
|
80
|
+
Object.class_eval(meta.class_name).find(id)
|
|
81
|
+
else
|
|
82
|
+
type = meta.class_name.demodulize.underscore.to_sym
|
|
83
|
+
|
|
84
|
+
if ComicVine::API.find_detail(type).nil?
|
|
85
|
+
nil
|
|
86
|
+
else
|
|
87
|
+
resource_name = ComicVine::API.find_detail(type)['detail_resource_name'].to_sym
|
|
88
|
+
|
|
89
|
+
begin
|
|
90
|
+
ComicVine::API.get_details(resource_name, id)
|
|
91
|
+
rescue ComicVine::API::ComicVineAPIError
|
|
92
|
+
return nil
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
class Resource
|
|
101
|
+
|
|
102
|
+
##
|
|
103
|
+
# Takes hash and returns a {http://www.rubydoc.info/github/mongoid/mongoid/Mongoid/Document Mongoid::Document} subclass of {ComicVine::Resource} based on identified type
|
|
104
|
+
#
|
|
105
|
+
# @example
|
|
106
|
+
# ComicVine::Resource.create_resource(hash) #=> #<ComicVine::Resource::Issue:0x007fa6a427bbe8>
|
|
107
|
+
#
|
|
108
|
+
# @param attr [Hash]
|
|
109
|
+
# @macro return.sub_resources
|
|
110
|
+
# @since 0.1.0
|
|
111
|
+
def self.create_resource(attr)
|
|
112
|
+
type = ComicVine::Resource::identify_and_update_response(attr)
|
|
113
|
+
|
|
114
|
+
if type
|
|
115
|
+
|
|
116
|
+
# if its a review the api doesnt actually exist, so return the hash
|
|
117
|
+
return attr if type.equal? :review
|
|
118
|
+
|
|
119
|
+
c = Object.class_eval('ComicVine::Resource::' + type.to_s.camelcase)
|
|
120
|
+
|
|
121
|
+
if c.where(id: attr['id']).exists?
|
|
122
|
+
c.find(attr['id'])
|
|
123
|
+
else
|
|
124
|
+
c.new attr
|
|
125
|
+
end
|
|
126
|
+
else
|
|
127
|
+
raise ScriptError, 'Unknown type for api_detail_url: ' + attr['api_detail_url']
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
##
|
|
132
|
+
# Extends {ComicVine::Resource::Issue} to add mongoid functions
|
|
133
|
+
# @since 0.1.2
|
|
134
|
+
class Issue < ComicVine::Resource
|
|
135
|
+
include Mongoid::Document
|
|
136
|
+
include ComicVine::Mongo
|
|
137
|
+
|
|
138
|
+
field :aliases, type: String
|
|
139
|
+
field :api_detail_url, type: String
|
|
140
|
+
field :cover_date, type: Date
|
|
141
|
+
field :date_added, type: DateTime
|
|
142
|
+
field :date_last_updated, type: DateTime
|
|
143
|
+
field :deck, type: String
|
|
144
|
+
field :description, type: String
|
|
145
|
+
field :has_staff_review, type: Hash
|
|
146
|
+
field :id, type: Integer
|
|
147
|
+
field :image, type: Hash
|
|
148
|
+
field :issue_number, type: Integer
|
|
149
|
+
field :name, type: String
|
|
150
|
+
field :site_detail_url, type: String
|
|
151
|
+
field :store_date, type: Date
|
|
152
|
+
|
|
153
|
+
##
|
|
154
|
+
# Accounts for ComicVine's miss-match return of false if no review exists. Sets an empty hash
|
|
155
|
+
# @param value [Hash]
|
|
156
|
+
# @since 0.1.0
|
|
157
|
+
def has_staff_review=(value)
|
|
158
|
+
if value.nil? || value.kind_of?(FalseClass)
|
|
159
|
+
self.has_staff_review = {}
|
|
160
|
+
else
|
|
161
|
+
super
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
##
|
|
166
|
+
# @return [true, false]
|
|
167
|
+
def has_staff_review?
|
|
168
|
+
!self.has_staff_review.empty?
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
belongs_to :volume, class_name: 'ComicVine::Resource::Volume', inverse_of: :issues, optional: true
|
|
173
|
+
|
|
174
|
+
has_many :first_appearance_teams, class_name: 'ComicVine::Resource::Team', inverse_of: :first_appeared_in_issue, validate: false
|
|
175
|
+
has_and_belongs_to_many :team_credits, class_name: 'ComicVine::Resource::Team', inverse_of: :issue_credits, validate: false
|
|
176
|
+
has_and_belongs_to_many :team_disbanded_in, class_name: 'ComicVine::Resource::Team', inverse_of: :issues_disbanded_in, validate: false
|
|
177
|
+
|
|
178
|
+
has_many :first_appearance_characters, class_name: 'ComicVine::Resource::Character', inverse_of: :first_appeared_in_issue, validate: false
|
|
179
|
+
has_and_belongs_to_many :character_credits, class_name: 'ComicVine::Resource::Character', inverse_of: :issue_credits, validate: false
|
|
180
|
+
has_and_belongs_to_many :character_died_in, class_name: 'ComicVine::Resource::Character', inverse_of: :issues_died_in, validate: false
|
|
181
|
+
|
|
182
|
+
has_many :first_appearance_concepts, class_name: 'ComicVine::Resource::Concept', inverse_of: :first_appeared_in_issue, validate: false
|
|
183
|
+
has_and_belongs_to_many :concept_credits, class_name: 'ComicVine::Resource::Concept', inverse_of: :issue_credits, validate: false
|
|
184
|
+
|
|
185
|
+
has_many :first_appearance_objects, class_name: 'ComicVine::Resource::Object', inverse_of: :first_appeared_in_issue, validate: false
|
|
186
|
+
has_and_belongs_to_many :object_credits, class_name: 'ComicVine::Resource::Object', inverse_of: :issue_credits, validate: false
|
|
187
|
+
|
|
188
|
+
has_many :first_appearance_storyarcs, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :first_appeared_in_issue, validate: false
|
|
189
|
+
has_and_belongs_to_many :story_arc_credits, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :issues, validate: false
|
|
190
|
+
|
|
191
|
+
has_many :first_appearance_locations, class_name: 'ComicVine::Resource::Location', inverse_of: :first_appeared_in_issue, validate: false
|
|
192
|
+
has_and_belongs_to_many :location_credits, class_name: 'ComicVine::Resource::Location', inverse_of: :issue_credits, validate: false
|
|
193
|
+
|
|
194
|
+
has_and_belongs_to_many :person_credits, class_name: 'ComicVine::Resource::Person', inverse_of: :issue_credits, validate: false
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
##
|
|
198
|
+
# Extends {ComicVine::Resource::Volume} to add mongoid functions
|
|
199
|
+
# @since 0.1.2
|
|
200
|
+
class Volume < ComicVine::Resource
|
|
201
|
+
include Mongoid::Document
|
|
202
|
+
include ComicVine::Mongo
|
|
203
|
+
|
|
204
|
+
field :aliases, type: String
|
|
205
|
+
field :api_detail_url, type: String
|
|
206
|
+
field :count_of_issues, type: Integer
|
|
207
|
+
field :date_added, type: DateTime
|
|
208
|
+
field :date_last_updated, type: DateTime
|
|
209
|
+
field :deck, type: String
|
|
210
|
+
field :description, type: String
|
|
211
|
+
field :id, type: Integer
|
|
212
|
+
field :image, type: Hash
|
|
213
|
+
field :name, type: String
|
|
214
|
+
field :site_detail_url, type: String
|
|
215
|
+
field :start_year, type: Integer
|
|
216
|
+
|
|
217
|
+
has_and_belongs_to_many :teams, class_name: 'ComicVine::Resource::Team', inverse_of: :volume_credits, validate: false
|
|
218
|
+
has_and_belongs_to_many :characters, class_name: 'ComicVine::Resource::Character', inverse_of: :volume_credits, validate: false
|
|
219
|
+
has_and_belongs_to_many :concepts, class_name: 'ComicVine::Resource::Concept', inverse_of: :volume_credits, validate: false
|
|
220
|
+
|
|
221
|
+
has_many :issues, class_name: 'ComicVine::Resource::Issue', inverse_of: :volume, validate: false
|
|
222
|
+
has_one :first_issue, class_name: 'ComicVine::Resource::Issue', validate: false
|
|
223
|
+
has_one :last_issue, class_name: 'ComicVine::Resource::Issue', validate: false
|
|
224
|
+
|
|
225
|
+
has_and_belongs_to_many :locations, class_name: 'ComicVine::Resource::Location', inverse_of: :volume_credits, validate: false
|
|
226
|
+
has_and_belongs_to_many :objects, class_name: 'ComicVine::Resource::Object', inverse_of: :volume_credits, validate: false
|
|
227
|
+
has_and_belongs_to_many :people, class_name: 'ComicVine::Resource::Person', inverse_of: :volume_credits, validate: false
|
|
228
|
+
|
|
229
|
+
belongs_to :publisher, class_name: 'ComicVine::Resource::Publisher', inverse_of: :volumes, validate: false
|
|
230
|
+
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
##
|
|
234
|
+
# Extends {ComicVine::Resource::Character} to add mongoid functions
|
|
235
|
+
# # @since 0.1.2
|
|
236
|
+
class Character < ComicVine::Resource
|
|
237
|
+
include Mongoid::Document
|
|
238
|
+
include ComicVine::Mongo
|
|
239
|
+
|
|
240
|
+
field :aliases, type: String
|
|
241
|
+
field :api_detail_url, type: String
|
|
242
|
+
field :date_added, type: DateTime
|
|
243
|
+
field :date_last_updated, type: DateTime
|
|
244
|
+
field :deck, type: String
|
|
245
|
+
field :description, type: String
|
|
246
|
+
field :id, type: Integer
|
|
247
|
+
field :image, type: Hash
|
|
248
|
+
field :name, type: String
|
|
249
|
+
field :site_detail_url, type: String
|
|
250
|
+
field :birth, type: String
|
|
251
|
+
field :count_of_issue_appearances, type: Integer
|
|
252
|
+
field :real_name, type: String
|
|
253
|
+
field :gender, type: Integer
|
|
254
|
+
|
|
255
|
+
has_and_belongs_to_many :character_enemies, class_name: 'ComicVine::Resource::Character', inverse_of: nil, validate: false
|
|
256
|
+
has_and_belongs_to_many :character_friends, class_name: 'ComicVine::Resource::Character', inverse_of: nil, validate: false
|
|
257
|
+
|
|
258
|
+
belongs_to :origin, class_name: 'ComicVine::Resource::Origin', inverse_of: :characters, validate: false, optional: true
|
|
259
|
+
|
|
260
|
+
has_and_belongs_to_many :creators, class_name: 'ComicVine::Resource::Person', inverse_of: :created_characters, validate: false
|
|
261
|
+
|
|
262
|
+
belongs_to :first_appeared_in_issue, class_name: 'ComicVine::Resource::Issue', inverse_of: :first_appearance_characters, validate: false
|
|
263
|
+
has_and_belongs_to_many :issue_credits, class_name: 'ComicVine::Resource::Issue', inverse_of: :character_credits, validate: false
|
|
264
|
+
has_and_belongs_to_many :issues_died_in, class_name: 'ComicVine::Resource::Issue', inverse_of: :character_died_in, validate: false
|
|
265
|
+
|
|
266
|
+
has_and_belongs_to_many :movies, class_name: 'ComicVine::Resource::Movie', inverse_of: :characters, validate: false
|
|
267
|
+
has_and_belongs_to_many :powers, class_name: 'ComicVine::Resource::Power', inverse_of: :characters, validate: false
|
|
268
|
+
|
|
269
|
+
belongs_to :publisher, class_name: 'ComicVine::Resource::Publisher', inverse_of: :characters, validate: false
|
|
270
|
+
has_and_belongs_to_many :story_arc_credits, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :characters, validate: false
|
|
271
|
+
|
|
272
|
+
has_and_belongs_to_many :team_enemies, class_name: 'ComicVine::Resource::Team', inverse_of: nil, validate: false
|
|
273
|
+
has_and_belongs_to_many :team_friends, class_name: 'ComicVine::Resource::Team', inverse_of: nil, validate: false
|
|
274
|
+
has_and_belongs_to_many :teams, class_name: 'ComicVine::Resource::Team', inverse_of: :characters, validate: false
|
|
275
|
+
|
|
276
|
+
has_and_belongs_to_many :volume_credits, class_name: 'ComicVine::Resource::Volume', inverse_of: :characters, validate: false
|
|
277
|
+
|
|
278
|
+
accepts_nested_attributes_for :origin, :publisher, :first_appeared_in_issue, validate: false
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
##
|
|
282
|
+
# Extends {ComicVine::Resource::Concept} to add mongoid functions
|
|
283
|
+
# @since 0.1.2
|
|
284
|
+
class Concept < ComicVine::Resource
|
|
285
|
+
include Mongoid::Document
|
|
286
|
+
include ComicVine::Mongo
|
|
287
|
+
|
|
288
|
+
field :aliases, type: String
|
|
289
|
+
field :api_detail_url, type: String
|
|
290
|
+
field :date_added, type: DateTime
|
|
291
|
+
field :date_last_updated, type: DateTime
|
|
292
|
+
field :deck, type: String
|
|
293
|
+
field :description, type: String
|
|
294
|
+
field :id, type: Integer
|
|
295
|
+
field :image, type: Hash
|
|
296
|
+
field :name, type: String
|
|
297
|
+
field :site_detail_url, type: String
|
|
298
|
+
field :count_of_issue_appearances, type: Integer
|
|
299
|
+
field :start_year, type: Integer
|
|
300
|
+
|
|
301
|
+
##
|
|
302
|
+
# Accounts for ComicVine's miss-spelling of issue in key. Maps count_of_isssue_appearances to count_of_issue_appearances
|
|
303
|
+
# @param value [Integer]
|
|
304
|
+
# @since 0.1.0
|
|
305
|
+
def count_of_isssue_appearances=(value)
|
|
306
|
+
self[:count_of_issue_appearances] = value
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
##
|
|
310
|
+
# Accounts for ComicVine's miss-spelling of issue in key. returns count_of_issue_appearances
|
|
311
|
+
# @return [Integer]
|
|
312
|
+
# @since 0.1.0
|
|
313
|
+
def count_of_isssue_appearances
|
|
314
|
+
self[:count_of_issue_appearances]
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
belongs_to :first_appeared_in_issue, class_name: 'ComicVine::Resource::Issue', inverse_of: :first_appearance_concepts, validate: false
|
|
318
|
+
has_and_belongs_to_many :issue_credits, class_name: 'ComicVine::Resource::Issue', inverse_of: :concept_credits, validate: false
|
|
319
|
+
has_and_belongs_to_many :movies, class_name: 'ComicVine::Resource::Movie', inverse_of: :concept_credits, validate: false
|
|
320
|
+
has_and_belongs_to_many :volume_credits, class_name: 'ComicVine::Resource::Volume', inverse_of: :concepts, validate: false
|
|
321
|
+
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
##
|
|
325
|
+
# Extends {ComicVine::Resource::Episode} to add mongoid functions
|
|
326
|
+
# @since 0.1.2
|
|
327
|
+
class Episode < ComicVine::Resource
|
|
328
|
+
include Mongoid::Document
|
|
329
|
+
include ComicVine::Mongo
|
|
330
|
+
|
|
331
|
+
field :aliases, type: String
|
|
332
|
+
field :api_detail_url, type: String
|
|
333
|
+
field :date_added, type: DateTime
|
|
334
|
+
field :date_last_updated, type: DateTime
|
|
335
|
+
field :deck, type: String
|
|
336
|
+
field :description, type: String
|
|
337
|
+
field :id, type: Integer
|
|
338
|
+
field :image, type: Hash
|
|
339
|
+
field :name, type: String
|
|
340
|
+
field :site_detail_url, type: String
|
|
341
|
+
field :has_staff_review, type: Hash
|
|
342
|
+
field :episode_number, type: Integer
|
|
343
|
+
field :air_date, type: Date
|
|
344
|
+
|
|
345
|
+
##
|
|
346
|
+
# Accounts for ComicVine's miss-match return of false if no review exists. Sets an empty hash
|
|
347
|
+
# @param value [Hash]
|
|
348
|
+
# @since 0.1.0
|
|
349
|
+
def has_staff_review=(value)
|
|
350
|
+
if value.nil? || value.kind_of?(FalseClass)
|
|
351
|
+
self.has_staff_review = {}
|
|
352
|
+
else
|
|
353
|
+
super
|
|
354
|
+
end
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
##
|
|
358
|
+
# @return [true, false]
|
|
359
|
+
def has_staff_review?
|
|
360
|
+
!self.has_staff_review.empty?
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
has_and_belongs_to_many :character_credits, class_name: 'ComicVine::Resource::Character', inverse_of: nil, validate: false
|
|
365
|
+
has_and_belongs_to_many :characters_died_in, class_name: 'ComicVine::Resource::Character', inverse_of: nil, validate: false
|
|
366
|
+
has_and_belongs_to_many :concept_credits, class_name: 'ComicVine::Resource::Concept', inverse_of: nil, validate: false
|
|
367
|
+
|
|
368
|
+
has_many :first_appearance_characters, class_name: 'ComicVine::Resource::Character', inverse_of: nil, validate: false
|
|
369
|
+
has_many :first_appearance_concepts, class_name: 'ComicVine::Resource::Concept', inverse_of: nil, validate: false
|
|
370
|
+
has_many :first_appearance_locations, class_name: 'ComicVine::Resource::Location', inverse_of: nil, validate: false
|
|
371
|
+
has_many :first_appearance_objects, class_name: 'ComicVine::Resource::Object', inverse_of: nil, validate: false
|
|
372
|
+
has_many :first_appearance_storyarcs, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :first_appeared_in_episode, validate: false
|
|
373
|
+
has_many :first_appearance_teams, class_name: 'ComicVine::Resource::Team', inverse_of: nil, validate: false
|
|
374
|
+
has_many :first_appearance_locations, class_name: 'ComicVine::Resource::Location', inverse_of: nil, validate: false
|
|
375
|
+
|
|
376
|
+
has_and_belongs_to_many :location_credits, class_name: 'ComicVine::Resource::Location', inverse_of: nil, validate: false
|
|
377
|
+
has_and_belongs_to_many :object_credits, class_name: 'ComicVine::Resource::Object', inverse_of: nil, validate: false
|
|
378
|
+
has_and_belongs_to_many :person_credits, class_name: 'ComicVine::Resource::Person', inverse_of: nil, validate: false
|
|
379
|
+
has_and_belongs_to_many :team_credits, class_name: 'ComicVine::Resource::Team', inverse_of: nil, validate: false
|
|
380
|
+
|
|
381
|
+
has_and_belongs_to_many :story_arc_credits, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :episodes, validate: false
|
|
382
|
+
belongs_to :series, class_name: 'ComicVine::Resource::Series', inverse_of: :episodes, validate: false
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
##
|
|
386
|
+
# Extends {ComicVine::Resource::Location} to add mongoid functions
|
|
387
|
+
# @since 0.1.2
|
|
388
|
+
class Location < ComicVine::Resource
|
|
389
|
+
include Mongoid::Document
|
|
390
|
+
include ComicVine::Mongo
|
|
391
|
+
|
|
392
|
+
field :aliases, type: String
|
|
393
|
+
field :api_detail_url, type: String
|
|
394
|
+
field :count_of_issue_appearances, type: Integer
|
|
395
|
+
field :date_added, type: DateTime
|
|
396
|
+
field :date_last_updated, type: DateTime
|
|
397
|
+
field :deck, type: String
|
|
398
|
+
field :description, type: String
|
|
399
|
+
field :id, type: Integer
|
|
400
|
+
field :image, type: Hash
|
|
401
|
+
field :name, type: String
|
|
402
|
+
field :site_detail_url, type: String
|
|
403
|
+
field :start_year, type: Integer
|
|
404
|
+
|
|
405
|
+
belongs_to :first_appeared_in_issue, class_name: 'ComicVine::Resource::Issue', inverse_of: :first_appearance_locations, validate: false
|
|
406
|
+
has_and_belongs_to_many :issue_credits, class_name: 'ComicVine::Resource::Issue', inverse_of: :location_credits, validate: false
|
|
407
|
+
|
|
408
|
+
has_and_belongs_to_many :movies, class_name: 'ComicVine::Resource::Movie', inverse_of: :location_credits, validate: false
|
|
409
|
+
has_and_belongs_to_many :story_arc_credits, class_name: 'ComicVine::Resource::StoryArc', inverse_of: nil, validate: false
|
|
410
|
+
has_and_belongs_to_many :volume_credits, class_name: 'ComicVine::Resource::Volume', inverse_of: :locations, validate: false
|
|
411
|
+
end
|
|
412
|
+
|
|
413
|
+
##
|
|
414
|
+
# Extends {ComicVine::Resource::Movie} to add mongoid functions
|
|
415
|
+
# @since 0.1.2
|
|
416
|
+
class Movie < ComicVine::Resource
|
|
417
|
+
include Mongoid::Document
|
|
418
|
+
include ComicVine::Mongo
|
|
419
|
+
|
|
420
|
+
field :api_detail_url, type: String
|
|
421
|
+
field :box_office_revenue, type: Integer
|
|
422
|
+
field :budget, type: Integer
|
|
423
|
+
field :date_added, type: DateTime
|
|
424
|
+
field :date_last_updated, type: DateTime
|
|
425
|
+
field :deck, type: String
|
|
426
|
+
field :description, type: String
|
|
427
|
+
field :id, type: Integer
|
|
428
|
+
field :image, type: Hash
|
|
429
|
+
field :name, type: String
|
|
430
|
+
field :site_detail_url, type: String
|
|
431
|
+
field :release_date, type: DateTime
|
|
432
|
+
field :rating, type: String
|
|
433
|
+
field :has_staff_review, type: Hash
|
|
434
|
+
field :total_revenue, type: Integer
|
|
435
|
+
field :runtime, type: Integer
|
|
436
|
+
field :distributor, type: String
|
|
437
|
+
|
|
438
|
+
##
|
|
439
|
+
# Accounts for ComicVine's miss-match return of false if no review exists. Sets an empty hash
|
|
440
|
+
# @param value [Hash]
|
|
441
|
+
# @since 0.1.0
|
|
442
|
+
def has_staff_review=(value)
|
|
443
|
+
if value.nil? || value.kind_of?(FalseClass)
|
|
444
|
+
self.has_staff_review = {}
|
|
445
|
+
else
|
|
446
|
+
super
|
|
447
|
+
end
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
##
|
|
451
|
+
# @return [true, false]
|
|
452
|
+
def has_staff_review?
|
|
453
|
+
!self.has_staff_review.empty?
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
has_and_belongs_to_many :studios, class_name: 'ComicVine::Resource::Publisher', inverse_of: nil, validate: false
|
|
457
|
+
has_and_belongs_to_many :concepts, class_name: 'ComicVine::Resource::Concept', inverse_of: nil, validate: false
|
|
458
|
+
has_and_belongs_to_many :locations, class_name: 'ComicVine::Resource::Location', inverse_of: nil, validate: false
|
|
459
|
+
has_and_belongs_to_many :writers, class_name: 'ComicVine::Resource::Person', inverse_of: nil, validate: false
|
|
460
|
+
has_and_belongs_to_many :producers, class_name: 'ComicVine::Resource::Person', inverse_of: nil, validate: false
|
|
461
|
+
has_and_belongs_to_many :teams, class_name: 'ComicVine::Resource::Team', inverse_of: :movies, validate: false
|
|
462
|
+
has_and_belongs_to_many :objects, class_name: 'ComicVine::Resource::Object', inverse_of: :movies, validate: false
|
|
463
|
+
has_and_belongs_to_many :story_arc_credits, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :movies, validate: false
|
|
464
|
+
has_and_belongs_to_many :characters, class_name: 'ComicVine::Resource::Character', inverse_of: :movies, validate: false
|
|
465
|
+
|
|
466
|
+
end
|
|
467
|
+
|
|
468
|
+
##
|
|
469
|
+
# Extends {ComicVine::Resource::Object} to add mongoid functions
|
|
470
|
+
# @since 0.1.2
|
|
471
|
+
class Object < ComicVine::Resource
|
|
472
|
+
include Mongoid::Document
|
|
473
|
+
include ComicVine::Mongo
|
|
474
|
+
|
|
475
|
+
field :aliases, type: String
|
|
476
|
+
field :api_detail_url, type: String
|
|
477
|
+
field :count_of_issue_appearances, type: Integer
|
|
478
|
+
field :date_added, type: DateTime
|
|
479
|
+
field :date_last_updated, type: DateTime
|
|
480
|
+
field :deck, type: String
|
|
481
|
+
field :description, type: String
|
|
482
|
+
field :id, type: Integer
|
|
483
|
+
field :image, type: Hash
|
|
484
|
+
field :name, type: String
|
|
485
|
+
field :site_detail_url, type: String
|
|
486
|
+
field :start_year, type: Integer
|
|
487
|
+
|
|
488
|
+
belongs_to :first_appeared_in_issue, class_name: 'ComicVine::Resource::Issue', inverse_of: :first_appearance_characters, validate: false
|
|
489
|
+
has_and_belongs_to_many :issue_credits, class_name: 'ComicVine::Resource::Issue', inverse_of: :object_credits, validate: false
|
|
490
|
+
has_and_belongs_to_many :movies, class_name: 'ComicVine::Resource::Movie', inverse_of: :objects, validate: false
|
|
491
|
+
has_and_belongs_to_many :story_arc_credits, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :objects, validate: false
|
|
492
|
+
has_and_belongs_to_many :volume_credits, class_name: 'ComicVine::Resource::Volume', inverse_of: :objects, validate: false
|
|
493
|
+
end
|
|
494
|
+
|
|
495
|
+
##
|
|
496
|
+
# Extends {ComicVine::Resource::Origin} to add mongoid functions
|
|
497
|
+
# @since 0.1.2
|
|
498
|
+
class Origin < ComicVine::Resource
|
|
499
|
+
include Mongoid::Document
|
|
500
|
+
include ComicVine::Mongo
|
|
501
|
+
|
|
502
|
+
field :api_detail_url, type: String
|
|
503
|
+
field :character_set, type: String
|
|
504
|
+
field :id, type: Integer
|
|
505
|
+
field :name, type: String
|
|
506
|
+
field :profiles, type: Array
|
|
507
|
+
field :site_detail_url, type: String
|
|
508
|
+
|
|
509
|
+
has_many :characters, class_name: 'ComicVine::Resource::Character', inverse_of: :origin, validate: false
|
|
510
|
+
end
|
|
511
|
+
|
|
512
|
+
##
|
|
513
|
+
# Extends {ComicVine::Resource::Person} to add mongoid functions
|
|
514
|
+
# @since 0.1.2
|
|
515
|
+
class Person < ComicVine::Resource
|
|
516
|
+
include Mongoid::Document
|
|
517
|
+
include ComicVine::Mongo
|
|
518
|
+
|
|
519
|
+
field :aliases, type: String
|
|
520
|
+
field :api_detail_url, type: String
|
|
521
|
+
field :birth, type: Date
|
|
522
|
+
field :death, type: Date
|
|
523
|
+
field :count_of_issue_appearances, type: Integer
|
|
524
|
+
field :country, type: String
|
|
525
|
+
field :date_added, type: DateTime
|
|
526
|
+
field :date_last_updated, type: DateTime
|
|
527
|
+
field :deck, type: String
|
|
528
|
+
field :description, type: String
|
|
529
|
+
field :email, type: String
|
|
530
|
+
field :id, type: Integer
|
|
531
|
+
field :gender, type: Integer
|
|
532
|
+
field :image, type: Hash
|
|
533
|
+
field :name, type: String
|
|
534
|
+
field :site_detail_url, type: String
|
|
535
|
+
field :website, type: String
|
|
536
|
+
field :role, type: String
|
|
537
|
+
|
|
538
|
+
##
|
|
539
|
+
# Override to handle ComicVine hash results
|
|
540
|
+
# @param value [DateTime]
|
|
541
|
+
# @since 0.1.0
|
|
542
|
+
def death=(value)
|
|
543
|
+
if value.nil?
|
|
544
|
+
# Do nothing
|
|
545
|
+
elsif value.kind_of?(Hash) && value.has_key?('date')
|
|
546
|
+
# Translate the string
|
|
547
|
+
#TODO: Parse the remaining keys: timezone_type && timezone into correct dateTime. See person: 2756
|
|
548
|
+
super DateTime.parse(value['date'])
|
|
549
|
+
elsif value.kind_of?(DateTime)
|
|
550
|
+
super
|
|
551
|
+
end
|
|
552
|
+
end
|
|
553
|
+
|
|
554
|
+
##
|
|
555
|
+
# Accounts for ComicVine's miss-spelling of issue in key. Maps count_of_isssue_appearances to count_of_issue_appearances
|
|
556
|
+
# @param value [Integer]
|
|
557
|
+
# @since 0.1.0
|
|
558
|
+
def count_of_isssue_appearances=(value)
|
|
559
|
+
self[:count_of_issue_appearances] = value
|
|
560
|
+
end
|
|
561
|
+
|
|
562
|
+
##
|
|
563
|
+
# Accounts for ComicVine's miss-spelling of issue in key. returns count_of_issue_appearances
|
|
564
|
+
# @return [Integer]
|
|
565
|
+
# @since 0.1.0
|
|
566
|
+
def count_of_isssue_appearances
|
|
567
|
+
self[:count_of_issue_appearances]
|
|
568
|
+
end
|
|
569
|
+
|
|
570
|
+
has_one :hometown, class_name: 'ComicVine::Resource::Location', validate: false
|
|
571
|
+
has_and_belongs_to_many :created_characters, class_name: 'ComicVine::Resource::Character', inverse_of: :creators, validate: false
|
|
572
|
+
has_and_belongs_to_many :issues, class_name: 'ComicVine::Resource::Issue', inverse_of: :person_credits, validate: false
|
|
573
|
+
has_and_belongs_to_many :story_arc_credits, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :person_credits, validate: false
|
|
574
|
+
has_and_belongs_to_many :volume_credits, class_name: 'ComicVine::Resource::Volume', inverse_of: :people, validate: false
|
|
575
|
+
|
|
576
|
+
end
|
|
577
|
+
|
|
578
|
+
##
|
|
579
|
+
# Extends {ComicVine::Resource::Power} to add mongoid functions
|
|
580
|
+
# @since 0.1.2
|
|
581
|
+
class Power < ComicVine::Resource
|
|
582
|
+
include Mongoid::Document
|
|
583
|
+
include ComicVine::Mongo
|
|
584
|
+
|
|
585
|
+
field :aliases, type: String
|
|
586
|
+
field :api_detail_url, type: String
|
|
587
|
+
field :name, type: String
|
|
588
|
+
field :site_detail_url, type: String
|
|
589
|
+
field :id, type: Integer
|
|
590
|
+
field :description, type: String
|
|
591
|
+
field :date_added, type: DateTime
|
|
592
|
+
field :date_last_updated, type: DateTime
|
|
593
|
+
has_and_belongs_to_many :characters, class_name: 'ComicVine::Resource::Character', inverse_of: :powers, validate: false
|
|
594
|
+
end
|
|
595
|
+
|
|
596
|
+
##
|
|
597
|
+
# Extends {ComicVine::Resource::Promo} to add mongoid functions
|
|
598
|
+
# @since 0.1.2
|
|
599
|
+
class Promo < ComicVine::Resource
|
|
600
|
+
include Mongoid::Document
|
|
601
|
+
include ComicVine::Mongo
|
|
602
|
+
|
|
603
|
+
field :api_detail_url, type: String
|
|
604
|
+
field :date_added, type: DateTime
|
|
605
|
+
field :deck, type: String
|
|
606
|
+
field :id, type: Integer
|
|
607
|
+
field :image, type: Hash
|
|
608
|
+
field :link, type: String
|
|
609
|
+
field :name, type: String
|
|
610
|
+
field :resource_type, type: String
|
|
611
|
+
field :user, type: String
|
|
612
|
+
end
|
|
613
|
+
|
|
614
|
+
##
|
|
615
|
+
# Extends {ComicVine::Resource::Publisher} to add mongoid functions
|
|
616
|
+
# @since 0.1.2
|
|
617
|
+
class Publisher < ComicVine::Resource
|
|
618
|
+
include Mongoid::Document
|
|
619
|
+
include ComicVine::Mongo
|
|
620
|
+
|
|
621
|
+
field :aliases, type: String
|
|
622
|
+
field :api_detail_url, type: String
|
|
623
|
+
field :date_added, type: DateTime
|
|
624
|
+
field :date_last_updated, type: DateTime
|
|
625
|
+
field :deck, type: String
|
|
626
|
+
field :description, type: String
|
|
627
|
+
field :id, type: Integer
|
|
628
|
+
field :image, type: Hash
|
|
629
|
+
field :name, type: String
|
|
630
|
+
field :site_detail_url, type: String
|
|
631
|
+
field :location_address, type: String
|
|
632
|
+
field :location_city, type: String
|
|
633
|
+
field :location_state, type: String
|
|
634
|
+
|
|
635
|
+
has_many :characters, class_name: 'ComicVine::Resource::Character', inverse_of: :publisher, validate: false
|
|
636
|
+
has_many :story_arcs, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :publisher, validate: false
|
|
637
|
+
has_many :teams, class_name: 'ComicVine::Resource::Team', inverse_of: :publisher, validate: false
|
|
638
|
+
has_many :volumes, class_name: 'ComicVine::Resource::Volume', inverse_of: :publisher, validate: false
|
|
639
|
+
has_many :series, class_name: 'ComicVine::Resource::Series', inverse_of: :publisher, validate: false
|
|
640
|
+
end
|
|
641
|
+
|
|
642
|
+
##
|
|
643
|
+
# Extends {ComicVine::Resource::Series} to add mongoid functions
|
|
644
|
+
# @since 0.1.2
|
|
645
|
+
class Series < ComicVine::Resource
|
|
646
|
+
include Mongoid::Document
|
|
647
|
+
include ComicVine::Mongo
|
|
648
|
+
|
|
649
|
+
field :aliases, type: String
|
|
650
|
+
field :api_detail_url, type: String
|
|
651
|
+
field :date_added, type: DateTime
|
|
652
|
+
field :date_last_updated, type: DateTime
|
|
653
|
+
field :deck, type: String
|
|
654
|
+
field :description, type: String
|
|
655
|
+
field :id, type: Integer
|
|
656
|
+
field :image, type: Hash
|
|
657
|
+
field :name, type: String
|
|
658
|
+
field :site_detail_url, type: String
|
|
659
|
+
|
|
660
|
+
field :count_of_episodes, type: Integer
|
|
661
|
+
field :start_year, type: Integer
|
|
662
|
+
|
|
663
|
+
has_and_belongs_to_many :characters, class_name: 'ComicVine::Resource::Character', inverse_of: nil, validate: false
|
|
664
|
+
|
|
665
|
+
has_many :episodes, class_name: 'ComicVine::Resource::Episode', inverse_of: :series, validate: false
|
|
666
|
+
has_one :first_episode, class_name: 'ComicVine::Resource::Episode', validate: false
|
|
667
|
+
has_one :last_episode, class_name: 'ComicVine::Resource::Episode', validate: false
|
|
668
|
+
|
|
669
|
+
has_and_belongs_to_many :location_credits, class_name: 'ComicVine::Resource::Location', inverse_of: nil, validate: false
|
|
670
|
+
belongs_to :publisher, class_name: 'ComicVine::Resource::Publisher', inverse_of: :series, validate: false
|
|
671
|
+
end
|
|
672
|
+
|
|
673
|
+
##
|
|
674
|
+
# Extends {ComicVine::Resource::StoryArc} to add mongoid functions
|
|
675
|
+
# @since 0.1.2
|
|
676
|
+
class StoryArc < ComicVine::Resource
|
|
677
|
+
include Mongoid::Document
|
|
678
|
+
include ComicVine::Mongo
|
|
679
|
+
|
|
680
|
+
field :aliases, type: String
|
|
681
|
+
field :api_detail_url, type: String
|
|
682
|
+
field :date_added, type: DateTime
|
|
683
|
+
field :date_last_updated, type: DateTime
|
|
684
|
+
field :deck, type: String
|
|
685
|
+
field :description, type: String
|
|
686
|
+
field :id, type: Integer
|
|
687
|
+
field :image, type: Hash
|
|
688
|
+
field :name, type: String
|
|
689
|
+
field :site_detail_url, type: String
|
|
690
|
+
|
|
691
|
+
field :count_of_issue_appearances, type: Integer
|
|
692
|
+
|
|
693
|
+
def count_of_isssue_appearances=(value)
|
|
694
|
+
self[:count_of_isssue_appearances] = value
|
|
695
|
+
end
|
|
696
|
+
|
|
697
|
+
def count_of_isssue_appearances
|
|
698
|
+
self[:count_of_isssue_appearances]
|
|
699
|
+
end
|
|
700
|
+
|
|
701
|
+
|
|
702
|
+
belongs_to :publisher, class_name: 'ComicVine::Resource::Publisher', inverse_of: :story_arcs, validate: false
|
|
703
|
+
|
|
704
|
+
belongs_to :first_appeared_in_issue, class_name: 'ComicVine::Resource::Issue', inverse_of: :first_appearance_storyarcs, validate: false
|
|
705
|
+
has_and_belongs_to_many :issues, class_name: 'ComicVine::Resource::Issue', inverse_of: :story_arc_credits, validate: false
|
|
706
|
+
|
|
707
|
+
has_and_belongs_to_many :movies, class_name: 'ComicVine::Resource::Movie', inverse_of: :story_arc_credits, validate: false
|
|
708
|
+
has_and_belongs_to_many :teams, class_name: 'ComicVine::Resource::Team', inverse_of: :story_arc_credits, validate: false
|
|
709
|
+
has_and_belongs_to_many :characters, class_name: 'ComicVine::Resource::Character', inverse_of: :story_arc_credits, validate: false
|
|
710
|
+
|
|
711
|
+
belongs_to :first_appeared_in_episode, class_name: 'ComicVine::Resource::Episode', inverse_of: :first_appearance_storyarcs, validate: false, optional: true
|
|
712
|
+
has_and_belongs_to_many :episodes, class_name: 'ComicVine::Resource::Episode', inverse_of: :story_arc_credits, validate: false
|
|
713
|
+
end
|
|
714
|
+
|
|
715
|
+
##
|
|
716
|
+
# Extends {ComicVine::Resource::Team} to add mongoid functions
|
|
717
|
+
# @since 0.1.2
|
|
718
|
+
class Team < ComicVine::Resource
|
|
719
|
+
include Mongoid::Document
|
|
720
|
+
include ComicVine::Mongo
|
|
721
|
+
|
|
722
|
+
field :aliases, type: String
|
|
723
|
+
field :api_detail_url, type: String
|
|
724
|
+
field :date_added, type: DateTime
|
|
725
|
+
field :date_last_updated, type: DateTime
|
|
726
|
+
field :deck, type: String
|
|
727
|
+
field :description, type: String
|
|
728
|
+
field :id, type: Integer
|
|
729
|
+
field :image, type: Hash
|
|
730
|
+
field :name, type: String
|
|
731
|
+
field :site_detail_url, type: String
|
|
732
|
+
field :count_of_issue_appearances, type: Integer
|
|
733
|
+
field :count_of_team_members, type: Integer
|
|
734
|
+
|
|
735
|
+
def count_of_isssue_appearances=(value)
|
|
736
|
+
self[:count_of_isssue_appearances] = value
|
|
737
|
+
end
|
|
738
|
+
|
|
739
|
+
def count_of_isssue_appearances
|
|
740
|
+
self[:count_of_isssue_appearances]
|
|
741
|
+
end
|
|
742
|
+
|
|
743
|
+
def disbanded_in_issues=(value)
|
|
744
|
+
if value.kind_of? ComicVine::Resource::Issue
|
|
745
|
+
self.issues_disbanded_in << value
|
|
746
|
+
elsif value.kind_of? Array
|
|
747
|
+
self.issues_disbanded_in = value
|
|
748
|
+
end
|
|
749
|
+
end
|
|
750
|
+
|
|
751
|
+
def disbanded_in_issues
|
|
752
|
+
self.issues_disbanded_in
|
|
753
|
+
end
|
|
754
|
+
|
|
755
|
+
def isssues_disbanded_in=(value)
|
|
756
|
+
if value.kind_of? ComicVine::Resource::Issue
|
|
757
|
+
self.issues_disbanded_in << value
|
|
758
|
+
elsif value.kind_of? Array
|
|
759
|
+
self.issues_disbanded_in = value
|
|
760
|
+
end
|
|
761
|
+
end
|
|
762
|
+
|
|
763
|
+
def isssues_disbanded_in
|
|
764
|
+
self.issues_disbanded_in
|
|
765
|
+
end
|
|
766
|
+
|
|
767
|
+
has_and_belongs_to_many :character_enemies, class_name: 'ComicVine::Resource::Character', inverse_of: nil, validate: false
|
|
768
|
+
has_and_belongs_to_many :character_friends, class_name: 'ComicVine::Resource::Character', inverse_of: nil, validate: false
|
|
769
|
+
has_and_belongs_to_many :characters, class_name: 'ComicVine::Resource::Character', inverse_of: :teams, validate: false
|
|
770
|
+
|
|
771
|
+
belongs_to :first_appeared_in_issue, class_name: 'ComicVine::Resource::Issue', inverse_of: :first_appearance_teams, validate: false
|
|
772
|
+
has_and_belongs_to_many :issue_credits, class_name: 'ComicVine::Resource::Issue', inverse_of: :team_credits, validate: false
|
|
773
|
+
has_and_belongs_to_many :issues_disbanded_in, class_name: 'ComicVine::Resource::Issue', inverse_of: :team_disbanded_in, validate: false
|
|
774
|
+
|
|
775
|
+
belongs_to :publisher, class_name: 'ComicVine::Resource::Publisher', inverse_of: :teams, validate: false
|
|
776
|
+
has_and_belongs_to_many :movies, class_name: 'ComicVine::Resource::Movie', inverse_of: :teams, validate: false
|
|
777
|
+
has_and_belongs_to_many :story_arc_credits, class_name: 'ComicVine::Resource::StoryArc', inverse_of: :teams, validate: false
|
|
778
|
+
has_and_belongs_to_many :volume_credits, class_name: 'ComicVine::Resource::Volume', inverse_of: :teams, validate: false
|
|
779
|
+
|
|
780
|
+
end
|
|
781
|
+
|
|
782
|
+
end
|
|
783
|
+
end
|
data.tar.gz.sig
ADDED
metadata
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: comicvine-mongo
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Holden Omans
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain:
|
|
11
|
+
- |
|
|
12
|
+
-----BEGIN CERTIFICATE-----
|
|
13
|
+
MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRUwEwYDVQQDDAxob2xk
|
|
14
|
+
ZW4ub21hbnMxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
|
15
|
+
A2NvbTAeFw0xNjExMDkxNTU5MTdaFw0xNzExMDkxNTU5MTdaMEMxFTATBgNVBAMM
|
|
16
|
+
DGhvbGRlbi5vbWFuczEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
|
17
|
+
LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2V7yrTuO
|
|
18
|
+
4FNzWlhQL2R8Vdx5LKX/oewZ7bKh/2GJcR5R7mowdqejlfzJb7abtmYsQfyvwNfy
|
|
19
|
+
NrKneghJ/rLflQ1NrlehYSYLlBFTVuymPvejG+EH5C2/RJqhm2zyfjkisasqhWk8
|
|
20
|
+
Bq6IUPX1l8C78Kkd6t3QR/n3zr1Ip25NicpJ2flBMHPg3IV9qaNXywkCzutkEMoW
|
|
21
|
+
FuHdHMN2cDMUnhM9qGOK7nvRk7rkP/yJAp+sf2nv+C99s5CMNuvnGeSgnX7IMcRV
|
|
22
|
+
Ks2FrSvqKDj24Xf5kHdlcpDrS1VcFsAkIT6bVBm19KO8pFvZkDJE76Yshy80FRpQ
|
|
23
|
+
bijjrYQhYXiM4QIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
|
|
24
|
+
HQ4EFgQUbbbHhJ0Z4S/c5FcDSqEVx7Yk1agwIQYDVR0RBBowGIEWaG9sZGVuLm9t
|
|
25
|
+
YW5zQGdtYWlsLmNvbTAhBgNVHRIEGjAYgRZob2xkZW4ub21hbnNAZ21haWwuY29t
|
|
26
|
+
MA0GCSqGSIb3DQEBBQUAA4IBAQCoC/7FnCsRFIV/rwAJRXY3Ao0qdbnksPrqUhP0
|
|
27
|
+
7A8m8PccIDuUspq/WtkhzSMLZvzurlXEw1qdLtRLS2LnftQQuo5YPz6PQj4XAx8w
|
|
28
|
+
yF48j5e3XvUZJiMQ+cIsXPnjes13JgnP/KOfILgfIz9ad0pGMMUCTLYahu+fXqxE
|
|
29
|
+
if+otWjB2is7MBxd+krcr8vCJ4E46a8H3zyBN/tSgGw4RwkxHnXekTJvMy4skcSB
|
|
30
|
+
VpDNqh/BlGMQ0mqAEuBFZFSNaroph6JLUz1ykVvQENOQLThxAjolK7SAUrdoBDOc
|
|
31
|
+
fXEVP1s+hpJB6IEU8/LW016TU8WpnA+MHGfJRtkrUm/cEsWU
|
|
32
|
+
-----END CERTIFICATE-----
|
|
33
|
+
date: 2016-11-16 00:00:00.000000000 Z
|
|
34
|
+
dependencies:
|
|
35
|
+
- !ruby/object:Gem::Dependency
|
|
36
|
+
name: bundler
|
|
37
|
+
requirement: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - "~>"
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '1.13'
|
|
42
|
+
type: :development
|
|
43
|
+
prerelease: false
|
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - "~>"
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: '1.13'
|
|
49
|
+
- !ruby/object:Gem::Dependency
|
|
50
|
+
name: rake
|
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - "~>"
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '10.0'
|
|
56
|
+
type: :development
|
|
57
|
+
prerelease: false
|
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - "~>"
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '10.0'
|
|
63
|
+
- !ruby/object:Gem::Dependency
|
|
64
|
+
name: minitest
|
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - "~>"
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '5.9'
|
|
70
|
+
- - ">="
|
|
71
|
+
- !ruby/object:Gem::Version
|
|
72
|
+
version: 5.9.1
|
|
73
|
+
type: :development
|
|
74
|
+
prerelease: false
|
|
75
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
76
|
+
requirements:
|
|
77
|
+
- - "~>"
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: '5.9'
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 5.9.1
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: minitest-reporters
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '1.1'
|
|
90
|
+
- - ">="
|
|
91
|
+
- !ruby/object:Gem::Version
|
|
92
|
+
version: 1.1.12
|
|
93
|
+
type: :development
|
|
94
|
+
prerelease: false
|
|
95
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
96
|
+
requirements:
|
|
97
|
+
- - "~>"
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: '1.1'
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: 1.1.12
|
|
103
|
+
- !ruby/object:Gem::Dependency
|
|
104
|
+
name: rdoc
|
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - "~>"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '4.2'
|
|
110
|
+
- - ">="
|
|
111
|
+
- !ruby/object:Gem::Version
|
|
112
|
+
version: 4.2.1
|
|
113
|
+
type: :development
|
|
114
|
+
prerelease: false
|
|
115
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
116
|
+
requirements:
|
|
117
|
+
- - "~>"
|
|
118
|
+
- !ruby/object:Gem::Version
|
|
119
|
+
version: '4.2'
|
|
120
|
+
- - ">="
|
|
121
|
+
- !ruby/object:Gem::Version
|
|
122
|
+
version: 4.2.1
|
|
123
|
+
- !ruby/object:Gem::Dependency
|
|
124
|
+
name: yard
|
|
125
|
+
requirement: !ruby/object:Gem::Requirement
|
|
126
|
+
requirements:
|
|
127
|
+
- - "~>"
|
|
128
|
+
- !ruby/object:Gem::Version
|
|
129
|
+
version: '0.9'
|
|
130
|
+
- - ">="
|
|
131
|
+
- !ruby/object:Gem::Version
|
|
132
|
+
version: 0.9.5
|
|
133
|
+
type: :development
|
|
134
|
+
prerelease: false
|
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
136
|
+
requirements:
|
|
137
|
+
- - "~>"
|
|
138
|
+
- !ruby/object:Gem::Version
|
|
139
|
+
version: '0.9'
|
|
140
|
+
- - ">="
|
|
141
|
+
- !ruby/object:Gem::Version
|
|
142
|
+
version: 0.9.5
|
|
143
|
+
- !ruby/object:Gem::Dependency
|
|
144
|
+
name: comicvine
|
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
|
146
|
+
requirements:
|
|
147
|
+
- - "~>"
|
|
148
|
+
- !ruby/object:Gem::Version
|
|
149
|
+
version: '0.1'
|
|
150
|
+
- - ">="
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: 0.1.2
|
|
153
|
+
type: :runtime
|
|
154
|
+
prerelease: false
|
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '0.1'
|
|
160
|
+
- - ">="
|
|
161
|
+
- !ruby/object:Gem::Version
|
|
162
|
+
version: 0.1.2
|
|
163
|
+
- !ruby/object:Gem::Dependency
|
|
164
|
+
name: mongoid
|
|
165
|
+
requirement: !ruby/object:Gem::Requirement
|
|
166
|
+
requirements:
|
|
167
|
+
- - "~>"
|
|
168
|
+
- !ruby/object:Gem::Version
|
|
169
|
+
version: '6.0'
|
|
170
|
+
- - ">="
|
|
171
|
+
- !ruby/object:Gem::Version
|
|
172
|
+
version: 6.0.2
|
|
173
|
+
type: :runtime
|
|
174
|
+
prerelease: false
|
|
175
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
176
|
+
requirements:
|
|
177
|
+
- - "~>"
|
|
178
|
+
- !ruby/object:Gem::Version
|
|
179
|
+
version: '6.0'
|
|
180
|
+
- - ">="
|
|
181
|
+
- !ruby/object:Gem::Version
|
|
182
|
+
version: 6.0.2
|
|
183
|
+
description: Allows saving of comicvine resources to a Mongodb using Mongoid
|
|
184
|
+
email:
|
|
185
|
+
- holden.omans@gmail.com
|
|
186
|
+
executables: []
|
|
187
|
+
extensions: []
|
|
188
|
+
extra_rdoc_files: []
|
|
189
|
+
files:
|
|
190
|
+
- ".gitignore"
|
|
191
|
+
- ".rspec"
|
|
192
|
+
- ".travis.yml"
|
|
193
|
+
- Gemfile
|
|
194
|
+
- LICENSE.txt
|
|
195
|
+
- README.md
|
|
196
|
+
- Rakefile
|
|
197
|
+
- bin/console
|
|
198
|
+
- bin/setup
|
|
199
|
+
- certs/homans.pem
|
|
200
|
+
- checksum/comicvine-mongo-0.1.0.gem.sha256
|
|
201
|
+
- comicvine-mongo.gemspec
|
|
202
|
+
- lib/comicvine/mongo.rb
|
|
203
|
+
- lib/comicvine/mongo/version.rb
|
|
204
|
+
homepage: https://github.com/kalinon/ruby-comicvine-mongo
|
|
205
|
+
licenses:
|
|
206
|
+
- MIT
|
|
207
|
+
metadata: {}
|
|
208
|
+
post_install_message:
|
|
209
|
+
rdoc_options: []
|
|
210
|
+
require_paths:
|
|
211
|
+
- lib
|
|
212
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
213
|
+
requirements:
|
|
214
|
+
- - ">="
|
|
215
|
+
- !ruby/object:Gem::Version
|
|
216
|
+
version: '2.2'
|
|
217
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
|
+
requirements:
|
|
219
|
+
- - ">="
|
|
220
|
+
- !ruby/object:Gem::Version
|
|
221
|
+
version: '0'
|
|
222
|
+
requirements: []
|
|
223
|
+
rubyforge_project:
|
|
224
|
+
rubygems_version: 2.5.1
|
|
225
|
+
signing_key:
|
|
226
|
+
specification_version: 4
|
|
227
|
+
summary: Mongo extension to the comicvine gem
|
|
228
|
+
test_files: []
|
metadata.gz.sig
ADDED
|
Binary file
|