Module: EffectivePollsHelper

Defined in:
app/helpers/effective_polls_helper.rb

Instance Method Summary collapse

Instance Method Details

#effective_polls_audience_scope_collection(poll) ⇒ Object

Used by admin/polls form



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/helpers/effective_polls_helper.rb', line 4

def effective_polls_audience_scope_collection(poll)
  klass = poll.try(:audience_class)
  raise('expected a poll with an audience_class') unless klass.try(:effective_polls_user?)

  resource = klass.new

  scopes = resource.poll_audience_scopes
  raise('expected poll audience scopes') unless scopes.kind_of?(Array)

  # Append the number of users in this scope
  scopes.map do |label, scope|
    relation = resource.poll_audience_scope(scope)
    raise("invalid poll_audience_scope for #{scope}") unless relation.kind_of?(ActiveRecord::Relation)

    ["#{label} (#{pluralize(relation.count, 'user')})", scope]
  end
end