sd_events 0.1.2

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 57b9117def84fd8483551fd7e54c2a4457bde8954ed8cc830feb28e0e1f7adfe
4
+ data.tar.gz: 2f1b08b220b9c15e512dd4857b366d3b6d71dad322929b13f9757e7d32cd750d
5
+ SHA512:
6
+ metadata.gz: 20e37f096b8f2d5728d2a01ccf9716c17408801e1af868b3e8ae5cdb1d2cbabecafb2ef994a20bf940befb5873616a588b1d3d7b05dede695cbd0f6101c5ebbc
7
+ data.tar.gz: '01846653fdf1dcddb37e5bb5283853163ec3797152ec9813707f4044328a50efda049dbca87fbe1f3c4bceb797ddce96ee504916242e4af0fee813a3a0d673cd'
data/bin/sd-events ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require_relative "../lib/sd_events"
5
+
6
+ SdEvents::CLI.new.call
@@ -0,0 +1,109 @@
1
+ class SdEvents::CLI
2
+
3
+ def call
4
+ start
5
+ end
6
+
7
+ def start
8
+ puts ""
9
+ puts "******* Events Happening Now in San Diego *******"
10
+ puts ""
11
+ list_menu
12
+ end
13
+
14
+ def list_menu
15
+
16
+ puts "Hello, the time is now #{Time.now}."
17
+ puts "Please select which events you would like to see or type 'exit'"
18
+ puts ""
19
+ puts "1. Morning Events"
20
+ puts "2. Afternoon Events"
21
+ puts "3. Evening Events"
22
+ puts "4. Late Night Events"
23
+ puts ""
24
+
25
+ input = gets.strip.downcase
26
+
27
+ if input == "1"
28
+ SdEvents::Events.create_morning_events
29
+ display_events
30
+ event_menu
31
+
32
+ elsif input == "2"
33
+ SdEvents::Events.create_afternoon_events
34
+ display_events
35
+ event_menu
36
+
37
+ elsif input == "3"
38
+ SdEvents::Events.create_evening_events
39
+ display_events
40
+ event_menu
41
+
42
+ elsif input == "4"
43
+ SdEvents::Events.create_night_events
44
+ display_events
45
+ event_menu
46
+
47
+ elsif input == "exit"
48
+ goodbye
49
+
50
+ else
51
+ puts "Not sure what you're asking, here is the menu again:"
52
+ list_menu
53
+ end
54
+
55
+ end
56
+
57
+ def display_events
58
+ SdEvents::Events.all.each.with_index(1) do |event, i|
59
+ puts "#{i}."
60
+ puts "Event: #{event.name.upcase}"
61
+ puts "Venue: #{event.venue}"
62
+ puts "Time: #{event.time}"
63
+ puts ""
64
+ end
65
+ end
66
+
67
+ def event_menu
68
+ puts ""
69
+ puts "To see more info about an event, please select the number of the event:"
70
+ input = gets.downcase.to_i-1
71
+ SdEvents::Events.find(input)
72
+ puts ""
73
+ puts "Event: #{SdEvents::Events.all[input].name}"
74
+ puts "City: #{SdEvents::Events.all[input].city}"
75
+ puts "Category: #{SdEvents::Events.all[input].category}"
76
+ puts ""
77
+ puts "To see the menu again, type 'menu' or to exit type 'exit':"
78
+ SdEvents::Events.all.clear
79
+ new_input = gets.downcase.strip
80
+ if new_input == "menu"
81
+ list_menu
82
+ elsif new_input == "exit"
83
+ goodbye
84
+ end
85
+ end
86
+
87
+ def self.no_events
88
+ puts ""
89
+ puts "Uh oh, looks like there are no events for that time..."
90
+ puts "Please return tomorrow for more events."
91
+ puts ""
92
+ puts "To see the menu again, type 'menu' or type 'exit':"
93
+ input = gets.downcase.strip
94
+ if input == "menu"
95
+ self.new.list_menu
96
+ elsif input == "exit"
97
+ self.new.goodbye
98
+ else
99
+ "Not sure what you're asking, here is the menu again:"
100
+ self.new.list_menu
101
+ end
102
+ end
103
+
104
+ def goodbye
105
+ puts "Thanks for visiting SD Events!"
106
+ exit
107
+ end
108
+
109
+ end
@@ -0,0 +1,49 @@
1
+ class SdEvents::Events
2
+ attr_accessor :name, :venue, :city, :area, :category, :time
3
+ @@all = []
4
+
5
+ def initialize
6
+ @@all << self
7
+ end
8
+
9
+ def self.all
10
+ @@all
11
+ end
12
+
13
+ def self.clear
14
+ @@all.clear
15
+ end
16
+
17
+ def self.find(id)
18
+ self.all[id-1]
19
+ end
20
+
21
+ def self.create_morning_events
22
+ SdEvents::Scraper.scrape_morning
23
+ if @@all.empty?
24
+ SdEvents::CLI.no_events
25
+ end
26
+ end
27
+
28
+ def self.create_afternoon_events
29
+ SdEvents::Scraper.scrape_afternoon
30
+ if @@all.empty?
31
+ SdEvents::CLI.no_events
32
+ end
33
+ end
34
+
35
+ def self.create_evening_events
36
+ SdEvents::Scraper.scrape_evening
37
+ if @@all.empty?
38
+ SdEvents::CLI.no_events
39
+ end
40
+ end
41
+
42
+ def self.create_night_events
43
+ SdEvents::Scraper.scrape_night
44
+ if @@all.empty?
45
+ SdEvents::CLI.no_events
46
+ end
47
+ end
48
+
49
+ end
@@ -0,0 +1,60 @@
1
+ class SdEvents::Scraper
2
+
3
+ def self.scrape
4
+ @@doc = Nokogiri::HTML(open("https://www.sandiegoreader.com/events/#"))
5
+ end
6
+
7
+ def self.scrape_morning
8
+ self.scrape.css("div#body div#content.content div.daypart_morning .event_list").each do |event|
9
+ event.css("tr").collect do |attribute|
10
+ new_event = SdEvents::Events.new
11
+ new_event.name = attribute.css(".title").css("h4").text.strip
12
+ new_event.venue = attribute.css(".title").css("h5").text.strip
13
+ new_event.time = attribute.css("td.time").text.strip
14
+ new_event.city = attribute.css("td.city").text.strip
15
+ new_event.category = attribute.css("td.category").text.strip
16
+ end
17
+ end
18
+ end
19
+
20
+ def self.scrape_afternoon
21
+ self.scrape.css("div#body div#content.content div.daypart_afternoon .event_list").each do |event|
22
+ event.css("tr").collect do |attribute|
23
+ new_event = SdEvents::Events.new
24
+ new_event.name = attribute.css(".title").css("h4").text.strip
25
+ new_event.venue = attribute.css(".title").css("h5").text.strip
26
+ new_event.time = attribute.css("td.time").text.strip
27
+ new_event.city = attribute.css("td.city").text.strip
28
+ new_event.category = attribute.css("td.category").text.strip
29
+ end
30
+ end
31
+ end
32
+
33
+ def self.scrape_evening
34
+ self.scrape.css("div#body div#content.content div.daypart_evening .event_list").each do |event|
35
+ event.css("tr").collect do |attribute|
36
+ new_event = SdEvents::Events.new
37
+ new_event.name = attribute.css(".title").css("h4").text.strip
38
+ new_event.venue = attribute.css(".title").css("h5").text.strip
39
+ new_event.time = attribute.css("td.time").text.strip
40
+ new_event.city = attribute.css("td.city").text.strip
41
+ new_event.category = attribute.css("td.category").text.strip
42
+ end
43
+ end
44
+ end
45
+
46
+ def self.scrape_night
47
+ self.scrape.css("div#body div#content.content div.daypart_night .event_list").each do |event|
48
+ event.css("tr").collect do |attribute|
49
+ new_event = SdEvents::Events.new
50
+ new_event.name = attribute.css(".title").css("h4").text.strip
51
+ new_event.venue = attribute.css(".title").css("h5").text.strip
52
+ new_event.time = attribute.css("td.time").text.strip
53
+ new_event.city = attribute.css("td.city").text.strip
54
+ new_event.category = attribute.css("td.category").text.strip
55
+ end
56
+ end
57
+ end
58
+
59
+
60
+ end
@@ -0,0 +1,3 @@
1
+ module SdEvents
2
+ VERSION = "0.1.2"
3
+ end
data/lib/sd_events.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'open-uri'
2
+ require 'pry'
3
+ require 'nokogiri'
4
+
5
+ require_relative './sd_events/version'
6
+ require_relative './sd_events/cli'
7
+ require_relative './sd_events/events'
8
+ require_relative './sd_events/scraper'
9
+
10
+
11
+ module SdEvents
12
+ # Your code goes here...
13
+ end
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sd_events
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Kayla Hansen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-11-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: nokogiri
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description:
84
+ email: shiverr@gmail.com
85
+ executables:
86
+ - sd-events
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - bin/sd-events
91
+ - lib/sd_events.rb
92
+ - lib/sd_events/cli.rb
93
+ - lib/sd_events/events.rb
94
+ - lib/sd_events/scraper.rb
95
+ - lib/sd_events/version.rb
96
+ homepage: https://github.com/americanmouths/sdevents-cli-app
97
+ licenses:
98
+ - MIT
99
+ metadata: {}
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ requirements: []
115
+ rubyforge_project:
116
+ rubygems_version: 2.7.2
117
+ signing_key:
118
+ specification_version: 4
119
+ summary: Listing of events happening in San Diego today
120
+ test_files: []