Skip to content

Commit

Permalink
serves multiple files from multiple subdirs
Browse files Browse the repository at this point in the history
  • Loading branch information
alexch committed Jan 13, 2012
1 parent a400f66 commit 44884e0
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 3 deletions.
2 changes: 1 addition & 1 deletion lib/deck/app.rb
Expand Up @@ -45,7 +45,7 @@ def call env
result = [404, {}, []]
@file_servers.each do |file_server|
result = file_server.call(env)
break if result.first == 200
return result if result.first < 400
end
result
end
Expand Down
47 changes: 45 additions & 2 deletions spec/app_spec.rb
Expand Up @@ -51,6 +51,7 @@ def app
end
@app = Deck::App.new ["#{dir}/foo.md"]
get "/"
assert_ok
assert { last_response.body.include? "contents of foo.md" }
assert { last_response.body.include? "<script src=\"deck.js/core/deck.core.js\"" }
end
Expand All @@ -67,10 +68,52 @@ def app
end
@app = Deck::App.build ["#{dir}/foo.md"]
get "/foo.css"
assert { last_response.ok? }
assert_ok
assert { last_response.body.include? "contents of foo.css" }
end


def assert_ok
unless last_response.ok?
status, errors = last_response.status, last_response.errors
assert(last_response.inspect) { errors.empty? && status == 200 }
end
end

it "serves multiple markdown files from multiple subdirs, and serves their sibling and child files too" do
dir = Files do
dir "foo" do
file "foo.md"
file "foo.css"
end
dir "bar" do
file "bar.md"
file "bar.css"
dir "img" do
file "bar.png"
end
end
end

@app = Deck::App.build ["#{dir}/foo/foo.md", "#{dir}/bar/bar.md"]

get "/"
assert_ok
assert { last_response.body.include? "contents of foo.md" }
assert { last_response.body.include? "contents of bar.md" }

get "/foo.css"
assert_ok
assert { last_response.body.include? "contents of foo.css" }

get "/bar.css"
assert_ok
assert { last_response.body.include? "contents of bar.css" }

get "/img/bar.png"
assert_ok
assert { last_response.body.include? "contents of bar.png" }

end

end
end

0 comments on commit 44884e0

Please sign in to comment.