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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8fc8304813056a58b9e364ab14d584e93b24a71847c668a221431ea66b882e4
4
- data.tar.gz: 61dce56359bac48edfc4d93b164cb287986a95965071eeff5586f58d63a76fb0
3
+ metadata.gz: d5ea299b96cb809f246ee246826268c341d18732aaa2cc1d0701fa286220004d
4
+ data.tar.gz: c1ceeadbf26c98b19888ab93d97cf0c3df4f39b121b9023966a4809e836408ed
5
5
  SHA512:
6
- metadata.gz: ff8f45c94871dff56c0eb0067d831afabf3d1c6f6a111756ce60b157ca0582eda4a7c994b6f41072ca5c59f93661df89a563ea61051c42e05b6845336cc18572
7
- data.tar.gz: da57f05002979bdbc8652706f0eb8772d1d5ee813f9f5045188b6be516d6e4241a8d24890d21e7cd46371e9af147739dbfa5d993f56574ca0c40a86d688fdb9b
6
+ metadata.gz: c20a7b568031ae77cbbf686b3085eecc91a7335303b2cecac25bf97871225bcbef4d34a0259c134ed5c35a6ddf9f9fbd7ba7ec5c00aaf5bb7588233d26402700
7
+ data.tar.gz: ac1e2ae94656774f7e69f580b0b54b792f7863f848a9a453759e5d04a46c393a4fe22759c8d218fe72b4982f3752b4fbd7119d6aeefc588e6b21866fab0d45f3
data/.DS_Store ADDED
Binary file
@@ -1,5 +1,6 @@
1
1
  require 'nokogiri'
2
2
  require 'open-uri'
3
+ require 'pry'
3
4
 
4
5
  require_relative '../lib/marvel_characters_cli_gem_ethel/characters'
5
6
  require_relative '../lib/marvel_characters_cli_gem_ethel/cli'
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
- @@character_array = []
5
+ @@all = []
6
6
 
7
- def initialize(number = nil, super_name=nil, real_name=nil, character_type=nil, number_of_powers=nil, list_of_powers)
8
- puts "in initialize"
9
- puts super_name
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.get_super_name
20
- @@super_name
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
- main_page = MarvelCharactersCliGemEthel::Scraper.get_main_page
8
-
9
- count = 0
7
+ MarvelCharactersCliGemEthel::Scraper.get_main_page
10
8
 
11
9
  #Provide List View of Characters
12
10
 
13
- while count < 10
14
- puts main_page.css('h3')[count].text
15
- count +=1
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-1
25
+ input = gets.strip.to_i
26
26
 
27
- build_character(input)
28
- print_character(input)
29
- select_another_character
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
- #Create Character
39
+ #If it has NOT been built before
34
40
 
35
41
  def build_character(input)
36
- MarvelCharactersCliGemEthel::Scraper.get_character_info(input)
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
- acharacter = MarvelCharactersCliGemEthel::Characters
43
- puts "Super Name: #{acharacter.get_super_name}"
44
- puts "Real Name: #{acharacter.get_real_name}"
45
- puts "Character Type: #{acharacter.get_character_type}"
46
- puts "Number of Powers: #{acharacter.get_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 acharacter.get_list_of_powers.each{|one_power| puts one_power.to_s if one_power.to_s != "0"}
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
- call
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
- start
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
- base_character_url = "https://comicvine.gamespot.com"
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
- number = input
25
-
26
- super_name = character_page.css('div.wiki-details').css('table').css('tr')[0].css('td').css('div').css('span').text
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
@@ -1,3 +1,3 @@
1
1
  module MarvelCharactersCliGemEthel
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
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.3
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-23 00:00:00.000000000 Z
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