thetvdb_mapper 0.0.1
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
- data/.gitignore +19 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +41 -0
- data/Rakefile +1 -0
- data/lib/thetvdb_mapper/actors.rb +13 -0
- data/lib/thetvdb_mapper/banners.rb +13 -0
- data/lib/thetvdb_mapper/base.rb +11 -0
- data/lib/thetvdb_mapper/episode.rb +9 -0
- data/lib/thetvdb_mapper/fetcher.rb +25 -0
- data/lib/thetvdb_mapper/full_series.rb +37 -0
- data/lib/thetvdb_mapper/mapping/actor.rb +11 -0
- data/lib/thetvdb_mapper/mapping/banner.rb +17 -0
- data/lib/thetvdb_mapper/mapping/base.rb +17 -0
- data/lib/thetvdb_mapper/mapping/episode.rb +45 -0
- data/lib/thetvdb_mapper/mapping/series.rb +36 -0
- data/lib/thetvdb_mapper/mapping/string_list.rb +5 -0
- data/lib/thetvdb_mapper/series.rb +9 -0
- data/lib/thetvdb_mapper/version.rb +3 -0
- data/lib/thetvdb_mapper.rb +18 -0
- data/spec/functionals/mapping/actor_spec.rb +31 -0
- data/spec/functionals/mapping/banner_spec.rb +56 -0
- data/spec/functionals/mapping/episode_spec.rb +135 -0
- data/spec/functionals/mapping/series_spec.rb +105 -0
- data/spec/integrations/classes/actors_spec.rb +11 -0
- data/spec/integrations/classes/banners_spec.rb +11 -0
- data/spec/integrations/classes/episode_spec.rb +11 -0
- data/spec/integrations/classes/fetcher_spec.rb +35 -0
- data/spec/integrations/classes/full_series_spec.rb +11 -0
- data/spec/integrations/classes/series_spec.rb +11 -0
- data/spec/integrations/integration_spec_helper.rb +2 -0
- data/spec/integrations/support/.keep +0 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/units/actors_spec.rb +33 -0
- data/spec/units/banners_spec.rb +33 -0
- data/spec/units/base_spec.rb +15 -0
- data/spec/units/episode_spec.rb +26 -0
- data/spec/units/fetcher_spec.rb +67 -0
- data/spec/units/full_series_spec.rb +109 -0
- data/spec/units/mapping/actor_spec.rb +27 -0
- data/spec/units/mapping/banner_spec.rb +51 -0
- data/spec/units/mapping/base_spec.rb +29 -0
- data/spec/units/mapping/episode_spec.rb +141 -0
- data/spec/units/mapping/series_spec.rb +113 -0
- data/spec/units/mapping/string_list_spec.rb +11 -0
- data/spec/units/series_spec.rb +26 -0
- data/thetvdb_mapper.gemspec +27 -0
- metadata +188 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bae6417686751f5c3906eb98c0b4311a289052e9
|
4
|
+
data.tar.gz: e0e998f6b6aa9e5110dede2c4b7d54facc99db3c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 74ccff6592d49df1951b7f91d2b91415bef7e542b51c077d315318e76adb961cc8829770cb26f0fba48b76bc5e80d9c7b5e8efaf2399866e799f7352c64dddc3
|
7
|
+
data.tar.gz: 9fd673575408786af948eb74153d97571217907c67d74af82b11fd4b3b123e423a2b385c633969b3cf35b9268e2f4a50eb634079d99c7f1b44bc61a9da7dc48a
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Krzysztof Wawer
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
[](https://travis-ci.org/wafcio/thetvdb_mapper)
|
2
|
+
[](https://gemnasium.com/wafcio/thetvdb_mapper)
|
3
|
+
[](https://codeclimate.com/github/wafcio/thetvdb_mapper)
|
4
|
+
[](https://coveralls.io/r/wafcio/thetvdb_mapper)
|
5
|
+
[](http://badge.fury.io/rb/thetvdb_mapper)
|
6
|
+
|
7
|
+
# ThetvdbMapper
|
8
|
+
|
9
|
+
Fetch data from thetvdb.com and mapping to common hash, where keys are symbols and underline.
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
Add this line to your application's Gemfile:
|
14
|
+
|
15
|
+
gem 'thetvdb_mapper'
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install thetvdb_mapper
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
ThetvdbMapper::Actor.new(series_id).data # return actors
|
29
|
+
ThetvdbMapper::Banners.new(series_id).data # return banners hash (not image)
|
30
|
+
ThetvdbMapper::Episode.new(episode_id).data # return episode
|
31
|
+
ThetvdbMapper::FullSeries.new(series_id).data # return series with all episodes
|
32
|
+
ThetvdbMapper::Series.new(series_id).data # return series
|
33
|
+
```
|
34
|
+
|
35
|
+
## Contributing
|
36
|
+
|
37
|
+
1. Fork it
|
38
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
39
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
40
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
41
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class ThetvdbMapper::Actors < ThetvdbMapper::Base
|
2
|
+
def data
|
3
|
+
@data ||= fetcher.actors(id).body.map { |actor| map(actor) }
|
4
|
+
end
|
5
|
+
|
6
|
+
def map(data)
|
7
|
+
ThetvdbMapper::Mapping::Actor.map(data)
|
8
|
+
end
|
9
|
+
|
10
|
+
def inspect
|
11
|
+
"<ThetvdbMapper::Actors data=#{data.to_s} >"
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class ThetvdbMapper::Banners < ThetvdbMapper::Base
|
2
|
+
def data
|
3
|
+
@data ||= fetcher.banners(id).body.map { |banner| map(banner) }
|
4
|
+
end
|
5
|
+
|
6
|
+
def map(data)
|
7
|
+
ThetvdbMapper::Mapping::Banner.map(data)
|
8
|
+
end
|
9
|
+
|
10
|
+
def inspect
|
11
|
+
"<ThetvdbMapper::Banners data=#{data.to_s} >"
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class ThetvdbMapper::Fetcher
|
2
|
+
def series(id)
|
3
|
+
@series ||= client.series.find(id, mapping: true)
|
4
|
+
end
|
5
|
+
|
6
|
+
def full_series(id)
|
7
|
+
@full_series ||= client.series.find_full(id, mapping: true)
|
8
|
+
end
|
9
|
+
|
10
|
+
def actors(id)
|
11
|
+
@actors ||= client.actor.find(id, mapping: true)
|
12
|
+
end
|
13
|
+
|
14
|
+
def banners(id)
|
15
|
+
@banners ||= client.banner.find(id, mapping: true)
|
16
|
+
end
|
17
|
+
|
18
|
+
def episode(id)
|
19
|
+
@episode ||= client.episode.find(id, mapping: true)
|
20
|
+
end
|
21
|
+
|
22
|
+
def client
|
23
|
+
ThetvdbApi::Client.new
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class ThetvdbMapper::FullSeries < ThetvdbMapper::Base
|
2
|
+
def data
|
3
|
+
@data ||= series.merge(episodes: episodes, actors: actors, banners: banners)
|
4
|
+
end
|
5
|
+
|
6
|
+
def series
|
7
|
+
ThetvdbMapper::Mapping::Series.map(fetcher.full_series(id).body['Series'])
|
8
|
+
end
|
9
|
+
|
10
|
+
def episodes
|
11
|
+
fetcher.full_series(id).body['Episode'].map { |episode| map_episode(episode) }
|
12
|
+
end
|
13
|
+
|
14
|
+
def map_episode(data)
|
15
|
+
ThetvdbMapper::Mapping::Episode.map(data)
|
16
|
+
end
|
17
|
+
|
18
|
+
def actors
|
19
|
+
fetcher.actors(id).body.map { |actor| map_actor(actor) }
|
20
|
+
end
|
21
|
+
|
22
|
+
def map_actor(data)
|
23
|
+
ThetvdbMapper::Mapping::Actor.map(data)
|
24
|
+
end
|
25
|
+
|
26
|
+
def banners
|
27
|
+
fetcher.banners(id).body.map { |banner| map_banner(banner) }
|
28
|
+
end
|
29
|
+
|
30
|
+
def map_banner(data)
|
31
|
+
ThetvdbMapper::Mapping::Banner.map(data)
|
32
|
+
end
|
33
|
+
|
34
|
+
def inspect
|
35
|
+
"<ThetvdbMapper::FullSeries data=#{data.to_s} >"
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class ThetvdbMapper::Mapping::Banner < ThetvdbMapper::Mapping::Base
|
2
|
+
def self.rules
|
3
|
+
{
|
4
|
+
'BannerPath' => :path,
|
5
|
+
'ThumbnailPath' => :thumbnail_path,
|
6
|
+
'VignettePath' => :vignette_path,
|
7
|
+
'BannerType' => :type,
|
8
|
+
'BannerType2' => :type2,
|
9
|
+
'Language' => :language,
|
10
|
+
'Season' => :season,
|
11
|
+
'Rating' => :rating,
|
12
|
+
'RatingCount' => :rating_count,
|
13
|
+
'SeriesName' => :series_name,
|
14
|
+
'Colors' => :colors,
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class ThetvdbMapper::Mapping::Base
|
2
|
+
def self.map(data)
|
3
|
+
rules.each do |before, after|
|
4
|
+
data[after] = data.delete(before)
|
5
|
+
end
|
6
|
+
|
7
|
+
if respond_to?(:convert)
|
8
|
+
data = convert(data)
|
9
|
+
end
|
10
|
+
|
11
|
+
data
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.convert_to_list(data)
|
15
|
+
ThetvdbMapper::Mapping::StringList.map(data)
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
class ThetvdbMapper::Mapping::Episode < ThetvdbMapper::Mapping::Base
|
2
|
+
def self.rules
|
3
|
+
{
|
4
|
+
'id' => :id,
|
5
|
+
'Combined_episodenumber' => :combined_episode_number,
|
6
|
+
'Combined_season' => :combined_season,
|
7
|
+
'DVD_episodenumber' => :dvd_episode_number,
|
8
|
+
'DVD_season' => :dvd_season,
|
9
|
+
'Director' => :director,
|
10
|
+
'EpImgFlag' => :ep_img_flag,
|
11
|
+
'EpisodeName' => :name,
|
12
|
+
'EpisodeNumber' => :number,
|
13
|
+
'FirstAired' => :first_aired,
|
14
|
+
'GuestStars' => :guest_stars,
|
15
|
+
'IMDB_ID' => :imdb_id,
|
16
|
+
'Language' => :language,
|
17
|
+
'Overview' => :overview,
|
18
|
+
'ProductionCode' => :production_code,
|
19
|
+
'Rating' => :rating,
|
20
|
+
'RatingCount' => :rating_count,
|
21
|
+
'SeasonNumber' => :season,
|
22
|
+
'Writer' => :writer,
|
23
|
+
'absolute_number' => :absolute_number,
|
24
|
+
'airsafter_season' => :airs_after_season,
|
25
|
+
'airsbefore_episode' => :airs_before_episode,
|
26
|
+
'airsbefore_season' => :airs_before_season,
|
27
|
+
'filename' => :filename_path,
|
28
|
+
'lastupdated' => :last_updated_at,
|
29
|
+
'season_id' => :season_id,
|
30
|
+
'series_id' => :series_id,
|
31
|
+
'thumb_added' => :thumbnail_added_at,
|
32
|
+
'thumb_height' => :thumbnail_height,
|
33
|
+
'thumb_weight' => :thumbnail_width
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.convert(data)
|
38
|
+
data.merge({
|
39
|
+
director: convert_to_list(data[:director]),
|
40
|
+
guest_stars: convert_to_list(data[:guest_stars]),
|
41
|
+
writer: convert_to_list(data[:writer]),
|
42
|
+
last_updated_at: Time.at(data[:last_updated_at].to_i)
|
43
|
+
})
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class ThetvdbMapper::Mapping::Series < ThetvdbMapper::Mapping::Base
|
2
|
+
def self.rules
|
3
|
+
{
|
4
|
+
'id' => :id,
|
5
|
+
'Airs_DayOfWeek' => :airs_day_of_week,
|
6
|
+
'Airs_Time' => :airs_time,
|
7
|
+
'ContentRating' => :content_rating,
|
8
|
+
'FirstAired' => :first_aired,
|
9
|
+
'genre' => :genres,
|
10
|
+
'IMDB_ID' => :imdb_id,
|
11
|
+
'Language' => :language,
|
12
|
+
'Network' => :network,
|
13
|
+
'NetworkID' => :network_id,
|
14
|
+
'Overview' => :overview,
|
15
|
+
'Rating' => :rating,
|
16
|
+
'RatingCount' => :rating_count,
|
17
|
+
'Runtime' => :runtime,
|
18
|
+
'SeriesName' => :name,
|
19
|
+
'Status' => :status,
|
20
|
+
'added' => :added_at,
|
21
|
+
'added_by' => :added_by,
|
22
|
+
'banner' => :banner_path,
|
23
|
+
'fanart' => :fanart_path,
|
24
|
+
'lastupdated' => :last_updated_at,
|
25
|
+
'poster' => :poster_path,
|
26
|
+
'zap2it_id' => :zap2it_id
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.convert(data)
|
31
|
+
data.merge({
|
32
|
+
genres: convert_to_list(data[:genres]),
|
33
|
+
last_updated_at: Time.at(data[:last_updated_at].to_i)
|
34
|
+
})
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module ThetvdbMapper
|
2
|
+
module Mapping; end
|
3
|
+
end
|
4
|
+
|
5
|
+
require 'thetvdb_mapper/version'
|
6
|
+
require 'thetvdb_mapper/fetcher'
|
7
|
+
require 'thetvdb_mapper/mapping/base'
|
8
|
+
require 'thetvdb_mapper/mapping/actor'
|
9
|
+
require 'thetvdb_mapper/mapping/banner'
|
10
|
+
require 'thetvdb_mapper/mapping/episode'
|
11
|
+
require 'thetvdb_mapper/mapping/series'
|
12
|
+
require 'thetvdb_mapper/mapping/string_list'
|
13
|
+
require 'thetvdb_mapper/base'
|
14
|
+
require 'thetvdb_mapper/actors'
|
15
|
+
require 'thetvdb_mapper/banners'
|
16
|
+
require 'thetvdb_mapper/episode'
|
17
|
+
require 'thetvdb_mapper/full_series'
|
18
|
+
require 'thetvdb_mapper/series'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ThetvdbMapper::Mapping::Actor do
|
4
|
+
let(:klass) { ThetvdbMapper::Mapping::Actor }
|
5
|
+
|
6
|
+
describe '#map' do
|
7
|
+
it 'should return specific keys' do
|
8
|
+
klass.map({}).keys.sort.should == [:id, :image_path, :name, :role, :sort_order].sort
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should map id' do
|
12
|
+
klass.map('id' => 1234)[:id].should == 1234
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should map Image' do
|
16
|
+
klass.map('Image' => 'test')[:image_path].should == 'test'
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should map Name' do
|
20
|
+
klass.map('Name' => 'test')[:name].should == 'test'
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should map Role' do
|
24
|
+
klass.map('Role' => 'test')[:role].should == 'test'
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should map SortOrder' do
|
28
|
+
klass.map('SortOrder' => 1)[:sort_order].should == 1
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ThetvdbMapper::Mapping::Banner do
|
4
|
+
let(:klass) { ThetvdbMapper::Mapping::Banner }
|
5
|
+
|
6
|
+
describe '#map' do
|
7
|
+
it 'should return specific keys' do
|
8
|
+
klass.map({}).keys.sort.should == [:path, :thumbnail_path, :vignette_path, :type, :type2, :language, :season,
|
9
|
+
:rating, :rating_count, :series_name, :colors].sort
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should map BannerPath' do
|
13
|
+
klass.map('BannerPath' => 'test')[:path].should == 'test'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should map ThumbnailPath' do
|
17
|
+
klass.map('ThumbnailPath' => 'test')[:thumbnail_path].should == 'test'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should map VignettePath' do
|
21
|
+
klass.map('VignettePath' => 'test')[:vignette_path].should == 'test'
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should map BannerType' do
|
25
|
+
klass.map('BannerType' => 'test')[:type].should == 'test'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should map BannerType2' do
|
29
|
+
klass.map('BannerType2' => 'test')[:type2].should == 'test'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should map Language' do
|
33
|
+
klass.map('Language' => 'test')[:language].should == 'test'
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should map Season' do
|
37
|
+
klass.map('Season' => 'test')[:season].should == 'test'
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should map Rating' do
|
41
|
+
klass.map('Rating' => 'test')[:rating].should == 'test'
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should map RatingCount' do
|
45
|
+
klass.map('RatingCount' => 'test')[:rating_count].should == 'test'
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should map SeriesName' do
|
49
|
+
klass.map('SeriesName' => 'test')[:series_name].should == 'test'
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should map Colors' do
|
53
|
+
klass.map('Colors' => 'test')[:colors].should == 'test'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ThetvdbMapper::Mapping::Episode do
|
4
|
+
let(:klass) { ThetvdbMapper::Mapping::Episode }
|
5
|
+
|
6
|
+
describe '#map' do
|
7
|
+
it 'should return specific keys' do
|
8
|
+
klass.map({}).keys.sort.should == [:id, :combined_episode_number, :combined_season, :dvd_episode_number,
|
9
|
+
:dvd_season, :director, :ep_img_flag, :name, :number, :first_aired, :guest_stars, :imdb_id, :language,
|
10
|
+
:overview, :production_code, :rating, :rating_count, :season, :writer, :absolute_number, :airs_after_season,
|
11
|
+
:airs_before_episode, :airs_before_season, :filename_path, :last_updated_at, :season_id, :series_id,
|
12
|
+
:thumbnail_added_at, :thumbnail_height, :thumbnail_width].sort
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should map id' do
|
16
|
+
klass.map('id' => 1234)[:id].should == 1234
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should map Combined_episodenumber' do
|
20
|
+
klass.map('Combined_episodenumber' => 1234)[:combined_episode_number].should == 1234
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should map Combined_season' do
|
24
|
+
klass.map('Combined_season' => 1234)[:combined_season].should == 1234
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should map DVD_episodenumber' do
|
28
|
+
klass.map('DVD_episodenumber' => 1234)[:dvd_episode_number].should == 1234
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should map DVD_season' do
|
32
|
+
klass.map('DVD_season' => 1234)[:dvd_season].should == 1234
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should map Director' do
|
36
|
+
klass.map('Director' => '|test|')[:director].should == ['test']
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should map EpImgFlag' do
|
40
|
+
klass.map('EpImgFlag' => 1234)[:ep_img_flag].should == 1234
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should map EpisodeName' do
|
44
|
+
klass.map('EpisodeName' => 'test')[:name].should == 'test'
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should map EpisodeNumber' do
|
48
|
+
klass.map('EpisodeNumber' => 1234)[:number].should == 1234
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should map FirstAired' do
|
52
|
+
klass.map('FirstAired' => 1234)[:first_aired].should == 1234
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should map GuestStars' do
|
56
|
+
klass.map('GuestStars' => '|test|')[:guest_stars].should == ['test']
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should map IMDB_ID' do
|
60
|
+
klass.map('IMDB_ID' => 'test')[:imdb_id].should == 'test'
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should map Language' do
|
64
|
+
klass.map('Language' => 'test')[:language].should == 'test'
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should map Overview' do
|
68
|
+
klass.map('Overview' => 'test')[:overview].should == 'test'
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'should map ProductionCode' do
|
72
|
+
klass.map('ProductionCode' => 'test')[:production_code].should == 'test'
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'should map Rating' do
|
76
|
+
klass.map('Rating' => '1.0')[:rating].should == '1.0'
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should map RatingCount' do
|
80
|
+
klass.map('RatingCount' => '1')[:rating_count].should == '1'
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'should map SeasonNumber' do
|
84
|
+
klass.map('SeasonNumber' => '1')[:season].should == '1'
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'should map Writer' do
|
88
|
+
klass.map('Writer' => '|test|')[:writer].should == ['test']
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'should map absolute_number' do
|
92
|
+
klass.map('absolute_number' => '1')[:absolute_number].should == '1'
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should map airsafter_season' do
|
96
|
+
klass.map('airsafter_season' => '1')[:airs_after_season].should == '1'
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'should map airsbefore_episode' do
|
100
|
+
klass.map('airsbefore_episode' => '1')[:airs_before_episode].should == '1'
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should map airsbefore_season' do
|
104
|
+
klass.map('airsbefore_season' => '1')[:airs_before_season].should == '1'
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'should map filename' do
|
108
|
+
klass.map('filename' => 'test')[:filename_path].should == 'test'
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'should map lastupdated' do
|
112
|
+
klass.map('lastupdated' => '1234')[:last_updated_at].should == Time.at(1234)
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'should map season_id' do
|
116
|
+
klass.map('season_id' => '1')[:season_id].should == '1'
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'should map series_id' do
|
120
|
+
klass.map('series_id' => '1')[:series_id].should == '1'
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'should map thumb_added' do
|
124
|
+
klass.map('thumb_added' => 'test')[:thumbnail_added_at].should == 'test'
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'should map thumb_height' do
|
128
|
+
klass.map('thumb_height' => 'test')[:thumbnail_height].should == 'test'
|
129
|
+
end
|
130
|
+
|
131
|
+
it 'should map thumb_weight' do
|
132
|
+
klass.map('thumb_weight' => 'test')[:thumbnail_width].should == 'test'
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|