top_ten_islands_cli_gem 0.1.2 → 2.0.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 +5 -5
- data/README.md +0 -6
- data/bin/console +1 -1
- data/lib/top_ten_islands_cli_gem.rb +6 -2
- data/lib/top_ten_islands_cli_gem/cli.rb +24 -13
- data/lib/top_ten_islands_cli_gem/island.rb +14 -4
- data/lib/top_ten_islands_cli_gem/scraper.rb +19 -6
- data/lib/top_ten_islands_cli_gem/version.rb +1 -1
- data/top_ten_islands_cli_gem.gemspec +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 425ddae9c75edfff886fdc33eb10f35a8e656fb574335b96a44a11847401d69e
|
4
|
+
data.tar.gz: ab43c5fa409455230e71bf59c057a168d57c52fa712ed021e40919834a5c4393
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df52d9df7aaff3fa1dd64d546f6c3a7e5d35e9e192bc29071ff2e0b85455ba9a6452e06b9458350bc89c1d67fb87ae9e73ea42b0fc4c46a4e5aeb038b6b667eb
|
7
|
+
data.tar.gz: 6666f4bb9e96c5716b21067d7ab64f96e852056b649abec7fde7fc085c7e7e0875753b53053eabf74a3f68efcae66f64bee1d244eda8d53a8ac69d61042915f5
|
data/README.md
CHANGED
@@ -1,9 +1,3 @@
|
|
1
|
-
## TopTenIslands
|
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/top_ten_islands`. 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
1
|
## Installation
|
8
2
|
|
9
3
|
You can install this gem via `gem install top_ten_islands_cli_gem`. The `top_ten_islands_cli_gem` CLI will be installed and you can run `top_ten_islands_cli_gem` to get a list of islands to travel to in your command line.
|
data/bin/console
CHANGED
@@ -7,5 +7,9 @@ require_relative "top_ten_islands_cli_gem/scraper.rb"
|
|
7
7
|
require_relative "top_ten_islands_cli_gem/island.rb"
|
8
8
|
require_relative "top_ten_islands_cli_gem/cli.rb"
|
9
9
|
|
10
|
-
module TopTenIslandsCliGem
|
11
|
-
end
|
10
|
+
# module TopTenIslandsCliGem
|
11
|
+
# end
|
12
|
+
|
13
|
+
|
14
|
+
#x = TopTenIslandsCliGem::Island
|
15
|
+
#x.create_islands
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class TopTenIslandsCliGem::Cli
|
2
2
|
|
3
3
|
def start
|
4
|
-
TopTenIslandsCliGem::
|
4
|
+
TopTenIslandsCliGem::Island.create_islands_from_hash
|
5
5
|
puts " "
|
6
6
|
puts "Welcome to the Worlds Top Islands to visit!!"
|
7
7
|
puts " "
|
@@ -14,26 +14,34 @@ class TopTenIslandsCliGem::Cli
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def discription
|
17
|
+
|
17
18
|
@input = 0
|
18
19
|
#binding.pry
|
19
|
-
|
20
|
+
until @input.to_i.between?(1,10) || @input == "list"
|
20
21
|
puts " "
|
21
|
-
puts "What number island would you like to read about?"
|
22
|
-
@input = gets.chomp.
|
22
|
+
puts "What number island would you like to read about? Or type list"
|
23
|
+
@input = gets.chomp.downcase
|
24
|
+
end
|
25
|
+
|
26
|
+
if @input.to_i.between?(1,10)
|
27
|
+
#binding.pry
|
28
|
+
@input = @input.to_i
|
29
|
+
puts ""
|
30
|
+
puts "--------#{TopTenIslandsCliGem::Island.all[@input-1].name}--------"
|
31
|
+
puts ""
|
32
|
+
puts TopTenIslandsCliGem::Island.all[@input-1].get_discription
|
33
|
+
puts ""
|
34
|
+
ending
|
35
|
+
elsif @input.downcase == "list"
|
36
|
+
list
|
37
|
+
discription
|
23
38
|
end
|
24
|
-
#binding.pry
|
25
|
-
puts ""
|
26
|
-
puts "--------#{TopTenIslandsCliGem::Island.all[@input-1].name}--------"
|
27
|
-
puts ""
|
28
|
-
puts TopTenIslandsCliGem::Island.all[@input-1].get_discription
|
29
|
-
puts ""
|
30
|
-
ending
|
31
39
|
end
|
32
40
|
|
33
41
|
def ending
|
34
42
|
input = ""
|
35
|
-
until input == "y" || input == "n"
|
36
|
-
puts "Would you like to read about another island? Y or
|
43
|
+
until input == "y" || input == "n" || input == "list"
|
44
|
+
puts "Would you like to read about another island? Y,N or list"
|
37
45
|
input = gets.chomp.downcase
|
38
46
|
end
|
39
47
|
case input
|
@@ -41,6 +49,9 @@ class TopTenIslandsCliGem::Cli
|
|
41
49
|
discription
|
42
50
|
when "n"
|
43
51
|
puts "Hope to see you at #{TopTenIslandsCliGem::Island.all[@input-1].name} soon!!"
|
52
|
+
when "list"
|
53
|
+
list
|
54
|
+
discription
|
44
55
|
end
|
45
56
|
|
46
57
|
end
|
@@ -1,22 +1,32 @@
|
|
1
1
|
class TopTenIslandsCliGem::Island
|
2
2
|
|
3
|
-
attr_accessor :name, :
|
3
|
+
attr_accessor :name, :index, :discription
|
4
4
|
|
5
5
|
ALL = []
|
6
6
|
|
7
|
-
def initialize(name=nil,
|
7
|
+
def initialize(name=nil, index=nil, discription=nil)
|
8
8
|
@name = name
|
9
|
-
@
|
9
|
+
@index = index
|
10
10
|
ALL.push(self)
|
11
11
|
end
|
12
12
|
|
13
13
|
def get_discription
|
14
|
-
@discription ||= TopTenIslandsCliGem::Scraper.get_island_discription(@
|
14
|
+
@discription ||= TopTenIslandsCliGem::Scraper.get_island_discription(@index)
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.all
|
18
18
|
ALL
|
19
19
|
end
|
20
20
|
|
21
|
+
def self.create_islands_from_hash
|
22
|
+
islands_array = TopTenIslandsCliGem::Scraper.get_islands_array
|
23
|
+
|
24
|
+
islands_array.each do |island_hash|
|
25
|
+
islands = self.new(island_hash[:name], island_hash[:index])
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
|
21
31
|
|
22
32
|
end
|
@@ -1,17 +1,30 @@
|
|
1
1
|
class TopTenIslandsCliGem::Scraper
|
2
2
|
|
3
3
|
def self.get_page
|
4
|
-
Nokogiri::HTML(open("https://www.tripadvisor.com/TravelersChoice-Islands"))
|
4
|
+
# Nokogiri::HTML(open("https://www.tripadvisor.com/TravelersChoice-Islands"))
|
5
|
+
Nokogiri::HTML(open("https://www.lonelyplanet.com/campaign/island-guide-2018/top-10-islands-for-2018/"))
|
6
|
+
|
5
7
|
end
|
6
8
|
|
7
|
-
def self.
|
8
|
-
|
9
|
-
|
9
|
+
def self.get_islands_array
|
10
|
+
islands_array = []
|
11
|
+
|
12
|
+
@@top_islands_page = self.get_page.css('.article__content')
|
13
|
+
|
14
|
+
@@top_islands_page.css(' h3 > strong')
|
15
|
+
.each_with_index do |island, index|
|
16
|
+
island_hash = {}
|
17
|
+
island_hash[:name] = island.text
|
18
|
+
island_hash[:index] = index
|
19
|
+
islands_array.push(island_hash)
|
10
20
|
end
|
21
|
+
islands_array
|
11
22
|
end
|
12
23
|
|
13
|
-
def self.get_island_discription(
|
14
|
-
Nokogiri::HTML(open(url)).css(" .ermb_text").css(" .content").text.strip
|
24
|
+
def self.get_island_discription(index)
|
25
|
+
# Nokogiri::HTML(open(url)).css(" .ermb_text").css(" .content").text.strip
|
26
|
+
|
27
|
+
@@top_islands_page.css('p')[index].text.strip
|
15
28
|
end
|
16
29
|
|
17
30
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require '
|
4
|
+
require 'top_ten_islands_cli_gem/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "top_ten_islands_cli_gem"
|
8
|
-
spec.version =
|
8
|
+
spec.version = TopTenIslandsCliGem::VERSION
|
9
9
|
spec.authors = ["Sholom Steinmetz"]
|
10
10
|
spec.email = ["sholomsteinmetz@gmail.com"]
|
11
11
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: top_ten_islands_cli_gem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sholom Steinmetz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
136
|
version: '0'
|
137
137
|
requirements: []
|
138
138
|
rubyforge_project:
|
139
|
-
rubygems_version: 2.6
|
139
|
+
rubygems_version: 2.7.6
|
140
140
|
signing_key:
|
141
141
|
specification_version: 4
|
142
142
|
summary: Shows a list of the worlds top ten islands to visit
|