Sha256: 292bb1eb7fd2cb0b54b5141f4c8dee6edde8a1107dc023c556f12481cb8e27f5
Contents?: true
Size: 1.87 KB
Versions: 3
Compression:
Stored size: 1.87 KB
Contents
class Card module Set module Pattern # methods for Set::Pattern classes module ClassMethods attr_accessor :pattern_code, :junction_only, :assigns_type, :anchorless attr_writer :anchor_parts_count def new card super if pattern_applies? card end def register pattern_code, opts={} self.pattern_code = pattern_code Pattern.concrete.insert opts.delete(:index).to_i, self self.anchorless = !respond_to?(:anchor_name) opts.each { |key, val| send "#{key}=", val } end def junction_only? junction_only == true end def anchorless? anchorless end def pattern_id pattern_code.card_id end # TODO: change to #name or #pattern_name def pattern pattern_id.cardname end def pattern_applies? card junction_only? ? card.name.compound? : true end def anchor_parts_count @anchor_parts_count ||= (anchorless? ? 0 : 1) end def module_key anchor_codes return pattern_code.to_s.camelize if anchorless? return unless anchor_codes # not all anchors have codenames ([pattern_code] + anchor_codes).map { |code| code.to_s.camelize }.join "::" end # label for set pattern if no anchor is given def generic_label label nil end private def left_type card card.superleft&.type_name || quick_type(card.name.left_name) end def quick_type name if name.present? card = Card.fetch name, skip_modules: true, new: {} card.include_set_modules if card.new? && name.to_name.compound? card&.type_name else "RichText" end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
card-1.104.2 | lib/card/set/pattern/class_methods.rb |
card-1.104.1 | lib/card/set/pattern/class_methods.rb |
card-1.104.0 | lib/card/set/pattern/class_methods.rb |