module Card::Subcards::All

subcard-related Card instance methods

Public Instance Methods

drop_field(name_or_card) click to toggle source
# File lib/card/subcards/all.rb, line 53
def drop_field name_or_card
  subcards.remove_field name_or_card
end
drop_subcard(name_or_card) click to toggle source
# File lib/card/subcards/all.rb, line 49
def drop_subcard name_or_card
  subcards.remove name_or_card
end
field(field_name, args={}) click to toggle source
# File lib/card/subcards/all.rb, line 32
def field field_name, args={}
  if (sf = subcards.field field_name)
    sf.assign_attributes args
    sf
  else
    subcards.add_field field_name, args
  end
end
field?(tag) click to toggle source
# File lib/card/subcards/all.rb, line 45
def field? tag
  fetch(tag) || subcards.field(tag).present?
end
field_content(field_name) click to toggle source
# File lib/card/subcards/all.rb, line 41
def field_content field_name
  subcards.field(field_name)&.content
end
handle_subcard_errors() click to toggle source
# File lib/card/subcards/all.rb, line 57
def handle_subcard_errors
  subcards.each do |subcard|
    subcard.errors.each do |error|
      subcard_error subcard, error
    end
    subcard.errors.clear
  end
end
subcard(card_name, args={}) click to toggle source
# File lib/card/subcards/all.rb, line 15
def subcard card_name, args={}
  if (sc = subcards.card card_name)
    sc.assign_attributes args
    sc
  else
    subcards.add card_name, args
  end
end
subcard?(card_name) click to toggle source
# File lib/card/subcards/all.rb, line 28
def subcard? card_name
  subcards.card(card_name).present?
end
subcard_content(card_name) click to toggle source
# File lib/card/subcards/all.rb, line 24
def subcard_content card_name
  subcards.card(card_name)&.content
end
subcards() click to toggle source
# File lib/card/subcards/all.rb, line 7
def subcards
  @subcards ||= Card::Subcards.new self
end
subcards?() click to toggle source
# File lib/card/subcards/all.rb, line 11
def subcards?
  subcards.present?
end

Private Instance Methods

subcard_error(subcard, error) click to toggle source
# File lib/card/subcards/all.rb, line 68
def subcard_error subcard, error
  msg = error.message
  msg = "#{error.attribute} #{msg}" unless %i[content abort].member? error.attribute
  errors.add subcard.name.from(name), msg
end