world_traveler 0.1.0 β 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.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/lib/world_traveler/cli.rb +15 -13
- data/lib/world_traveler/continents.rb +0 -1
- data/lib/world_traveler/display.rb +21 -38
- data/lib/world_traveler/highlights.rb +1 -2
- data/lib/world_traveler/scraper.rb +13 -12
- data/lib/world_traveler/version.rb +1 -1
- data/world_traveler.gemspec +10 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9504a55eaa54d0dc12483d42d654458d6ee4f5f906d55cfda94290900f571422
|
|
4
|
+
data.tar.gz: 8e8d733abc7f58834e2dd7d48a47756a485e84ed059bae00272c269fb61291f2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3d7650b43006b3397df9467c4810bd190c3debbfd4ec9775374092b6a3dc272b8d7a18d2233aafa8daa07fdf3fed3920a496997ad87a875677e93162971a8b4d
|
|
7
|
+
data.tar.gz: a83088b83f59d4f010ce6706deddf5a376e7c40f7ac4d3890bebe921320100c20801f148a0aec1f05bc9c31b7dd5c2c3b0336ed62ba6c811df505283400f4602
|
data/Gemfile
CHANGED
data/lib/world_traveler/cli.rb
CHANGED
|
@@ -3,7 +3,7 @@ class WorldTraveler::CLI
|
|
|
3
3
|
def call
|
|
4
4
|
system("clear")
|
|
5
5
|
WorldTraveler::Display.welcome_message
|
|
6
|
-
sleep(
|
|
6
|
+
sleep(2)
|
|
7
7
|
|
|
8
8
|
@input = ""
|
|
9
9
|
|
|
@@ -21,15 +21,15 @@ class WorldTraveler::CLI
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def list_continents
|
|
24
|
-
system("clear")
|
|
24
|
+
# system("clear")
|
|
25
25
|
WorldTraveler::Display.continent_list
|
|
26
26
|
|
|
27
27
|
@continent.each.with_index(1) do |continent, index|
|
|
28
|
-
puts "#{index}. #{continent.name}".center(
|
|
29
|
-
puts "-----------------------------------------".green.center(
|
|
28
|
+
puts "#{index}. #{continent.name}".center(150).rjust(10)
|
|
29
|
+
puts "-----------------------------------------".green.center(165)
|
|
30
30
|
end
|
|
31
31
|
puts ""
|
|
32
|
-
puts "Where would you like to go? (Choose 1-#{@continent.size})".center(
|
|
32
|
+
puts "Where would you like to go? (Choose 1-#{@continent.size})".center(152).green.bold
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def get_user_choice
|
|
@@ -42,7 +42,7 @@ class WorldTraveler::CLI
|
|
|
42
42
|
if chosen_continent.between?(1,@continent.size)
|
|
43
43
|
cont = @continent[chosen_continent - 1]
|
|
44
44
|
cont.get_highlights
|
|
45
|
-
puts "Here are highlights
|
|
45
|
+
puts "Here are highlights in #{cont.name}".light_blue.bold
|
|
46
46
|
cont.highlights.each.with_index(1) do |high, idx|
|
|
47
47
|
puts "#{idx}. #{high.name}"
|
|
48
48
|
end
|
|
@@ -54,26 +54,28 @@ class WorldTraveler::CLI
|
|
|
54
54
|
|
|
55
55
|
def get_user_highlight(cont)
|
|
56
56
|
puts "\nChoose a highlight in #{cont.name} to see more details.".light_blue.bold
|
|
57
|
-
input = (gets.strip.to_i)
|
|
58
|
-
if input.between?(
|
|
59
|
-
highlight = cont.highlights[input]
|
|
60
|
-
highlight.index = input.to_i
|
|
57
|
+
input = (gets.strip.to_i)
|
|
58
|
+
if input.between?(1,cont.highlights.size)
|
|
59
|
+
highlight = cont.highlights[input-1]
|
|
60
|
+
# highlight.index = input.to_i-1
|
|
61
61
|
highlight.get_highlight_details
|
|
62
62
|
show_highlight_details(highlight)
|
|
63
63
|
else
|
|
64
64
|
puts "Not sure what you mean. You must enter a number between 1 - #{cont.highlights.size}."
|
|
65
|
+
get_user_highlight(cont)
|
|
65
66
|
end
|
|
66
67
|
end
|
|
67
68
|
|
|
68
69
|
def show_highlight_details(highlight)
|
|
69
|
-
puts "
|
|
70
|
-
highlight.info.each {|i| puts "#{i}\n"}
|
|
71
|
-
puts "
|
|
70
|
+
puts "#{highlight.name}".center(170,"-").bold
|
|
71
|
+
highlight.info.each {|i| puts "\n#{i}\n"}
|
|
72
|
+
puts "-".center(170, "-").bold
|
|
72
73
|
end
|
|
73
74
|
|
|
74
75
|
def next_action
|
|
75
76
|
puts "\nType 'exit' to exit or any key to return to main menu.".green.bold
|
|
76
77
|
@input = gets.strip
|
|
78
|
+
system("clear")
|
|
77
79
|
end
|
|
78
80
|
|
|
79
81
|
def goodbye
|
|
@@ -1,56 +1,41 @@
|
|
|
1
1
|
class WorldTraveler::Display
|
|
2
2
|
|
|
3
|
-
# def self.loading
|
|
4
|
-
# puts " Loading "
|
|
5
|
-
# puts " This may gonna take a few seconds... "
|
|
6
|
-
# end
|
|
7
|
-
|
|
8
3
|
def self.welcome_message
|
|
9
4
|
puts "
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
88 88oobY' 88ooo88 Y8 8P 88ooooo 88 88ooooo 88oobY' YP
|
|
21
|
-
88 88`8b 88~~~88 `8b d8' 88~~~~~ 88 88~~~~~ 88`8b
|
|
22
|
-
88 88 `88. 88 88 `8bd8' 88. 88booo. 88. 88 `88. db
|
|
23
|
-
YP 88 YD YP YP YP Y88888P Y88888P Y88888P 88 YD YP
|
|
24
|
-
|
|
25
|
-
".yellow.bold
|
|
26
|
-
|
|
27
|
-
puts " Let's Travel!
|
|
28
|
-
oO0OoO0OoO0OooO0OoO0OoO0OooO0OoO0OoO0OooO0OoO0OoO0OooO0OoO0OoO0OooO0OoO0OoO0Oo".green.bold
|
|
5
|
+
βββ β βββββ .βββ ββΒ· β’ β β Β·. βββ . βββββ βββ β ββ βββ βββ Β·ββββ ββββββββ βββΒ· β βΒ·βββ .βββ βββ .βββ ββ
|
|
6
|
+
ββΒ· ββββββ.βΒ·βββ’ ββ ββͺβͺ Β·ββ βββββͺββ.βΒ· β’ββ βͺ ββΒ· βββββͺ ββ βΒ·βββ’ βββͺ ββ β’ββ ββ βΒ·ββ ββ βͺβΒ·ββββ.βΒ·βββ’ ββ.βΒ·ββ βΒ·βββ
|
|
7
|
+
βββͺβββββββββͺββββͺ ββ ββ ββββ ββ βββββΒ·ββββͺβ ββ.βͺ ββββ βββͺβββββ ββββ ββββ βββͺ ββΒ· βββ ββ.βͺββββ βββββ βββββ’ββββͺββββͺ ββββͺβββββ ββΒ·
|
|
8
|
+
ββββββββββββββββββββββββββ.ββββ βββββββββββ βββΒ·βββ.ββ βββββββββββ.βββββ’βββββββββ. ββ βββΒ·βββ’ββββ βͺββ βββ ββββββββββββββββββ’ββ.β
|
|
9
|
+
ββββ ββͺ βββ .βββ Β·βββ βββββͺββ ββͺβββ βββ βββ βββββͺ ββββ ββͺ βββββͺ.β β.βββ ββββββ’ βββ .β β β β . β βββ .βββ βββ .β β β
|
|
10
|
+
|
|
11
|
+
".white
|
|
12
|
+
|
|
13
|
+
puts " Let's Travel!
|
|
14
|
+
oO0OoO0OoO0OooO0OoO0OoO0OoO0OooO0OoO0OoO0OooO0OoO0OoO0OooO0OoO0OoO0OooO0OoO0OoO0OooO0OoO0OoO0Oo".green.bold
|
|
29
15
|
|
|
30
16
|
end
|
|
31
17
|
|
|
32
18
|
|
|
33
19
|
def self.continent_list
|
|
34
20
|
puts "
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
21
|
+
β¦ β¬βββββ¬β ββββββ βββββββββββ¬ββ¬βββββββββββ¬ββββ
|
|
22
|
+
β ββββ β β βββ€ β β ββββ β ββββββ€ βββ β βββ
|
|
23
|
+
β©βββ΄βββ β΄ ββββ βββββββββ β΄ β΄βββββββββ β΄ βββ ".white
|
|
38
24
|
|
|
39
25
|
end
|
|
40
26
|
|
|
41
27
|
def self.goodbye
|
|
42
28
|
puts "
|
|
43
29
|
|
|
30
|
+
Thanks for using World Traveler!
|
|
44
31
|
|
|
32
|
+
|
|
33
|
+
ββββΒ· β β β βΒ· βΒ· ββ βββΒ· ββ β’ βββ .ββ
|
|
34
|
+
ββ βββͺβͺ β’ββββ βͺβΒ·βββͺ βββͺβββββ ββ ββ β βͺββ.βΒ·βββ
|
|
35
|
+
ββββββ ββββ βββββ βββββ’ ββββ ββββββͺβββββ ββ βββββββͺβββΒ·
|
|
36
|
+
ββββͺβββββ.βββββββ βββ βββ.ββ βββΒ·.ββ βͺββββββͺβββββββ.β
|
|
37
|
+
Β·ββββ βββββͺββ ββͺ . β βββββͺ β β’ β β Β·ββββ βββ β
|
|
45
38
|
|
|
46
|
-
d8888b. .d88b. d8b db db db .d88b. db db .d8b. d888b d88888b db db
|
|
47
|
-
88 `8D .8P Y8. 888o 88 88 88 .8P Y8. `8b d8' d8' `8b 88' Y8b 88' 88 88
|
|
48
|
-
88oooY' 88 88 88V8o 88 Y8 8P 88 88 `8bd8' 88ooo88 88 88ooooo YP YP
|
|
49
|
-
88~~~b. 88 88 88 V8o88 `8b d8' 88 88 88 88~~~88 88 ooo 88~~~~~
|
|
50
|
-
88 8D `8b d8' 88 V888 `8bd8' `8b d8' 88 88 88 88. ~8~ 88. db db
|
|
51
|
-
Y8888P' `Y88P' VP V8P YP `Y88P' YP YP YP Y888P Y88888P YP YP
|
|
52
|
-
|
|
53
|
-
|
|
54
39
|
|
|
55
40
|
|
|
|
56
41
|
|
|
|
@@ -61,9 +46,7 @@ class WorldTraveler::Display
|
|
|
61
46
|
''''''-|---|--/ \==][^',_m_,'^][==/ \--|---|-''''''
|
|
62
47
|
\ / ||/ H \|| \ /
|
|
63
48
|
'--' OO O|O OO '--'
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
".yellow
|
|
49
|
+
".white
|
|
67
50
|
end
|
|
68
51
|
|
|
69
52
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
class WorldTraveler::Highlights
|
|
2
|
-
attr_accessor :name, :continent, :link, :info
|
|
2
|
+
attr_accessor :name, :continent, :link, :info#, :index
|
|
3
3
|
@@all = []
|
|
4
4
|
|
|
5
5
|
def initialize(name, continent, link)
|
|
@@ -7,7 +7,6 @@ class WorldTraveler::Highlights
|
|
|
7
7
|
@continent = continent
|
|
8
8
|
@link = link
|
|
9
9
|
@info = []
|
|
10
|
-
# # notify month about the event
|
|
11
10
|
add_to_continent
|
|
12
11
|
save
|
|
13
12
|
end
|
|
@@ -18,24 +18,25 @@ class WorldTraveler::Scraper
|
|
|
18
18
|
highlight = doc.css("ol.jsx-742652205 li.jsx-742652205")
|
|
19
19
|
highlight.each do |h|
|
|
20
20
|
title = h.css("/a/span/span[2]/text()").text.strip
|
|
21
|
-
link = "https://www.lonelyplanet.com/" + h.
|
|
21
|
+
link = "https://www.lonelyplanet.com/" + h.css("a").attribute("href").value
|
|
22
22
|
WorldTraveler::Highlights.new(title, continent, link)
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
def self.scrape_info(highlight)
|
|
28
|
-
doc = Nokogiri::HTML(open(highlight.link))
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
more =
|
|
36
|
-
more.each
|
|
28
|
+
doc = Nokogiri::HTML(open(highlight.link)) #if highlight has own page
|
|
29
|
+
more = doc.css("div.jsx-2897242284 p")
|
|
30
|
+
more.each {|a| highlight.info << "#{a.text} \n"}
|
|
31
|
+
|
|
32
|
+
if highlight.info.empty? #if highlight on the same page as other highlights
|
|
33
|
+
url = "https://www.lonelyplanet.com" +doc.css("div.jsx-3600140326 p a")[highlight.continent.highlights.index(highlight)].attribute("href").value
|
|
34
|
+
detail = Nokogiri::HTML(open(url))
|
|
35
|
+
more = detail.css("div p")[0...-2]
|
|
36
|
+
more.each{|paragraph| highlight.info << "#{paragraph.text.strip}"}
|
|
37
37
|
end
|
|
38
|
-
|
|
38
|
+
|
|
39
|
+
end
|
|
39
40
|
|
|
40
41
|
end
|
|
41
42
|
|
data/world_traveler.gemspec
CHANGED
|
@@ -9,10 +9,20 @@ Gem::Specification.new do |spec|
|
|
|
9
9
|
spec.summary = %q{This Ruby gem provides a CLI to view top destinations around the world}
|
|
10
10
|
spec.homepage = "https://github.com/habeshawit/world_traveler"
|
|
11
11
|
spec.license = "MIT"
|
|
12
|
+
#spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
|
12
13
|
|
|
14
|
+
#spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
|
15
|
+
|
|
16
|
+
# spec.metadata["homepage_uri"] = spec.homepage
|
|
17
|
+
# spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
|
|
18
|
+
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
|
19
|
+
|
|
20
|
+
# Specify which files should be added to the gem when it is released.
|
|
21
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
13
22
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
14
23
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
15
24
|
end
|
|
25
|
+
|
|
16
26
|
spec.bindir = "exe"
|
|
17
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
18
28
|
spec.require_paths = ["lib"]
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: world_traveler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shalom Kebede
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-09-
|
|
11
|
+
date: 2020-09-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|