Sha256: baeec9a16dd26c7dfd5fa8ffc62f2d72ecec80b384d08a06923e24d9ff66f662
Contents?: true
Size: 1.66 KB
Versions: 3
Compression:
Stored size: 1.66 KB
Contents
class Card class Subcards # subcard-related Card instance methods module All def subcards @subcards ||= Card::Subcards.new self end def subcards? subcards.present? end def subcard card_name, args={} if (sc = subcards.card card_name) sc.assign_attributes args sc else subcards.add card_name, args end end def subcard_content card_name subcards.card(card_name)&.content end def subcard? card_name subcards.card(card_name).present? end def subfield field_name, args={} if (sf = subcards.field field_name) sf.assign_attributes args sf else subcards.add_field field_name, args end end def subfield_content field_name subcards.field(field_name)&.content end def subfield? field_name subcards.field(field_name).present? end def field? tag field(tag) || subfield?(tag) end def drop_subcard name_or_card subcards.remove name_or_card end def drop_subfield name_or_card subcards.remove_field name_or_card end def handle_subcard_errors subcards.each do |subcard| subcard.errors.each do |error| subcard_error subcard, error end subcard.errors.clear end end private 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 end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
card-1.104.2 | lib/card/subcards/all.rb |
card-1.104.1 | lib/card/subcards/all.rb |
card-1.104.0 | lib/card/subcards/all.rb |