Sha256: 50d776e59d2ca32bd8d4096075b1bfaf2d5d2c526f465b8fd2ce794f6b7dfa19
Contents?: true
Size: 1.66 KB
Versions: 3
Compression:
Stored size: 1.66 KB
Contents
def field tag Card[cardname.field(tag)] end def subcard card_name subcards.card card_name end def subfield field_name subcards.field field_name end phase_method :add_subcard, before: :approve do |name_or_card, args=nil| subcards.add name_or_card, args end phase_method :add_subfield, before: :approve do |name_or_card, args=nil| subcards.add_field name_or_card, args end def remove_subcard name_or_card subcards.remove name_or_card end def remove_subfield name_or_card subcards.remove_field name_or_card end def clear_subcards subcards.clear end def unfilled? (content.empty? || content.strip.empty?) && !subcards.present? end event :reject_empty_subcards, after: :approve, on: :save do subcards.each_with_key do |subcard, key| if subcard.new? && subcard.unfilled? remove_subcard key end end end # deprecated; left for compatibility reasons because other events refer to this # especially wikirate event :process_subcards, after: :reject_empty_subcards, on: :save do end event :approve_subcards, after: :process_subcards do subcards.each do |subcard| if !subcard.valid_subcard? subcard.errors.each do |field, err| err = "#{field} #{err}" unless [:content, :abort].member? field errors.add subcard.relative_name.s, err end end end end event :store_subcards, after: :store do subcards.each do |subcard| subcard.save! validate: false if subcard != self # unless @draft end # ensures that a supercard can access subcards of self # eg. <user> creates <user+*account> creates <user+*account+*status> # <user> changes <user+*account+*status> in event activate_account Card.write_to_local_cache self end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
card-1.16.12 | mod/01_core/set/all/subcards.rb |
card-1.16.10 | mod/01_core/set/all/subcards.rb |
card-1.16.9 | mod/01_core/set/all/subcards.rb |