surf_rockaway 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: