marvel_characters_cli_gem_ethel 0.1.3 → 0.1.4
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 +4 -4
- data/.DS_Store +0 -0
- data/config/environment.rb +1 -0
- data/lib/.DS_Store +0 -0
- data/lib/marvel_characters_cli_gem_ethel/characters.rb +7 -30
- data/lib/marvel_characters_cli_gem_ethel/cli.rb +28 -20
- data/lib/marvel_characters_cli_gem_ethel/scraper.rb +15 -21
- data/lib/marvel_characters_cli_gem_ethel/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d5ea299b96cb809f246ee246826268c341d18732aaa2cc1d0701fa286220004d
|
|
4
|
+
data.tar.gz: c1ceeadbf26c98b19888ab93d97cf0c3df4f39b121b9023966a4809e836408ed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c20a7b568031ae77cbbf686b3085eecc91a7335303b2cecac25bf97871225bcbef4d34a0259c134ed5c35a6ddf9f9fbd7ba7ec5c00aaf5bb7588233d26402700
|
|
7
|
+
data.tar.gz: ac1e2ae94656774f7e69f580b0b54b792f7863f848a9a453759e5d04a46c393a4fe22759c8d218fe72b4982f3752b4fbd7119d6aeefc588e6b21866fab0d45f3
|
data/.DS_Store
ADDED
|
Binary file
|
data/config/environment.rb
CHANGED
data/lib/.DS_Store
ADDED
|
Binary file
|
|
@@ -1,39 +1,16 @@
|
|
|
1
1
|
class MarvelCharactersCliGemEthel::Characters
|
|
2
2
|
|
|
3
|
-
attr_accessor :number, :super_name, :real_name, :character_type, :number_of_powers, :list_of_powers
|
|
3
|
+
attr_accessor :number, :super_name, :url, :real_name, :character_type, :number_of_powers, :list_of_powers
|
|
4
4
|
|
|
5
|
-
@@
|
|
5
|
+
@@all = []
|
|
6
6
|
|
|
7
|
-
def initialize
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
@number = number
|
|
11
|
-
@@super_name = super_name
|
|
12
|
-
@@real_name = real_name
|
|
13
|
-
@@character_type = character_type
|
|
14
|
-
@@number_of_powers = number_of_powers
|
|
15
|
-
@@list_of_powers = list_of_powers
|
|
16
|
-
@@character_array << self
|
|
7
|
+
def initialize
|
|
8
|
+
@@all << self
|
|
9
|
+
# binding.pry
|
|
17
10
|
end
|
|
18
11
|
|
|
19
|
-
def self.
|
|
20
|
-
@@
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def self.get_real_name
|
|
24
|
-
@@real_name
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def self.get_character_type
|
|
28
|
-
@@character_type
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def self.get_number_of_powers
|
|
32
|
-
@@number_of_powers
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def self.get_list_of_powers
|
|
36
|
-
@@list_of_powers
|
|
12
|
+
def self.all
|
|
13
|
+
@@all
|
|
37
14
|
end
|
|
38
15
|
|
|
39
16
|
end #end Class
|
|
@@ -4,15 +4,15 @@ class MarvelCharactersCliGemEthel::CLI
|
|
|
4
4
|
puts ""
|
|
5
5
|
puts "Get Some Interesting Information about the Top 10 Marvel Characters"
|
|
6
6
|
puts ""
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
count = 0
|
|
7
|
+
MarvelCharactersCliGemEthel::Scraper.get_main_page
|
|
10
8
|
|
|
11
9
|
#Provide List View of Characters
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
input = 0
|
|
12
|
+
|
|
13
|
+
while input < 10
|
|
14
|
+
puts "#{input+1}. #{MarvelCharactersCliGemEthel::Characters.all[input].super_name}"
|
|
15
|
+
input +=1
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
start
|
|
@@ -22,30 +22,38 @@ class MarvelCharactersCliGemEthel::CLI
|
|
|
22
22
|
puts ""
|
|
23
23
|
puts "Please enter a number from 1 to 10."
|
|
24
24
|
puts ""
|
|
25
|
-
input = gets.strip.to_i
|
|
25
|
+
input = gets.strip.to_i
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
#Validate input
|
|
28
|
+
if (1..10).include?(input)
|
|
29
|
+
build_character(input-1)
|
|
30
|
+
print_character(input-1)
|
|
31
|
+
select_another_character
|
|
32
|
+
else
|
|
33
|
+
puts "Invalid Entry, please try again."
|
|
34
|
+
start
|
|
35
|
+
end
|
|
30
36
|
|
|
31
37
|
end #end start
|
|
32
38
|
|
|
33
|
-
#
|
|
39
|
+
#If it has NOT been built before
|
|
34
40
|
|
|
35
41
|
def build_character(input)
|
|
36
|
-
MarvelCharactersCliGemEthel::
|
|
42
|
+
if MarvelCharactersCliGemEthel::Characters.all[input].real_name == nil
|
|
43
|
+
MarvelCharactersCliGemEthel::Scraper.get_character_info(input)
|
|
44
|
+
end
|
|
37
45
|
end
|
|
38
46
|
|
|
39
47
|
#Provide Detailed View of Selected Character
|
|
40
48
|
|
|
41
49
|
def print_character(input)
|
|
42
|
-
|
|
43
|
-
puts "Super Name: #{
|
|
44
|
-
puts "Real Name: #{
|
|
45
|
-
puts "Character Type: #{
|
|
46
|
-
puts "Number of Powers: #{
|
|
50
|
+
puts ""
|
|
51
|
+
puts "Super Name: #{MarvelCharactersCliGemEthel::Characters.all[input].super_name}"
|
|
52
|
+
puts "Real Name: #{MarvelCharactersCliGemEthel::Characters.all[input].real_name}"
|
|
53
|
+
puts "Character Type: #{MarvelCharactersCliGemEthel::Characters.all[input].character_type}"
|
|
54
|
+
puts "Number of Powers: #{MarvelCharactersCliGemEthel::Characters.all[input].number_of_powers}"
|
|
47
55
|
puts "List of Powers: "
|
|
48
|
-
puts
|
|
56
|
+
puts MarvelCharactersCliGemEthel::Characters.all[input].list_of_powers
|
|
49
57
|
puts ""
|
|
50
58
|
puts '--------------------------------'
|
|
51
59
|
end
|
|
@@ -58,7 +66,7 @@ class MarvelCharactersCliGemEthel::CLI
|
|
|
58
66
|
input2 = gets.strip.downcase
|
|
59
67
|
|
|
60
68
|
if input2 == "y"
|
|
61
|
-
|
|
69
|
+
start
|
|
62
70
|
elsif input2 == "n"
|
|
63
71
|
puts ""
|
|
64
72
|
puts "Thank you for your time! Have a great day!"
|
|
@@ -66,7 +74,7 @@ class MarvelCharactersCliGemEthel::CLI
|
|
|
66
74
|
else
|
|
67
75
|
puts ""
|
|
68
76
|
puts "Invalid Entry - please try again."
|
|
69
|
-
|
|
77
|
+
select_another_character
|
|
70
78
|
end
|
|
71
79
|
end
|
|
72
80
|
end #end Class
|
|
@@ -1,40 +1,34 @@
|
|
|
1
|
-
require 'open-uri'
|
|
2
|
-
require 'nokogiri'
|
|
3
|
-
|
|
4
1
|
class MarvelCharactersCliGemEthel::Scraper
|
|
5
2
|
|
|
6
3
|
def self.get_main_page
|
|
7
|
-
|
|
8
4
|
main_url= "https://comicvine.gamespot.com/profile/theoptimist/lists/top-100-marvel-characters/32199/"
|
|
9
5
|
document = open(main_url)
|
|
10
6
|
content = document.read
|
|
11
7
|
parsed_main_page= Nokogiri::HTML(content)
|
|
12
8
|
|
|
9
|
+
input = 0
|
|
10
|
+
while input < 10
|
|
11
|
+
character = MarvelCharactersCliGemEthel::Characters.new
|
|
12
|
+
character.super_name = parsed_main_page.css('h3')[input].text.split[1]
|
|
13
|
+
base_character_url = "https://comicvine.gamespot.com"
|
|
14
|
+
character_url = parsed_main_page.css('div#default-content a')[input]["href"]
|
|
15
|
+
character.url = "#{base_character_url}#{character_url}"
|
|
16
|
+
input +=1
|
|
17
|
+
end
|
|
18
|
+
# binding.pry
|
|
13
19
|
end
|
|
14
20
|
|
|
15
21
|
def self.get_character_info(input)
|
|
16
22
|
|
|
17
|
-
|
|
18
|
-
character_url = self.get_main_page.css('div#default-content a')[input]["href"]
|
|
19
|
-
final_character_url = "#{base_character_url}#{character_url}"
|
|
20
|
-
document2 = open(final_character_url)
|
|
23
|
+
document2 = open(MarvelCharactersCliGemEthel::Characters.all[input].url)
|
|
21
24
|
content2 = document2.read
|
|
22
25
|
character_page = Nokogiri::HTML(content2)
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
real_name = character_page.css('div.wiki-details').css('table').css('tr')[1].css('td').css('div').css('span').text
|
|
29
|
-
|
|
30
|
-
character_type = character_page.css('div.wiki-details').css('table').css('tr')[6].css('td').css('div').css('span').text
|
|
31
|
-
|
|
32
|
-
number_of_powers = character_page.css('div.wiki-details').css('table').css('tr')[11].css('td/div[1]/div').length
|
|
33
|
-
|
|
34
|
-
list_of_powers = character_page.css('div.wiki-details').css('table').css('tr')[11].css('td/div[1]/div').children
|
|
27
|
+
MarvelCharactersCliGemEthel::Characters.all[input].real_name = character_page.css('div.wiki-details').css('table').css('tr')[1].css('td').css('div').css('span').text
|
|
28
|
+
MarvelCharactersCliGemEthel::Characters.all[input].character_type = character_page.css('div.wiki-details').css('table').css('tr')[6].css('td').css('div').css('span').text
|
|
29
|
+
MarvelCharactersCliGemEthel::Characters.all[input].number_of_powers = character_page.css('div.wiki-details').css('table').css('tr')[11].css('td/div[1]/div').length
|
|
30
|
+
MarvelCharactersCliGemEthel::Characters.all[input].list_of_powers = character_page.css('div.wiki-details').css('table').css('tr')[11].css('td/div[1]/div').children
|
|
35
31
|
|
|
36
|
-
character_info = MarvelCharactersCliGemEthel::Characters.new(number, super_name, real_name, character_type, number_of_powers, list_of_powers)
|
|
37
|
-
character_info
|
|
38
32
|
end
|
|
39
33
|
|
|
40
34
|
end #class
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: marvel_characters_cli_gem_ethel
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- edb-c
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-08-
|
|
11
|
+
date: 2018-08-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -87,6 +87,7 @@ executables: []
|
|
|
87
87
|
extensions: []
|
|
88
88
|
extra_rdoc_files: []
|
|
89
89
|
files:
|
|
90
|
+
- ".DS_Store"
|
|
90
91
|
- ".gitignore"
|
|
91
92
|
- ".rspec"
|
|
92
93
|
- ".travis.yml"
|
|
@@ -100,6 +101,7 @@ files:
|
|
|
100
101
|
- bin/marvel_characters_cli_gem_ethel
|
|
101
102
|
- bin/setup
|
|
102
103
|
- config/environment.rb
|
|
104
|
+
- lib/.DS_Store
|
|
103
105
|
- lib/marvel_characters_cli_gem_ethel.rb
|
|
104
106
|
- lib/marvel_characters_cli_gem_ethel/characters.rb
|
|
105
107
|
- lib/marvel_characters_cli_gem_ethel/cli.rb
|