Sha256: dc878f4ffc21239dd4608a48099e756db80bcde8fea906f9eaa2d17290fd0b32
Contents?: true
Size: 1.03 KB
Versions: 3
Compression:
Stored size: 1.03 KB
Contents
module Troo class MemberPresenter class << self def render_show(card, options = {}) new(card, options).render_show end end include DecoratorHelpers def initialize(card, options = {}) @card = card @options = options end def render_show decorated_members end private attr_reader :card def decorated_members if one_member? members.first elsif two_members? members.join(" and ") elsif many_members? word_wrap([all_but_last_member, last_member].join(" and ")) else "No members have been assigned." end end def members @members ||= card.members.map { |member| MemberDecorator.new(member).username } end def one_member? members.size == 1 end def two_members? members.size == 2 end def many_members? members.size > 2 end def all_but_last_member members[0...-1].join(", ") end def last_member members[-1] end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
troo-0.0.4 | lib/troo/display/member_presenter.rb |
troo-0.0.3 | lib/troo/display/member_presenter.rb |
troo-0.0.2 | lib/troo/display/member_presenter.rb |