Skip to content
This repository has been archived by the owner on Nov 11, 2017. It is now read-only.

Commit

Permalink
Adding some footer magic in
Browse files Browse the repository at this point in the history
  • Loading branch information
qrush committed Jul 10, 2009
1 parent 535f57e commit 359b52a
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
9 changes: 6 additions & 3 deletions lib/report_card/index.rb
@@ -1,16 +1,19 @@
module ReportCard module ReportCard
class Index class Index
attr_reader :projects, :footer

TEMPLATE_PATH = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "template", "index.html.erb")) TEMPLATE_PATH = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "template", "index.html.erb"))


def self.create(projects, site) def self.create(projects, site)
new(projects.select { |p| p.public }, site) new(projects.select { |p| p.public }, site, "<a href='/private'>TOP SECRET PROJECTS</a>")
new(projects.select { |p| ! p.public }, File.join(site, 'private')) new(projects.select { |p| ! p.public }, File.join(site, 'private'), "<a href='/'>NORMAL BORING PROJECTS</a>")
end end


def initialize(projects, path) def initialize(projects, path, footer)
return if projects.empty? return if projects.empty?


@projects = projects @projects = projects
@footer = footer


erb = File.read(TEMPLATE_PATH) erb = File.read(TEMPLATE_PATH)
html = ERB.new(erb).result(binding) html = ERB.new(erb).result(binding)
Expand Down
2 changes: 1 addition & 1 deletion template/index.html.erb
Expand Up @@ -27,7 +27,7 @@
</ul> </ul>
</div> </div>
<div id="footer"> <div id="footer">
<a href="/private">TOP SECRET PROJECTS</a> <%= @footer %>
</div> </div>
</body> </body>
</html> </html>
10 changes: 6 additions & 4 deletions test/index_test.rb
Expand Up @@ -12,8 +12,8 @@ class IndexTest < Test::Unit::TestCase
end end


should "split up public and private projects" do should "split up public and private projects" do
mock(ReportCard::Index).new([@public_project1, @public_project2], @site) mock(ReportCard::Index).new([@public_project1, @public_project2], @site, anything)
mock(ReportCard::Index).new([@private_project], File.join(@site, "private")) mock(ReportCard::Index).new([@private_project], File.join(@site, "private"), anything)


ReportCard::Index.create(@projects, @site) ReportCard::Index.create(@projects, @site)
end end
Expand All @@ -28,14 +28,16 @@ class IndexTest < Test::Unit::TestCase
mock(ERB).new(erb).mock!.result(anything) { html } mock(ERB).new(erb).mock!.result(anything) { html }
mock(File).open(File.join(@site, "index.html"), "w").yields(io) mock(File).open(File.join(@site, "index.html"), "w").yields(io)


ReportCard::Index.new([@private_project], @site) index = ReportCard::Index.new([@private_project], @site, "footer")
assert_equal [@private_project], index.projects
assert_equal "footer", index.footer
end end


should "not write out anything if there's no projects" do should "not write out anything if there's no projects" do
mock(File).read(anything).never mock(File).read(anything).never
mock(ERB).new(anything).never mock(ERB).new(anything).never
mock(File).open(anything, "w").never mock(File).open(anything, "w").never
ReportCard::Index.new([], @site) ReportCard::Index.new([], @site, "footer")
end end
end end
end end

0 comments on commit 359b52a

Please sign in to comment.