#
# Submit a poll question to a channel, wait for glorious outcome.
#
+# TODO better display for start/end times
+# TODO 'until ...' time spec
+# TODO early poll termination
+# TODO option to inform people about running polls on join (if they haven't voted yet)
class ::Poll
attr_accessor :id, :author, :channel, :running, :ends_at, :started
@voters[voter] = choice
return _("recorded your vote for %{choice}: %{value}") % {
+ :choice => choice,
:value => @answers[choice][:value]
}
else
end
def options
- options = _("options are: ")
+ options = _("options are: ").dup
@answers.each { |letter, info|
options << "#{Bold}#{letter}#{NormalText}) #{info[:value]} "
}
command = _("poll vote %{id} <SINGLE-LETTER>") % {
:id => poll.id
}
- instructions = _("you have %{duration}, vote with ")
+ instructions = _("you have %{duration}, vote with ").dup
instructions << _("%{priv} or %{public}")
m.reply instructions % {
:duration => "#{Bold}#{target_duration}#{Bold}",
outcome << " #{poll.outcome}"
end
- m.reply (to_reply % {
+ m.reply((to_reply % {
:bold => Bold,
:id => poll.id, :author => poll.author, :channel => poll.channel,
:started => poll.started,
:end => poll.ends_at
- }) + options + outcome
+ }) + options + outcome)
end
def help(plugin,topic="")