top-headlines 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/top-headlines/cli.rb +39 -9
- data/lib/top-headlines/source.rb +1 -1
- data/lib/top-headlines/version.rb +1 -1
- data/top-headlines.gemspec +1 -1
- metadata +5 -7
- data/top-headlines-0.1.0.gem +0 -0
- data/top-headlines-0.1.1.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19cfb1ab3fbb5072c0a8cf152e586320e54503f2
|
4
|
+
data.tar.gz: ae26dc172f3c7f1be00eac01fa8f3655fe8a3246
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ebad380cbe2c270e1ab0deecd65b2acaa3981b97bde7df59f52bc4c17c6c252b267356d57f7ad2c34bf1cc1e9db88f108dedd5c29e1fcfe4975ac48a349f779
|
7
|
+
data.tar.gz: 66ddef15c291fa00fd5b1a5c59f1c59c9769bffd3a2873c90e481b2d6de392284baa2804b7ec3b9971ecd03b742d99073b198f75a2f4444b8f91254f547f3a74
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# TopHeadlines
|
2
2
|
|
3
|
-
This gem allows users to view the top headlines from major news sources. Users can open the headlines in the browser directly from the command line. Functionality includes: AP, BBC, Bloomberg, CNN,
|
3
|
+
This gem allows users to view the top headlines from major news sources. Users can open the headlines in the browser directly from the command line. Functionality includes: AP, BBC, Bloomberg, CNN, Daily Beast, FiveThirtyEight, Forbes, Fox News, Guardian, Huffington Post, MSNBC, New York Times, Politico, Wall Street Journal, Washington Post, and Yahoo News.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
data/lib/top-headlines/cli.rb
CHANGED
@@ -13,6 +13,11 @@ class TopHeadlines::CLI
|
|
13
13
|
@input = nil
|
14
14
|
while @input != "EXIT" && @num != "EXIT"
|
15
15
|
@input = gets.strip.upcase
|
16
|
+
menu_if_statement
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def menu_if_statement
|
16
21
|
if @input == "ALL"
|
17
22
|
list_all_headlines_banner
|
18
23
|
list_all_headlines
|
@@ -24,7 +29,7 @@ class TopHeadlines::CLI
|
|
24
29
|
news_sources
|
25
30
|
puts request_input_full_menu
|
26
31
|
print "YOUR SELECTION: "
|
27
|
-
elsif
|
32
|
+
elsif source_includes?(@input)
|
28
33
|
list_headlines_from_source
|
29
34
|
open_headline_in_browser
|
30
35
|
elsif @input != "EXIT"
|
@@ -32,7 +37,6 @@ class TopHeadlines::CLI
|
|
32
37
|
else
|
33
38
|
nil
|
34
39
|
end
|
35
|
-
end
|
36
40
|
end
|
37
41
|
|
38
42
|
def welcome_banner
|
@@ -69,6 +73,10 @@ class TopHeadlines::CLI
|
|
69
73
|
"Select a source, type 'sources' to view sources, type 'all' to view all headlines, or type 'exit' to exit."
|
70
74
|
end
|
71
75
|
|
76
|
+
def source_includes?(input)
|
77
|
+
TopHeadlines::Source.all.keys.include?(input)
|
78
|
+
end
|
79
|
+
|
72
80
|
def news_sources_banner
|
73
81
|
puts "\n"
|
74
82
|
puts "NEWS SOURCES"
|
@@ -84,10 +92,25 @@ class TopHeadlines::CLI
|
|
84
92
|
end
|
85
93
|
|
86
94
|
def open_headline_in_browser
|
87
|
-
puts "Select headline number to open the full article in the browser."
|
88
|
-
print "
|
95
|
+
puts "Select headline number to open the full article in the browser. \n\nAlternatively, #{request_input_full_menu.downcase}"
|
96
|
+
print "\nYOUR SELECTION: "
|
89
97
|
@num = gets.strip.upcase
|
90
|
-
while @num.to_i.between?(1,5)
|
98
|
+
while @num.to_i.between?(1,5) && !num_included_in_menu_if_statements
|
99
|
+
# if @input == "ALL"
|
100
|
+
# @input == TopHeadlines::Source.all.keys[@num/3]
|
101
|
+
# headline = TopHeadlines::Source.scrape_headlines(@input)[@num.to_i-1]
|
102
|
+
# puts "=> Opening..."
|
103
|
+
|
104
|
+
# sleep(2)
|
105
|
+
# url = TopHeadlines::Source.scrape_urls(@input)[@num.to_i-1]
|
106
|
+
# system("open", url)
|
107
|
+
|
108
|
+
# sleep(1)
|
109
|
+
# puts "\nSelect another headline number to open full article in the browser."
|
110
|
+
# print "YOUR SELECTION: "
|
111
|
+
# @num = gets.strip.upcase
|
112
|
+
# @input = @num if @num == "EXIT"
|
113
|
+
# else
|
91
114
|
headline = TopHeadlines::Source.scrape_headlines(@input)[@num.to_i-1]
|
92
115
|
puts "\n=> You selected the #{@num.to_i.ordinalize} headline: '#{headline}'."
|
93
116
|
puts "=> Opening..."
|
@@ -97,12 +120,19 @@ class TopHeadlines::CLI
|
|
97
120
|
system("open", url)
|
98
121
|
|
99
122
|
sleep(1)
|
100
|
-
puts "\nSelect another headline number to open full article in the browser."
|
101
|
-
print "
|
123
|
+
puts "\nSelect another headline number to open full article in the browser. \n\nAlternatively, #{request_input_full_menu.downcase}"
|
124
|
+
print "\nYOUR SELECTION: "
|
102
125
|
@num = gets.strip.upcase
|
103
|
-
@input = @num if
|
126
|
+
@input = @num if num_included_in_menu_if_statements
|
127
|
+
# end
|
104
128
|
end
|
105
|
-
invalid_entry unless
|
129
|
+
invalid_entry unless num_included_in_menu_if_statements
|
130
|
+
@input = @num if num_included_in_menu_if_statements
|
131
|
+
menu_if_statement
|
132
|
+
end
|
133
|
+
|
134
|
+
def num_included_in_menu_if_statements
|
135
|
+
@num == "EXIT" || @num == "ALL" || @num == "SOURCES" || source_includes?(@num)
|
106
136
|
end
|
107
137
|
|
108
138
|
def invalid_entry
|
data/lib/top-headlines/source.rb
CHANGED
@@ -147,7 +147,7 @@ class TopHeadlines::Source
|
|
147
147
|
child_selector = source[:child_selector]
|
148
148
|
|
149
149
|
doc = Nokogiri::HTML(open(page_url))
|
150
|
-
page_url = page_url[0...-5] if page_url[-4...-1]+page_url[-1] == "news" ### BBC
|
150
|
+
page_url = page_url[0...-5] if page_url[-4...-1]+page_url[-1] == "news" ### EDGE CASES (BBC & YAHOO)
|
151
151
|
urls = doc.css(urls_selector).children.css(child_selector).map {|url| url.attribute('href').value[0] == 'h' ? url.attribute('href').value : page_url + url.attribute('href').value}
|
152
152
|
end
|
153
153
|
end
|
data/top-headlines.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["zachnewburgh"]
|
10
10
|
spec.email = ["zach.newburgh@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{This gem allows users to view the top headlines from major news sources. Users can open the headlines in the browser directly from the command line for articles from AP, BBC, Bloomberg, CNN,
|
12
|
+
spec.summary = %q{This gem allows users to view the top headlines from major news sources. Users can open the headlines in the browser directly from the command line for articles from AP, BBC, Bloomberg, CNN, Daily Beast, FiveThirtyEight, Forbes, Fox News, Guardian, Huffington Post, MSNBC, New York Times, Politico, Wall Street Journal, Washington Post, and Yahoo News.}
|
13
13
|
spec.homepage = "https://github.com/zachnewburgh/top-headlines-cli-gem"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: top-headlines
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zachnewburgh
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -103,8 +103,6 @@ files:
|
|
103
103
|
- lib/top-headlines/cli.rb
|
104
104
|
- lib/top-headlines/source.rb
|
105
105
|
- lib/top-headlines/version.rb
|
106
|
-
- top-headlines-0.1.0.gem
|
107
|
-
- top-headlines-0.1.1.gem
|
108
106
|
- top-headlines.gemspec
|
109
107
|
homepage: https://github.com/zachnewburgh/top-headlines-cli-gem
|
110
108
|
licenses:
|
@@ -132,7 +130,7 @@ signing_key:
|
|
132
130
|
specification_version: 4
|
133
131
|
summary: This gem allows users to view the top headlines from major news sources.
|
134
132
|
Users can open the headlines in the browser directly from the command line for articles
|
135
|
-
from AP, BBC, Bloomberg, CNN,
|
136
|
-
|
137
|
-
|
133
|
+
from AP, BBC, Bloomberg, CNN, Daily Beast, FiveThirtyEight, Forbes, Fox News, Guardian,
|
134
|
+
Huffington Post, MSNBC, New York Times, Politico, Wall Street Journal, Washington
|
135
|
+
Post, and Yahoo News.
|
138
136
|
test_files: []
|
data/top-headlines-0.1.0.gem
DELETED
Binary file
|
data/top-headlines-0.1.1.gem
DELETED
Binary file
|