diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb
index 1c61f24..97da77f 100644
--- a/app/controllers/organizations_controller.rb
+++ b/app/controllers/organizations_controller.rb
@@ -8,9 +8,8 @@ def index
end
def show
- @organization = Organization.find(params[:id])
- @title = "View Organization | " + @organization.name
- @leagues = @organization.leagues
+ @organization = OrganizationDecorator.new(Organization.find(params[:id]))
+ @title = @organization.title
end
def new
diff --git a/app/decorators/organization_decorator.rb b/app/decorators/organization_decorator.rb
new file mode 100644
index 0000000..7f6aadb
--- /dev/null
+++ b/app/decorators/organization_decorator.rb
@@ -0,0 +1,11 @@
+class OrganizationDecorator < Draper::Decorator
+ delegate_all
+
+ def leagues
+ @leagues ||= model.leagues
+ end
+
+ def title
+ "View Organization | " + model.name
+ end
+end
diff --git a/app/views/leagues/_simple.html.erb b/app/views/leagues/_simple.html.erb
index 2ae0bed..0c81ad3 100644
--- a/app/views/leagues/_simple.html.erb
+++ b/app/views/leagues/_simple.html.erb
@@ -4,7 +4,7 @@
Season |
Actions |
- <% for league in @leagues%>
+ <% for league in leagues %>
<%= link_to league.name , league %> |
<%= league.from_year %>-<%= league.to_year %> |
diff --git a/app/views/organizations/show.html.erb b/app/views/organizations/show.html.erb
index 5705515..f0826b4 100644
--- a/app/views/organizations/show.html.erb
+++ b/app/views/organizations/show.html.erb
@@ -12,8 +12,8 @@
-<% unless @leagues.empty? %>
- <%= render :partial => "leagues/simple", :locals => {:leagues => @leagues} %>
+<% unless @organization.leagues.empty? %>
+ <%= render :partial => "leagues/simple", :locals => {:leagues => @organization.leagues} %>
<% end %>
diff --git a/spec/decorators/organization_decorator_spec.rb b/spec/decorators/organization_decorator_spec.rb
new file mode 100644
index 0000000..8cfb91a
--- /dev/null
+++ b/spec/decorators/organization_decorator_spec.rb
@@ -0,0 +1,23 @@
+require 'spec_helper'
+
+describe OrganizationDecorator do
+ let(:organization) {Organization.new}
+ subject do
+ organization.leagues.build(:name => 'foo')
+ OrganizationDecorator.new(organization)
+ end
+
+ describe 'leagues' do
+ it 'shows the leagues' do
+ subject.leagues.size.should == 1
+ end
+ end
+
+ describe 'title' do
+ let(:title) { "title"}
+ before { subject.name = title}
+ it 'shows the title' do
+ subject.title.should == "View Organization | #{title}"
+ end
+ end
+end