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