Skip to content

Commit

Permalink
fix handling of tubes with dashes in their names
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanjohns committed Apr 30, 2015
1 parent cb36035 commit 9356a56
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 34 deletions.
18 changes: 9 additions & 9 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ GEM
rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0)
xpath (~> 1.0.0)
childprocess (0.3.9)
childprocess (0.5.6)
ffi (~> 1.0, >= 1.0.11)
diff-lcs (1.1.3)
erubis (2.7.0)
ffi (1.4.0)
ffi (1.9.8)
hike (1.2.1)
i18n (0.6.1)
journey (1.0.4)
Expand All @@ -63,7 +63,7 @@ GEM
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.21)
multi_json (1.7.1)
multi_json (1.11.0)
nokogiri (1.5.8)
polyglot (0.3.3)
rack (1.4.5)
Expand Down Expand Up @@ -101,12 +101,12 @@ GEM
rspec-expectations (2.10.0)
diff-lcs (~> 1.1.3)
rspec-mocks (2.10.1)
rubyzip (0.9.9)
selenium-webdriver (2.31.0)
childprocess (>= 0.2.5)
rubyzip (1.1.7)
selenium-webdriver (2.45.0)
childprocess (~> 0.5)
multi_json (~> 1.0)
rubyzip
websocket (~> 1.0.4)
rubyzip (~> 1.0)
websocket (~> 1.0)
sinatra (1.4.6)
rack (~> 1.4)
rack-protection (~> 1.4)
Expand All @@ -130,7 +130,7 @@ GEM
tzinfo (0.3.34)
vegas (0.1.11)
rack (>= 1.0.0)
websocket (1.0.7)
websocket (1.2.2)
xpath (1.0.0)
nokogiri (~> 1.3)

Expand Down
2 changes: 1 addition & 1 deletion lib/beanstalkd_view/beanstalkd_utils.rb
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def guess_max_peek_range(min)
(min+GUESS_PEEK_RANGE)-1
end

def close_connections
def close_connection
begin
beanstalk.close
rescue Beaneater::NotConnected
Expand Down
50 changes: 28 additions & 22 deletions lib/beanstalkd_view/server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class Server < Sinatra::Base
rescue Beaneater::NotFoundError => @error
erb :error
rescue Beaneater::NotConnected => @error
close_connections
close_connection
erb :error
end
end
Expand All @@ -48,29 +48,32 @@ class Server < Sinatra::Base
rescue Beaneater::NotFoundError => @error
erb :error
rescue Beaneater::NotConnected => @error
close_connections
close_connection
erb :error
end
end

get "/tube/:tube" do
get "/tube/*" do
begin
@tube = beanstalk.tubes[params[:tube]]
@tube = beanstalk.tubes[params[:splat].first]
@stats = @tube.stats
erb :tube_stats
rescue Beaneater::NotFoundError => @error
erb :error
rescue Beaneater::NotConnected => @error
close_connections
close_connection
erb :error
end
end

get "/peek/:tube/:type" do
get "/peek/*" do
content_type :json
parts = params[:splat].first.split('/')
tube = parts[0...-1].join('/')
type = parts.last
begin
tube = beanstalk.tubes[params[:tube]]
response = tube.peek(params[:type])
tube = beanstalk.tubes[tube]
response = tube.peek(type)
if response
job_to_hash(response).to_json
else
Expand All @@ -79,7 +82,7 @@ class Server < Sinatra::Base
rescue Beaneater::NotFoundError => @error
{ :error => @error.to_s }.to_json
rescue Beaneater::NotConnected => @error
close_connections
close_connection
{ :error => @error.to_s }.to_json
end
end
Expand Down Expand Up @@ -112,28 +115,31 @@ class Server < Sinatra::Base
rescue Beaneater::NotFoundError => @error
erb :error
rescue Beaneater::NotConnected => @error
close_connections
close_connection
erb :error
end
end

get "/delete/:tube/:job_id" do
get "/delete/*" do
parts = params[:splat].first.split('/')
tube = parts[0...-1].join('/')
job_id = parts.last
begin
response = nil
job = beanstalk.jobs.find(params[:job_id].to_i)
job = beanstalk.jobs.find(job_id.to_i)
raise Beaneater::NotFoundError.new("Job not found with specified id", 'find') if job.nil?
response = job.delete
if response
cookies[:beanstalkd_view_notice] = "Deleted Job #{params[:job_id]}"
redirect url("/tube/#{escaped_tube_param}")
cookies[:beanstalkd_view_notice] = "Deleted Job #{job_id}"
redirect url("/tube/#{escaped_tube_param(tube)}")
else
cookies[:beanstalkd_view_notice] = "Error deleting Job #{params[:job_id]}"
redirect url("/tube/#{escaped_tube_param}")
cookies[:beanstalkd_view_notice] = "Error deleting Job #{job_id}"
redirect url("/tube/#{escaped_tube_param(tube)}")
end
rescue Beaneater::NotFoundError => @error
erb :error
rescue Beaneater::NotConnected => @error
close_connections
close_connection
erb :error
end
end
Expand All @@ -152,7 +158,7 @@ class Server < Sinatra::Base
rescue Beaneater::NotFoundError => @error
erb :error
rescue Beaneater::NotConnected => @error
close_connections
close_connection
erb :error
end
end
Expand All @@ -173,7 +179,7 @@ class Server < Sinatra::Base
rescue Beaneater::NotFoundError => @error
erb :error
rescue Beaneater::NotConnected => @error
close_connections
close_connection
erb :error
end
end
Expand All @@ -193,7 +199,7 @@ class Server < Sinatra::Base
rescue Beaneater::NotFoundError => @error
erb :error
rescue Beaneater::NotConnected => @error
close_connections
close_connection
erb :error
end
end
Expand All @@ -205,8 +211,8 @@ def url_path(*path_parts)

private

def escaped_tube_param
CGI::escape(params[:tube])
def escaped_tube_param(tube = nil)
CGI::escape(tube || params[:tube])
end

def path_prefix
Expand Down
4 changes: 2 additions & 2 deletions spec/support/queue_browser_shared_examples.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
end

it "should be able to pause a tube", :js => true do
visit "#{site_root}/tube/#{CGI::escape(tube_name)}"
visit "#{site_root}tube/#{CGI::escape(tube_name)}"
form = find('#pause_form')
form.fill_in 'delay', :with => 1
click_button "Pause"
Expand All @@ -62,7 +62,7 @@
end

it "should be able to clear a tube", :js => true do
visit "#{site_root}/tube/#{CGI::escape(tube_name)}"
visit "#{site_root}tube/#{CGI::escape(tube_name)}"
form = find('#clear_form')
form.select 'Buried', :from => 'state'
click_button "Clear"
Expand Down

0 comments on commit 9356a56

Please sign in to comment.