surf_rockaway 0.1.0 → 1.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c9eb8bf9bcf9d8e206a2c1038d37b9bf6d7b2dcd264f14602275dd108b8cb236
4
- data.tar.gz: 51ed24eab166dc88c7cf9b7379a6ca743f0dfdecffecbe5ac4f70d992ea1b5e6
3
+ metadata.gz: e05d4d6a5c2d8ae3e0cd13f5cc6cf14bab81c59bedf1001e1be4bccefeedf4a8
4
+ data.tar.gz: 10a47bf16925070c89477aeca35a53dc175bff4dc1792afa7bacfcc84d3b48d1
5
5
  SHA512:
6
- metadata.gz: 4b1b3909933faf464e7c5c110a7dcae32aa02ab73d15ef5d79e8864354ec6ea723c1dc056fe5795b2150b1f9fb5d01dccf1e1fb06d8f6657a75e236c8b67e5bc
7
- data.tar.gz: 770dc6e1b2d6005d20d6b6af7e300862be8ca47afaa36870a82fb923ca4f82f2ad01236e35885da12bd7842c92f750309cc8fea77f07c9e4fa8099cd291f686a
6
+ metadata.gz: 50ac370c78a75b6a9e1b62c1d0ad568edcf46113e3466802defa5adcea09bb8b8adeed7de86225d4537528ca0c70ce1dd10a1d84172457cbe46905a546dc3713
7
+ data.tar.gz: b24d27a49234a76b8bb6d2b100b1ac54210ee738bcbcd3754bd50e32044c8d3f6c535842e395875e462bb603980b58bf29473b671ac38a8fd32644a4a92df3f6
@@ -0,0 +1 @@
1
+
data/README.md CHANGED
@@ -10,12 +10,12 @@ $ gem install surf-rockaway
10
10
 
11
11
  ## Detailed Description
12
12
 
13
- A Florida native for most of my life, moving to NYC over the summer left me longing for the beach. I soon discovered Rockaway Beach is the closest surf spot to the city. (bonus you can take the water ferry!) All too often, I found myself lost in a terminal screen ... searching for an excuse to hit the beach for a few hours. So, I created surf-rockaway. This gem provides a quick way to check the current surf condtions without ever leaving the terminal.
13
+ A Florida native, moving to NYC over the summer left me longing for the beach. I soon discovered Rockaway Beach is the closest surf spot to the city. (bonus you can take the water ferry!) All too often, I found myself lost in a terminal screen ... searching for an excuse to hit the beach for a few hours. So, I created surf-rockaway. This gem provides a quick way to check the current surf condtions without ever leaving the terminal.
14
14
 
15
15
  ## Data Provided
16
16
 
17
- --- current forcast
18
- --- 3-day surf condtions
17
+ --- current forecast
18
+ --- 3-day surf conditions
19
19
  --- (in development) Set notification based on wave size
20
20
 
21
21
  ## Development
@@ -7,4 +7,5 @@ require "tty-table"
7
7
 
8
8
  require_relative "./surf_data/version"
9
9
  require_relative './surf_data/cli'
10
- require_relative './surf_data/surf_report.rb'
10
+ require_relative './surf_data/surf_report'
11
+ require_relative './surf_data/search'
@@ -22,6 +22,7 @@ class SurfRockaway::CLI
22
22
  input = prompt.select('Please select an options below:') do |menu|
23
23
  menu.choice 'Current conditions', 'Current'
24
24
  menu.choice '3 day forecast', '3 day'
25
+ menu.choice 'Seach by wave size', 'Search'
25
26
  menu.choice 'Set notification', 'Set notification', disabled: '(in development)'
26
27
  menu.choice 'Exit the program', 'Exit'
27
28
  end
@@ -34,10 +35,39 @@ class SurfRockaway::CLI
34
35
  puts ""
35
36
  SurfRockaway::SurfReport.multi_day
36
37
  puts ""
38
+ elsif input == "Search"
39
+ puts "---------------------------------------------------------"
40
+ puts ""
41
+ options = SurfRockaway::Search.wave_options
42
+ options.each.with_index(1) do |wave, i|
43
+ puts " #{i}. #{wave}".green
44
+ end
45
+ #options returns an array of unique wave sizes
46
+ puts ""
47
+ puts "---------------------------------------------------------"
48
+ puts " Enter the number associated with the desired wave size: "
49
+ puts "---------------------------------------------------------"
50
+ # request input, set value to a variable called #input
51
+ input = gets.chomp.to_i
52
+ # set variable called #selection
53
+ selection = options[input-1]
54
+ puts ""
55
+ puts ""
56
+ puts ""
57
+ # accepts #selection variable as an argument for #search_by_size ... in #Search class. Prints results.
58
+ input_size = SurfRockaway::Search.search_by_size(selection)
59
+ return_values = input_size.collect {|day| day.values}.to_a
60
+ puts ""
61
+ puts "== WAVES @ #{selection.green} ============"
62
+ puts ""
63
+ puts return_values
64
+ puts ""
65
+ puts "-------------------------"
66
+ puts ""
37
67
  else input == "Exit"
38
68
  puts ""
39
69
  puts ""
40
- puts "__̴ı̴̴̡̡̡ ̡͌l̡̡̡ ̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡| ̲▫̲͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ ̡͌l̡̡̡̡.___ ... See you soon! "
70
+ puts "__̴ı̴̴̡̡̡ ̡͌l̡̡̡ ̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡| ̲▫̲͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ ̡͌l̡̡̡̡.___ ... Thanks! See you soon! "
41
71
  puts ""
42
72
  exit
43
73
  end
@@ -0,0 +1,125 @@
1
+
2
+ ###############################################################################
3
+
4
+ #### DONE ####
5
+
6
+ # waves => array of unique wave sizes for the next 3 days
7
+ # hash with wave/date/time for the next 3-day
8
+ # display waves array as CLI options
9
+ # accept user input for wave size
10
+ # search hash for days/times when waves will be at the desired height
11
+ # return results on CLI
12
+ # fix return formatting for #return_values
13
+ # link values for #search_wave_size
14
+
15
+ #### TODO ####
16
+
17
+ # refactor code for clarity
18
+
19
+ # As discussed, I buit out functionality to search for a specific wave size.
20
+ #
21
+ # 1. select input from a index of avaliable wave sizes
22
+ # 2. use input to query dates, times, and wave sizes from 3 day forecast
23
+ # 3. return date && time when wave size == input
24
+ #
25
+ # The way I collected/returned data, using the TTY-Prompt gem, proved challenging to work with. To save time
26
+ # and move forward ... I built a nested hash, broken down by day, in #Search.
27
+ # The #Search class below takes an input in the form of a wave size. The wave size then iterates over the
28
+ # nested hash, #search_by_size, to locate a day/time where wave size == input.
29
+
30
+ ###############################################################################
31
+
32
+ class SurfRockaway::Search
33
+
34
+ @doc = Nokogiri::HTML(open('https://magicseaweed.com/Rockaway-Surf-Report/384/'))
35
+
36
+ def self.wave_options
37
+
38
+ # scrapes magicseaweed.com for wave size each day
39
+
40
+ day_1 = @doc.search("td.background-info").text.strip.split[2..6]
41
+ day_2 = @doc.search("td.background-info").text.strip.split[10..14]
42
+ day_3 = @doc.search("td.background-info").text.strip.split[18..22]
43
+
44
+ # combines days into a variable called "waves"
45
+ # returns "waves" as an array with only unique values
46
+
47
+ @size = day_1 + day_2 + day_3
48
+ @size.uniq
49
+
50
+ end
51
+
52
+ def self.date_options
53
+
54
+ # scrapes magicseaweed.com for dates
55
+ @date = []
56
+
57
+ day_1 = @doc.search("tr.tbody-title").text.strip.split(" ").compact.first
58
+ day_2 = @doc.search("tr.tbody-title").text.strip.split.slice(4..5).join(" ")
59
+ day_3 = @doc.search("tr.tbody-title").text.strip.split.slice(6..7).join(" ")
60
+
61
+ # returns data for each day && pushes data to instance variable @date
62
+ @date << day_1
63
+ @date << day_2
64
+ @date << day_3
65
+
66
+ # calls @date
67
+ @date
68
+
69
+ end
70
+
71
+ def self.time_options
72
+
73
+ # scrapes magicseaweed.com for times && returns @times variable
74
+
75
+ @time = @doc.search("td.nopadding-left").text.strip.split[2..6]
76
+ @time
77
+
78
+ end
79
+
80
+ def self.collect_data
81
+
82
+ # call #wave_options, @waves, #date_options, #time_options
83
+
84
+ wave_options && @waves
85
+ date_options
86
+ time_options
87
+
88
+ end
89
+
90
+
91
+ def self.search_by_size(selection)
92
+
93
+ # calls #collect_data
94
+ collect_data
95
+
96
+ # create array to store day, time, and wave size as nested hash
97
+ wave_sizes = [
98
+
99
+ { :day => "#{@date[0]}", :time => "#{@time[0]}", :size => "#{@size[0]}" },
100
+ { :day => "#{@date[0]}", :time => "#{@time[1]}", :size => "#{@size[1]}" },
101
+ { :day => "#{@date[0]}", :time => "#{@time[2]}", :size => "#{@size[2]}" },
102
+ { :day => "#{@date[0]}", :time => "#{@time[3]}", :size => "#{@size[3]}" },
103
+ { :day => "#{@date[0]}", :time => "#{@time[4]}", :size => "#{@size[4]}" },
104
+
105
+ { :day => "#{@date[1]}", :time => "#{@time[0]}", :size => "#{@size[5]}" },
106
+ { :day => "#{@date[1]}", :time => "#{@time[1]}", :size => "#{@size[6]}" },
107
+ { :day => "#{@date[1]}", :time => "#{@time[2]}", :size => "#{@size[7]}" },
108
+ { :day => "#{@date[1]}", :time => "#{@time[3]}", :size => "#{@size[8]}" },
109
+ { :day => "#{@date[1]}", :time => "#{@time[4]}", :size => "#{@size[9]}" },
110
+
111
+ { :day => "#{@date[2]}", :time => "#{@time[0]}", :size => "#{@size[10]}" },
112
+ { :day => "#{@date[2]}", :time => "#{@time[1]}", :size => "#{@size[11]}" },
113
+ { :day => "#{@date[2]}", :time => "#{@time[2]}", :size => "#{@size[12]}" },
114
+ { :day => "#{@date[2]}", :time => "#{@time[3]}", :size => "#{@size[13]}" },
115
+ { :day => "#{@date[2]}", :time => "#{@time[4]}", :size => "#{@size[14]}" },
116
+
117
+ ]
118
+
119
+ # selection argument captured on ./cli.rb
120
+ # selection compared to key :size by iterating over array #wave_sizes
121
+ wave_sizes.select {|i| i[:size] == selection}
122
+
123
+ end
124
+
125
+ end
@@ -1,52 +1,72 @@
1
1
  class SurfRockaway::SurfReport
2
2
  attr_accessor :location, :wave_size, :wind, :primary_swell, :weather, :temp, :date, :time
3
3
 
4
+ @doc = Nokogiri::HTML(open('https://magicseaweed.com/Rockaway-Surf-Report/384/'))
5
+
4
6
  def self.current
7
+
5
8
  # Scrape magicseaweed.com and return current conditions for rockaway
6
- puts "### Pulling current report ... this may take up to seconds ###"
9
+
10
+ puts "### Pulling current report ... this may take up to 10 seconds ###"
7
11
  puts ""
12
+
8
13
  self.scrape_data
14
+
9
15
  end
10
16
 
11
17
  def self.scrape_data
18
+
12
19
  # creates empty array to store data
20
+
13
21
  conditions = []
14
22
 
15
23
  # pushes new instances of data from magicseaweed.com to conditions array
24
+
16
25
  conditions << self.scrape_magicseaweed
17
26
 
18
27
  conditions
19
28
  end
20
29
 
21
30
  def self.multi_day
31
+
22
32
  # Scrape 3-day forecast
23
- puts "### Pulling current report ... this may take up to seconds ###"
33
+
34
+ puts "### Pulling current report ... this may take up to 15 seconds ###"
24
35
  puts ""
36
+
25
37
  self.scrape_data_multi
38
+
26
39
  end
27
40
 
28
41
  def self.scrape_data_multi
29
-
42
+
30
43
  multi_day = []
31
44
 
45
+ # pushes new instances of data for 3-day forcast to multi_day array
46
+
32
47
  multi_day << self.scrape_magicseaweed_3day
33
48
 
49
+ # returns the array
50
+
34
51
  multi_day
35
52
  end
36
53
 
37
54
 
38
55
  def self.scrape_magicseaweed
39
- doc = Nokogiri::HTML(open('https://magicseaweed.com/Rockaway-Surf-Report/384/'))
40
56
 
57
+ # scrape current surf report
58
+
41
59
  current_report = self.new
42
- location_raw = doc.search("div.forecast-sub-title-fluid").text.strip.split
60
+ location_raw = @doc.search("div.forecast-sub-title-fluid").text.strip.split
43
61
  current_report.location = location_raw.first(5).join(" ")
44
- current_report.wave_size = doc.xpath("//ul[@class='rating rating-large clearfix']/li").text.strip
45
- current_report.wind = doc.xpath("//p[@class='h5 nomargin-top']").text.strip
46
- p_swell = doc.search("div.list-group-content").text.strip.split
62
+ current_report.wave_size = @doc.xpath("//ul[@class='rating rating-large clearfix']/li").text.strip
63
+ current_report.wind = @doc.xpath("//p[@class='h5 nomargin-top']").text.strip
64
+ p_swell = @doc.search("div.list-group-content").text.strip.split
47
65
  current_report.primary_swell = p_swell.first(3).join(" ")
48
- current_report.weather = doc.xpath("//p[@class='nomargin-bottom']/i").text.strip
66
+ current_report.weather = @doc.xpath("//p[@class='nomargin-bottom']/i").text.strip
49
67
 
68
+ # CLI OUTPUT
69
+
50
70
  puts "================================"
51
71
  puts "#{current_report.location}"
52
72
  puts "================================"
@@ -61,37 +81,41 @@ class SurfRockaway::SurfReport
61
81
  end
62
82
 
63
83
  def self.scrape_magicseaweed_3day
64
- doc = Nokogiri::HTML(open('https://magicseaweed.com/Rockaway-Surf-Report/384/'))
65
84
 
66
85
  # collect Day 1
67
86
 
68
87
  day_1 = self.new
69
- day_1.date = doc.search("tr.tbody-title").text.strip.split(" ").compact.first
70
- day_1.time = doc.search("td.nopadding-left").text.strip.split[2..6]
71
- day_1.wave_size = doc.search("td.background-info").text.strip.split[2..6]
72
- day_1.primary_swell = doc.search("h4.font-sans-serif").text.strip.split[4..13]
73
- day_1.temp = doc.search("h5.heavy").text.strip.split("f")[2..6]
88
+ day_1.date = @doc.search("tr.tbody-title").text.strip.split(" ").compact.first
89
+ day_1.time = @doc.search("td.nopadding-left").text.strip.split[2..6]
90
+ day_1.wave_size = @doc.search("td.background-info").text.strip.split[2..6]
91
+ day_1.primary_swell = @doc.search("h4.font-sans-serif").text.strip.split[4..13]
92
+ day_1.temp = @doc.search("h5.heavy").text.strip.split("f")[2..6]
93
+ day_1
74
94
 
75
95
  # collect Day 2
76
96
 
77
97
  day_2 = self.new
78
- day_2.date = doc.search("tr.tbody-title").text.strip.split.slice(4..5).join(" ")
79
- day_2.time = doc.search("td.nopadding-left").text.strip.split[2..6]
80
- day_2.wave_size = doc.search("td.background-info").text.strip.split[10..14]
81
- day_2.primary_swell = doc.search("h4.font-sans-serif").text.strip.split[20..29]
82
- day_2.temp = doc.search("h5.heavy").text.strip.split("f")[10..14]
98
+ day_2.date = @doc.search("tr.tbody-title").text.strip.split.slice(4..5).join(" ")
99
+ day_2.time = @doc.search("td.nopadding-left").text.strip.split[2..6]
100
+ day_2.wave_size = @doc.search("td.background-info").text.strip.split[10..14]
101
+ day_2.primary_swell = @doc.search("h4.font-sans-serif").text.strip.split[20..29]
102
+ day_2.temp = @doc.search("h5.heavy").text.strip.split("f")[10..14]
103
+ day_2
83
104
 
84
105
  # collect Day 3
85
106
 
86
107
  day_3 = self.new
87
- day_3.date = doc.search("tr.tbody-title").text.strip.split.slice(6..7).join(" ")
88
- day_3.time = doc.search("td.nopadding-left").text.strip.split[2..6]
89
- day_3.wave_size = doc.search("td.background-info").text.strip.split[18..22]
90
- day_3.primary_swell = doc.search("h4.font-sans-serif").text.strip.split[36..45]
91
- day_3.temp = doc.search("h5.heavy").text.strip.split("f")[18..22]
108
+ day_3.date = @doc.search("tr.tbody-title").text.strip.split.slice(6..7).join(" ")
109
+ day_3.time = @doc.search("td.nopadding-left").text.strip.split[2..6]
110
+ day_3.wave_size = @doc.search("td.background-info").text.strip.split[18..22]
111
+ day_3.primary_swell = @doc.search("h4.font-sans-serif").text.strip.split[36..45]
112
+ day_3.temp = @doc.search("h5.heavy").text.strip.split("f")[18..22]
113
+ day_3
92
114
 
93
- # CLI display for 3 day forecast
115
+ # CLI DISPLAY FOR 3 DAY FORECAST
94
116
 
117
+ # day 1
118
+
95
119
  puts ""
96
120
  puts "==========================="
97
121
  puts "#{day_1.date}"
@@ -99,12 +123,15 @@ class SurfRockaway::SurfReport
99
123
  table = TTY::Table.new ['', 'wave_size', 'primary_swell', 'temp'],
100
124
  [
101
125
  ["#{day_1.time[0]}", "#{day_1.wave_size[0]}", "#{day_1.primary_swell[0]}", "#{day_1.temp[0]}"],
102
- ["#{day_1.time[1]}", "#{day_1.wave_size[1]}", "#{day_1.primary_swell[1]}", "#{day_1.temp[1]}"],
103
- ["#{day_1.time[2]}", "#{day_1.wave_size[2]}", "#{day_1.primary_swell[2]}", "#{day_1.temp[2]}"],
104
- ["#{day_1.time[3]}", "#{day_1.wave_size[3]}", "#{day_1.primary_swell[3]}", "#{day_1.temp[3]}"],
105
- ["#{day_1.time[4]}", "#{day_1.wave_size[4]}", "#{day_1.primary_swell[4]}", "#{day_1.temp[4]}"]
126
+ ["#{day_1.time[1]}", "#{day_1.wave_size[1]}", "#{day_1.primary_swell[2]}", "#{day_1.temp[1]}"],
127
+ ["#{day_1.time[2]}", "#{day_1.wave_size[2]}", "#{day_1.primary_swell[4]}", "#{day_1.temp[2]}"],
128
+ ["#{day_1.time[3]}", "#{day_1.wave_size[3]}", "#{day_1.primary_swell[6]}", "#{day_1.temp[3]}"],
129
+ ["#{day_1.time[4]}", "#{day_1.wave_size[4]}", "#{day_1.primary_swell[8]}", "#{day_1.temp[4]}"]
106
130
  ]
107
131
  puts table.render(:ascii).green
132
+
133
+ # day 2
134
+
108
135
  puts ""
109
136
  puts "==========================="
110
137
  puts "#{day_2.date}"
@@ -112,13 +139,15 @@ class SurfRockaway::SurfReport
112
139
  table = TTY::Table.new ['', 'wave_size', 'primary_swell', 'temp'],
113
140
  [
114
141
  ["#{day_2.time[0]}", "#{day_2.wave_size[0]}", "#{day_2.primary_swell[0]}", "#{day_2.temp[0]}"],
115
- ["#{day_2.time[1]}", "#{day_2.wave_size[1]}", "#{day_2.primary_swell[1]}", "#{day_2.temp[1]}"],
116
- ["#{day_2.time[2]}", "#{day_2.wave_size[2]}", "#{day_2.primary_swell[2]}", "#{day_2.temp[2]}"],
117
- ["#{day_2.time[3]}", "#{day_2.wave_size[3]}", "#{day_2.primary_swell[3]}", "#{day_2.temp[3]}"],
118
- ["#{day_2.time[4]}", "#{day_2.wave_size[4]}", "#{day_2.primary_swell[4]}", "#{day_2.temp[4]}"]
142
+ ["#{day_2.time[1]}", "#{day_2.wave_size[1]}", "#{day_2.primary_swell[2]}", "#{day_2.temp[1]}"],
143
+ ["#{day_2.time[2]}", "#{day_2.wave_size[2]}", "#{day_2.primary_swell[4]}", "#{day_2.temp[2]}"],
144
+ ["#{day_2.time[3]}", "#{day_2.wave_size[3]}", "#{day_2.primary_swell[6]}", "#{day_2.temp[3]}"],
145
+ ["#{day_2.time[4]}", "#{day_2.wave_size[4]}", "#{day_2.primary_swell[8]}", "#{day_2.temp[4]}"]
119
146
  ]
120
147
  puts table.render(:ascii).green
121
148
 
149
+ # day 3
150
+
122
151
  puts ""
123
152
  puts "==========================="
124
153
  puts "#{day_3.date}"
@@ -126,16 +155,14 @@ class SurfRockaway::SurfReport
126
155
  table = TTY::Table.new ['', 'wave_size', 'primary_swell', 'temp'],
127
156
  [
128
157
  ["#{day_3.time[0]}", "#{day_3.wave_size[0]}", "#{day_3.primary_swell[0]}", "#{day_3.temp[0]}"],
129
- ["#{day_3.time[1]}", "#{day_3.wave_size[1]}", "#{day_3.primary_swell[1]}", "#{day_3.temp[1]}"],
130
- ["#{day_3.time[2]}", "#{day_3.wave_size[2]}", "#{day_3.primary_swell[2]}", "#{day_3.temp[2]}"],
131
- ["#{day_3.time[3]}", "#{day_3.wave_size[3]}", "#{day_3.primary_swell[3]}", "#{day_3.temp[3]}"],
132
- ["#{day_3.time[4]}", "#{day_3.wave_size[4]}", "#{day_3.primary_swell[4]}", "#{day_3.temp[4]}"]
158
+ ["#{day_3.time[1]}", "#{day_3.wave_size[1]}", "#{day_3.primary_swell[2]}", "#{day_3.temp[1]}"],
159
+ ["#{day_3.time[2]}", "#{day_3.wave_size[2]}", "#{day_3.primary_swell[4]}", "#{day_3.temp[2]}"],
160
+ ["#{day_3.time[3]}", "#{day_3.wave_size[3]}", "#{day_3.primary_swell[6]}", "#{day_3.temp[3]}"],
161
+ ["#{day_3.time[4]}", "#{day_3.wave_size[4]}", "#{day_3.primary_swell[8]}", "#{day_3.temp[4]}"]
133
162
  ]
134
163
  puts table.render(:ascii).green
135
164
  puts ""
136
165
  puts ""
137
166
  puts "######################################"
138
-
139
167
  end
140
-
141
168
  end
@@ -1,3 +1,3 @@
1
1
  module SurfRockaway
2
- VERSION = "0.1.0"
2
+ VERSION = "1.0.0"
3
3
  end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surf_rockaway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kyle crews
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-07 00:00:00.000000000 Z
11
+ date: 2019-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -61,6 +61,7 @@ extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
63
  - ".DS_Store"
64
+ - CHANGELOG.md
64
65
  - Gemfile
65
66
  - LICENSE.txt
66
67
  - README.md
@@ -73,9 +74,11 @@ files:
73
74
  - lib/environment.rb
74
75
  - lib/surf_data/.DS_Store
75
76
  - lib/surf_data/cli.rb
77
+ - lib/surf_data/search.rb
76
78
  - lib/surf_data/surf_report.rb
77
79
  - lib/surf_data/version.rb
78
80
  - still_in_progress/notification.rb
81
+ - surf_rockaway-0.1.0.gem
79
82
  - surf_rockaway.gemspec
80
83
  homepage: https://github.com/kyle-crews/surf-rockaway
81
84
  licenses: