Skip to content
This repository was archived by the owner on Mar 13, 2021. It is now read-only.

Commit

Permalink
filter
Browse files Browse the repository at this point in the history
  • Loading branch information
mavesonzini committed Dec 13, 2016
1 parent 57c8628 commit 6a8438e
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 25 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ gem 'dm-postgres-adapter'
gem 'database_cleaner'
gem 'sinatra-flash'
gem 'rake'
gem 'pry'
8 changes: 8 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ GEM
xpath (~> 2.0)
childprocess (0.5.9)
ffi (~> 1.0, >= 1.0.11)
coderay (1.1.1)
data_mapper (1.2.0)
dm-aggregates (~> 1.2.0)
dm-constraints (~> 1.2.0)
Expand Down Expand Up @@ -71,13 +72,18 @@ GEM
highline (1.7.8)
json (1.8.3)
json_pure (1.8.3)
method_source (0.8.2)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mini_portile2 (2.1.0)
multi_json (1.12.1)
nokogiri (1.6.8.1)
mini_portile2 (~> 2.1.0)
pry (0.10.4)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
public_suffix (2.0.4)
rack (1.6.5)
rack-protection (1.5.3)
Expand Down Expand Up @@ -112,6 +118,7 @@ GEM
tilt (>= 1.3, < 3)
sinatra-flash (0.3.0)
sinatra (>= 1.0.0)
slop (3.6.0)
stringex (1.5.1)
templater (1.0.0)
diff-lcs (>= 1.1.2)
Expand All @@ -132,6 +139,7 @@ DEPENDENCIES
data_mapper
database_cleaner
dm-postgres-adapter
pry
rake
rspec
rspec-sinatra
Expand Down
17 changes: 13 additions & 4 deletions app/models/filter.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
require 'pry'

class Filter
attr_accessor :filter_start_date, :filter_end_date
def initialize(filter_start_date, filter_end_date)
@filter_start_date = filter_start_date
@filter_end_date = filter_end_date
end

def compare_dates(listing, filter_start_date, filter_end_date)
availibility_start = listing.start_date.gsub(/\-/, "")
availibility_end = listing.end_date.gsub(/\-/, "")
if availibility_start <= @filter_start_date > availibility_end && availibility_start < @filter_end_date >= availibility_end
def compare_dates(listing)
availability_start = listing.start_date.gsub(/\-/, "")
availability_end = listing.end_date.gsub(/\-/, "")
start_within_availabity = (@filter_start_date > availability_start) && (@filter_start_date < availability_end)
end_within_availability = (@filter_end_date > availability_start )&&(@filter_end_date < availability_end)
if start_within_availabity && end_within_availability
return listing
end
end
Expand Down
10 changes: 5 additions & 5 deletions app/views/listings.erb
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@

<ul id='listings'>
<%@listings.each do |listing|%>
<%Filter.compare_dates(listing, @filter_start_date, @filter_end_date)%>

<%=filtered_listing = @filter.compare_dates(listing)%>
<li>
Name: <%= listing.name %>
Price: <%= listing.price %>
Available from: <%= listing.start_date %>
Available until: <%= listing.end_date %>
Name: <%= filtered_listing.name %>
Price: <%= filtered_listing.price %>
Available from: <%= filtered_listing.start_date %>
Available until: <%= filtered_listing.end_date %>
</li>

<%end%>
Expand Down
20 changes: 5 additions & 15 deletions app/vradbnb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
require_relative './models/date.rb'
require_relative './models/filter.rb'
require_relative 'data_mapper_setup'
require 'pry'


class VRADBnB < Sinatra::Base
Expand Down Expand Up @@ -68,21 +69,16 @@ class VRADBnB < Sinatra::Base
end

get '/listings' do
@filter_start_date = session[:start_date]
@filter_end_date = session[:end_date]

@listings = Listing.all

@filter = session[:filter]
erb :listings
end


post '/listings/filter' do

session[:start_date] = params[:start_date].gsub(/\-/, "")
session[:end_date] = params[:end_date].gsub(/\-/, "")
# @filter_dates = Date.create(start_date: start_date, end_date: end_date)
# session[:filter_id] = @filter_dates.id
filter_start_date = params[:start_date].gsub(/\//, "")
filter_end_date = params[:end_date].gsub(/\//, "")
session[:filter] = Filter.new(filter_start_date, filter_end_date)
redirect '/listings'
end

Expand All @@ -91,12 +87,6 @@ class VRADBnB < Sinatra::Base
def current_user
@current_user ||= User.get(session[:user_id])
end

# def filter_dates
# @filter_dates ||= Date.get(session[:filter_id])
# end


end
# start the server if ruby file executed directly
run! if app_file == $0
Expand Down
4 changes: 3 additions & 1 deletion spec/features/filtering_spec.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

feature "Filter spaces" do
scenario "renter can see all spaces" do
sign_up
Expand All @@ -7,12 +8,13 @@
expect(page).to have_content("palace")
end

scenario "renter can see all spaces" do
scenario "renter can see filtered spaces" do
sign_up
new_listing
new_listing2
fill_in("start_date",with: "05/12/2016")
fill_in("end_date",with: "06/12/2016")

click_button("List Spaces")
expect(page).to have_content("victorian")
expect(page).not_to have_content("palace")
Expand Down

0 comments on commit 6a8438e

Please sign in to comment.