mangaeden_api 0.1.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.
@@ -0,0 +1,70 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe MangaedenApi::Manga do
4
+ before do
5
+ VCR.insert_cassette 'manga', record: :new_episodes
6
+ end
7
+
8
+ after do
9
+ VCR.eject_cassette
10
+ end
11
+
12
+ describe '.search' do
13
+ let(:mangas) { MangaedenApi::Manga.search('Naruto') }
14
+ let(:downcase_mangas) { MangaedenApi::Manga.search('naruto') }
15
+
16
+ it 'should return an array of Manga objects' do
17
+ expect(mangas).to be_instance_of(Array)
18
+ mangas.each do |m|
19
+ expect(m).to be_instance_of(MangaedenApi::Manga)
20
+ end
21
+ end
22
+
23
+ it 'should perform a case-insensitive search' do
24
+ expect(mangas.count).to eq(downcase_mangas.count)
25
+ mangas.each_with_index do |manga, i|
26
+ expect(manga.manga_id).to eq(downcase_mangas[i].manga_id)
27
+ expect(manga.aka).to eq(downcase_mangas[i].aka)
28
+ expect(manga.aka_alias).to eq(downcase_mangas[i].aka_alias)
29
+ expect(manga.alias).to eq(downcase_mangas[i].alias)
30
+ expect(manga.artist).to eq(downcase_mangas[i].artist)
31
+ expect(manga.artist_kw).to eq(downcase_mangas[i].artist_kw)
32
+ expect(manga.author).to eq(downcase_mangas[i].author)
33
+ expect(manga.author_kw).to eq(downcase_mangas[i].author_kw)
34
+ expect(manga.categories).to eq(downcase_mangas[i].categories)
35
+ expect(manga.chapters_info).to eq(downcase_mangas[i].chapters_info)
36
+ expect(manga.chapters_len).to eq(downcase_mangas[i].chapters_len)
37
+ expect(manga.created).to eq(downcase_mangas[i].created)
38
+ expect(manga.description).to eq(downcase_mangas[i].description)
39
+ expect(manga.image).to eq(downcase_mangas[i].image)
40
+ expect(manga.language).to eq(downcase_mangas[i].language)
41
+ expect(manga.last_chapter_date).to eq(downcase_mangas[i].last_chapter_date)
42
+ expect(manga.released).to eq(downcase_mangas[i].released)
43
+ expect(manga.starts_with).to eq(downcase_mangas[i].starts_with)
44
+ expect(manga.status).to eq(downcase_mangas[i].status)
45
+ expect(manga.title).to eq(downcase_mangas[i].title)
46
+ expect(manga.title_kw).to eq(downcase_mangas[i].title_kw)
47
+ expect(manga.type).to eq(downcase_mangas[i].type)
48
+ expect(manga.updated_keywords).to eq(downcase_mangas[i].updated_keywords)
49
+ end
50
+ end
51
+
52
+ it 'should return a list of Manga with the same title I searched' do
53
+ mangas.each do |m|
54
+ expect(m.title.downcase).to eq('Naruto'.downcase)
55
+ end
56
+ end
57
+ end
58
+
59
+ describe '.chapters' do
60
+ let(:manga) { MangaedenApi::Mangaeden.get_manga_info('4e70e9f6c092255ef7004336') }
61
+ let(:chapters) { manga.chapters }
62
+
63
+ it 'should return an array of Chapter objects' do
64
+ expect(chapters).to be_instance_of(Array)
65
+ chapters.each do |c|
66
+ expect(c).to be_instance_of(MangaedenApi::Chapter)
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,91 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe MangaedenApi::Mangaeden do
4
+ before do
5
+ VCR.insert_cassette 'mangas', record: :new_episodes
6
+ end
7
+
8
+ after do
9
+ VCR.eject_cassette
10
+ end
11
+
12
+ describe '.get_manga_list' do
13
+ let(:en_mangas) { MangaedenApi::Mangaeden.get_manga_list }
14
+ let(:it_mangas) { MangaedenApi::Mangaeden.get_manga_list('it') }
15
+ let(:paginated_mangas) { MangaedenApi::Mangaeden.get_manga_list('en', 1) }
16
+ let(:limited_paginated_mangas) { MangaedenApi::Mangaeden.get_manga_list('en', 1, 30) }
17
+
18
+ it 'should return the entire english list of manga' do
19
+ expect(en_mangas).to be_instance_of(Array)
20
+ expect(en_mangas.count).to be > 0
21
+ expect(en_mangas[0]).to have_key('im')
22
+ expect(en_mangas[0]).to have_key('t')
23
+ expect(en_mangas[0]).to have_key('i')
24
+ expect(en_mangas[0]).to have_key('a')
25
+ expect(en_mangas[0]).to have_key('s')
26
+ expect(en_mangas[0]).to have_key('ld')
27
+ expect(en_mangas[0]).to have_key('h')
28
+ end
29
+
30
+ it 'should return the entire italian list of manga' do
31
+ expect(it_mangas).to be_instance_of(Array)
32
+ expect(it_mangas.count).to be > 0
33
+ expect(it_mangas[0]).to have_key('im')
34
+ expect(it_mangas[0]).to have_key('t')
35
+ expect(it_mangas[0]).to have_key('i')
36
+ expect(it_mangas[0]).to have_key('a')
37
+ expect(it_mangas[0]).to have_key('s')
38
+ expect(it_mangas[0]).to have_key('ld')
39
+ expect(it_mangas[0]).to have_key('h')
40
+ end
41
+
42
+ it 'should return a paginated list of manga' do
43
+ expect(paginated_mangas.count).to eq(500)
44
+ end
45
+
46
+ it 'should return a limited paginated list of manga' do
47
+ expect(limited_paginated_mangas.count).to eq(30)
48
+ end
49
+ end
50
+
51
+ describe '.get_manga_info' do
52
+ let(:manga) { MangaedenApi::Mangaeden.get_manga_info('4e70e9f6c092255ef7004336') }
53
+
54
+ it 'should return a Manga' do
55
+ expect(manga).to be_instance_of(MangaedenApi::Manga)
56
+ end
57
+
58
+ it 'should return all the informations about the manga with the searched ID' do
59
+ expect(manga.manga_id).to eq('4e70e9f6c092255ef7004336')
60
+ expect(manga.aka).to eq(Array.new)
61
+ expect(manga.aka_alias).to eq(Array.new)
62
+ expect(manga.alias).to eq('airindream')
63
+ expect(manga.artist).to eq('')
64
+ expect(manga.artist_kw).to eq(Array.new)
65
+ expect(manga.author).to eq('')
66
+ expect(manga.author_kw).to eq(Array.new)
67
+ expect(manga.categories).to eq(%w(Comedy Drama Action))
68
+ expect(manga.chapters_info).to eq([
69
+ [5, 1_275_542_373.0, '5', '4e711cb0c09225616d037cc2'],
70
+ [4, 1_275_542_373.0, '4', '4e711cb1c09225616d037ce4'],
71
+ [3, 1_275_542_373.0, '3', '4e711cacc09225616d037c72'],
72
+ [2, 1_275_542_373.0, '2', '4e711cb3c09225616d037d05'],
73
+ [1, 1_275_542_373.0, '1', '4e711caec09225616d037ca0']
74
+ ])
75
+ expect(manga.chapters_len).to eq(5)
76
+ expect(manga.created).to eq(1_316_022_774.0)
77
+ expect(manga.description).to eq('There is fighting at the high school due to a power struggle for control. The granddaughter of the chief director requests help from the Airin Dreamdo fighting style genius. Will he help? Or will he show his true colors with his bad boy ways?')
78
+ expect(manga.hits).to eq(18_388)
79
+ expect(manga.image).to eq(MangaedenApi::IMAGE_HOST + '88/88482f39e126a59bcac77a1df273fae30a9af811fc16cb08f4910cc5.jpg')
80
+ expect(manga.language).to eq(0)
81
+ expect(manga.last_chapter_date).to eq(1_275_542_373.0)
82
+ expect(manga.released).to eq(nil)
83
+ expect(manga.starts_with).to eq('a')
84
+ expect(manga.status).to eq(1)
85
+ expect(manga.title).to eq('Airindream')
86
+ expect(manga.title_kw).to eq(['airindream'])
87
+ expect(manga.type).to eq(0)
88
+ expect(manga.updated_keywords).to eq(true)
89
+ end
90
+ end
91
+ end
@@ -0,0 +1 @@
1
+ require 'spec_helper'
@@ -0,0 +1,19 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'bundler/setup'
5
+ Bundler.setup
6
+
7
+ require 'mangaeden_api'
8
+ require 'webmock/rspec'
9
+ require 'vcr'
10
+
11
+ # VCR config
12
+ VCR.configure do |config|
13
+ config.cassette_library_dir = 'spec/fixtures/mangaeden_api'
14
+ config.hook_into :webmock
15
+ end
16
+
17
+ # RSPEC config
18
+ RSpec.configure do |config|
19
+ end
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mangaeden_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Luca Ferri
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.8'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.8'
27
+ description: A Mangaeden API wrapper
28
+ email:
29
+ - luca.ferri88@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".gitignore"
35
+ - ".travis.yml"
36
+ - Gemfile
37
+ - Gemfile.lock
38
+ - LICENSE
39
+ - README.md
40
+ - Rakefile
41
+ - lib/mangaeden_api.rb
42
+ - lib/mangaeden_api/chapter.rb
43
+ - lib/mangaeden_api/configuration.rb
44
+ - lib/mangaeden_api/manga.rb
45
+ - lib/mangaeden_api/mangaeden.rb
46
+ - lib/mangaeden_api/version.rb
47
+ - mangaeden_api.gemspec
48
+ - spec/fixtures/mangaeden_api/manga.yml
49
+ - spec/fixtures/mangaeden_api/mangas.yml
50
+ - spec/lib/mangaeden_api/manga_spec.rb
51
+ - spec/lib/mangaeden_api/mangaeden_spec.rb
52
+ - spec/lib/mangaeden_api_spec.rb
53
+ - spec/spec_helper.rb
54
+ homepage: http://lucaferri.github.io/mangaeden_api
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message: Thank for installing!
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.2.2
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: Wrapper for Mangaeden API (http://www.mangaeden.com/api/)
78
+ test_files:
79
+ - spec/fixtures/mangaeden_api/manga.yml
80
+ - spec/fixtures/mangaeden_api/mangas.yml
81
+ - spec/lib/mangaeden_api/manga_spec.rb
82
+ - spec/lib/mangaeden_api/mangaeden_spec.rb
83
+ - spec/lib/mangaeden_api_spec.rb
84
+ - spec/spec_helper.rb