class RuleSetRadio
Attributes
format[R]
Public Class Methods
new(format, set_name, tag, state)
click to toggle source
@param state [:current, :overwritten]
# File set/rule/rule_form/rule_set_radio.rb, line 9 def initialize format, set_name, tag, state @format = format @card = format.card @set_name = set_name @tag = tag @state = state end
Public Instance Methods
html(narrower)
click to toggle source
# File set/rule/rule_form/rule_set_radio.rb, line 17 def html narrower @narrower_rules = narrower rule_radio do radio_text = "#{@set_name}+#{@tag}" radio_button :name, radio_text, checked: false, warning: warning end end
Private Instance Methods
current?()
click to toggle source
# File set/rule/rule_form/rule_set_radio.rb, line 28 def current? @state == :current end
extra_info()
click to toggle source
# File set/rule/rule_form/rule_set_radio.rb, line 50 def extra_info case @state when :current "(current)" when :overwritten, :exists link_to_card "#{@set_name}+#{@card.rule_user_setting_name}", "(#{@state})", target: "_blank" end end
label()
click to toggle source
# File set/rule/rule_form/rule_set_radio.rb, line 44 def label label = Card.fetch(@set_name).label label += " <em>#{extra_info}</em>".html_safe if extra_info label end
narrower_warning()
click to toggle source
warn user if rule change won't have a effect on the current card because there is a narrower rule
# File set/rule/rule_form/rule_set_radio.rb, line 70 def narrower_warning return unless @state.in? %i[current overwritten] @narrower_rules << Card.fetch(@set_name).uncapitalized_label return unless @state == :overwritten narrower_warning_message end
narrower_warning_message()
click to toggle source
# File set/rule/rule_form/rule_set_radio.rb, line 79 def narrower_warning_message plural = @narrower_rules.size > 1 ? "s" : "" "This rule will not have any effect on this card unless you delete " \ "the narrower rule#{plural} for #{@narrower_rules.to_sentence}." end
overwritten?()
click to toggle source
# File set/rule/rule_form/rule_set_radio.rb, line 32 def overwritten? @state == :overwritten end
rule_radio() { || ... }
click to toggle source
# File set/rule/rule_form/rule_set_radio.rb, line 36 def rule_radio label_classes = ["set-label", ("current-set-label" if current?)] icon = icon_tag "open_in_new", "link-muted" wrap_with :label, class: label_classes.compact.join(" ") do [yield, label, link_to_card(@set_name, icon, target: "decko_set")] end end
warning()
click to toggle source
# File set/rule/rule_form/rule_set_radio.rb, line 60 def warning if @set_name == "*all" "This rule will affect all cards! Are you sure?" else narrower_warning end end