Class: Decidim::DecidimAwesome::VotingManifest

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Model, AttributeObject::Model
Defined in:
lib/decidim/decidim_awesome/voting_manifest.rb

Instance Method Summary collapse

Instance Method Details

#label_for(weight, context = {}) ⇒ Object

returns the label used in export or other places for a given weight defaults to a I18n key scoped under decidim_awesome



53
54
55
56
57
# File 'lib/decidim/decidim_awesome/voting_manifest.rb', line 53

def label_for(weight, context = {})
  return I18n.t("decidim.decidim_awesome.voting.#{name}.weights.weight_#{weight}", default: "weight_#{weight}") unless @on_label_generation

  @on_label_generation.call(weight, **context)
end

#label_generator(&block) ⇒ Object

registers an optional label generator block



47
48
49
# File 'lib/decidim/decidim_awesome/voting_manifest.rb', line 47

def label_generator(&block)
  @on_label_generation = block
end

#valid_weight?(weight, context = {}) ⇒ Boolean

validates the weight using the Proc defined by weight_validator Receives the weight and a context with the user and the proposal to be voted

Returns:

  • (Boolean)


40
41
42
43
44
# File 'lib/decidim/decidim_awesome/voting_manifest.rb', line 40

def valid_weight?(weight, context = {})
  return true unless on_weight_validation

  on_weight_validation.call(weight, **context)
end

#weight_validator(&block) ⇒ Object

registers a weight validator



29
30
31
# File 'lib/decidim/decidim_awesome/voting_manifest.rb', line 29

def weight_validator(&block)
  self.on_weight_validation = block
end

#weighted?Boolean

whether a weight validator has been registered for this manifest

Returns:

  • (Boolean)


34
35
36
# File 'lib/decidim/decidim_awesome/voting_manifest.rb', line 34

def weighted?
  on_weight_validation.present?
end