trendster 1.0.7 → 1.0.8
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.lock +1 -1
- data/lib/trendster.rb +4 -8
- data/lib/trendster/cli.rb +15 -11
- data/lib/trendster/event.rb +2 -1
- data/lib/trendster/scraper.rb +21 -32
- data/lib/trendster/version.rb +1 -1
- data/{trendster-1.0.6.gem → pkg/trendster-1.0.7.gem} +0 -0
- data/trendster.gemspec +2 -2
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a40c3649bcdeb0875c82cdb3455a483fa2aab1f5
|
|
4
|
+
data.tar.gz: fc0b64e2da71c8204e90333d8f12a8d0a0444bf0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ee4c569f55d0db2b884cdb1f7ddc80723cb5668e2f2758a0326b0b4906dd9444f66c67311d9c93b974a2cacce7d58af0c27bde3b7b7d11f8e3f90bada90edddf
|
|
7
|
+
data.tar.gz: d626b0071e63bacbd9a4ba3723d15eaf42edd55dcce7323fc33cce934333ead79a512205a9b9cbc88b79fe0ba36bd17eb08baba056421c7d1f87a4ce086668a4
|
data/Gemfile.lock
CHANGED
data/lib/trendster.rb
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
require 'open-uri'
|
|
2
2
|
require 'nokogiri'
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
module Trendster
|
|
10
|
-
|
|
11
|
-
end
|
|
4
|
+
require_relative "trendster/version"
|
|
5
|
+
require_relative "trendster/scraper"
|
|
6
|
+
require_relative "trendster/event"
|
|
7
|
+
require_relative "trendster/cli"
|
data/lib/trendster/cli.rb
CHANGED
|
@@ -18,24 +18,27 @@ class Trendster::CLI
|
|
|
18
18
|
|
|
19
19
|
def list_events
|
|
20
20
|
puts "Here are the most recent events at the Cuyahoga County Public Library:"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
all_events = Trendster::Event.all
|
|
22
|
+
all_events.each do |event|
|
|
23
|
+
puts "#{all_events.index(event) + 1}. #{event.name}"
|
|
24
|
+
end
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def menu
|
|
28
28
|
input = nil
|
|
29
|
+
|
|
29
30
|
while input != "exit"
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
|
|
32
|
+
puts "Enter the number of the event you'd like more info on, 'list' to see the events again, or type 'exit'."
|
|
33
|
+
input = gets.strip
|
|
32
34
|
|
|
33
35
|
if input.to_i > 0 && Trendster::Event.all[input.to_i - 1] != nil
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
selected_event = Trendster::Event.all[input.to_i - 1]
|
|
37
|
+
puts selected_event.name
|
|
38
|
+
puts selected_event.description
|
|
39
|
+
puts selected_event.date
|
|
40
|
+
puts "Location: #{selected_event.location}"
|
|
41
|
+
puts "Audience: #{selected_event.audience}"
|
|
39
42
|
elsif input == "list"
|
|
40
43
|
list_events
|
|
41
44
|
elsif input == "exit"
|
|
@@ -43,6 +46,7 @@ class Trendster::CLI
|
|
|
43
46
|
else
|
|
44
47
|
puts "Please enter a valid number, 'list' or 'exit'"
|
|
45
48
|
end
|
|
49
|
+
|
|
46
50
|
end
|
|
47
51
|
end
|
|
48
52
|
|
data/lib/trendster/event.rb
CHANGED
|
@@ -2,7 +2,7 @@ class Trendster::Event
|
|
|
2
2
|
|
|
3
3
|
attr_accessor :name, :description, :date, :location, :audience
|
|
4
4
|
|
|
5
|
-
@@all = []
|
|
5
|
+
@@all = []
|
|
6
6
|
|
|
7
7
|
@events_array = Trendster::Scraper.scrape_library_page
|
|
8
8
|
|
|
@@ -16,6 +16,7 @@ class Trendster::Event
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def self.create_from_collection(events_array)
|
|
19
|
+
|
|
19
20
|
events_array.each do |event_hash|
|
|
20
21
|
self.new(event_hash)
|
|
21
22
|
end
|
data/lib/trendster/scraper.rb
CHANGED
|
@@ -1,40 +1,29 @@
|
|
|
1
|
-
|
|
2
1
|
class Trendster::Scraper
|
|
3
2
|
|
|
4
|
-
@@all = []
|
|
3
|
+
@@all = []
|
|
5
4
|
|
|
6
|
-
attr_accessor :name, :description, :date, :location, :audience
|
|
5
|
+
attr_accessor :name, :description, :date, :location, :audience
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
def self.all
|
|
8
|
+
@@all
|
|
9
|
+
end
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
url_endings = []
|
|
14
|
-
index_url = "http://cuyahogalibrary.org/Events/Event-Results.aspx"
|
|
15
|
-
index_doc = Nokogiri::HTML(open(index_url))
|
|
16
|
-
index_doc.css("article.sixcol").each do |event|
|
|
17
|
-
url_endings << event.css("a")[0]['href']
|
|
18
|
-
end
|
|
19
|
-
event_urls = []
|
|
20
|
-
url_endings.each do |url_ending|
|
|
21
|
-
event_urls << "http://cuyahogalibrary.org" + url_ending
|
|
22
|
-
end
|
|
23
|
-
event_doc_array = []
|
|
24
|
-
event_urls.each do |event_url|
|
|
25
|
-
event_doc = Nokogiri::HTML(open(event_url))
|
|
26
|
-
event_doc_array << event_doc
|
|
27
|
-
end
|
|
11
|
+
def self.scrape_library_page
|
|
28
12
|
all_array = []
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
13
|
+
index_url = "http://cuyahogalibrary.org/Events/Event-Results.aspx"
|
|
14
|
+
index_doc = Nokogiri::HTML(open(index_url))
|
|
15
|
+
index_doc.css("article.sixcol").each do |event|
|
|
16
|
+
event_url = "http://cuyahogalibrary.org" + event.css("a")[0]['href']
|
|
17
|
+
event_doc = Nokogiri::HTML(open(event_url))
|
|
18
|
+
all_array << {
|
|
19
|
+
name: event_doc.css("h3").text,
|
|
20
|
+
description: event_doc.css("p.one-large-content").text || "",
|
|
21
|
+
date: event_doc.css("strong").text,
|
|
22
|
+
location: event_doc.css("p").css("a").text,
|
|
23
|
+
audience: event_doc.css("p").text.match("Adults") || event_doc.css("p").text.match("Children") || event_doc.css("p").text.match("Families") || event_doc.css("p").text.match("Teens") || event_doc.css("p").text.match("All") || event_doc.css("p").text.match("Preschool")
|
|
24
|
+
}
|
|
25
|
+
end
|
|
26
|
+
all_array
|
|
37
27
|
end
|
|
38
|
-
|
|
39
|
-
end
|
|
28
|
+
|
|
40
29
|
end
|
data/lib/trendster/version.rb
CHANGED
|
Binary file
|
data/trendster.gemspec
CHANGED
|
@@ -7,11 +7,11 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.name = "trendster"
|
|
8
8
|
spec.date = '2016-06-07'
|
|
9
9
|
spec.version = Trendster::VERSION
|
|
10
|
-
spec.authors = ["Jason"]
|
|
10
|
+
spec.authors = ["Jason Kwong"]
|
|
11
11
|
spec.email = ["jasonkwong11@gmail.com"]
|
|
12
12
|
|
|
13
13
|
spec.summary = "CLI interface to Cuyahoga County Public Library events."
|
|
14
|
-
spec.description = "Provides details
|
|
14
|
+
spec.description = "Provides details of upcoming events at library with CLI interface."
|
|
15
15
|
spec.homepage = "https://github.com/jasonkwong11/trendster-cli-gem"
|
|
16
16
|
spec.license = "MIT"
|
|
17
17
|
|
metadata
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: trendster
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
- Jason
|
|
7
|
+
- Jason Kwong
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
@@ -52,7 +52,7 @@ dependencies:
|
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0'
|
|
55
|
-
description: Provides details
|
|
55
|
+
description: Provides details of upcoming events at library with CLI interface.
|
|
56
56
|
email:
|
|
57
57
|
- jasonkwong11@gmail.com
|
|
58
58
|
executables:
|
|
@@ -75,7 +75,7 @@ files:
|
|
|
75
75
|
- lib/trendster/event.rb
|
|
76
76
|
- lib/trendster/scraper.rb
|
|
77
77
|
- lib/trendster/version.rb
|
|
78
|
-
- trendster-1.0.
|
|
78
|
+
- pkg/trendster-1.0.7.gem
|
|
79
79
|
- trendster.gemspec
|
|
80
80
|
homepage: https://github.com/jasonkwong11/trendster-cli-gem
|
|
81
81
|
licenses:
|
|
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
97
97
|
version: '0'
|
|
98
98
|
requirements: []
|
|
99
99
|
rubyforge_project:
|
|
100
|
-
rubygems_version: 2.6.
|
|
100
|
+
rubygems_version: 2.6.7
|
|
101
101
|
signing_key:
|
|
102
102
|
specification_version: 4
|
|
103
103
|
summary: CLI interface to Cuyahoga County Public Library events.
|