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
|