module Card::Set::Pattern::ClassMethods
methods for Set::Pattern
classes
Attributes
anchor_parts_count[W]
anchorless[RW]
assigns_type[RW]
compound_only[RW]
pattern_code[RW]
Public Instance Methods
anchor_parts_count()
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 41 def anchor_parts_count @anchor_parts_count ||= (anchorless? ? 0 : 1) end
anchorless?()
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 24 def anchorless? anchorless end
compound_only?()
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 20 def compound_only? compound_only == true end
generic_label()
click to toggle source
label for set pattern if no anchor is given
# File lib/card/set/pattern/class_methods.rb, line 53 def generic_label label nil end
module_key(anchor_codes)
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 45 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
new(card)
click to toggle source
Calls superclass method
# File lib/card/set/pattern/class_methods.rb, line 9 def new card super if pattern_applies? card end
pattern()
click to toggle source
TODO: change to name or pattern_name
# File lib/card/set/pattern/class_methods.rb, line 33 def pattern pattern_id.cardname end
pattern_applies?(card)
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 37 def pattern_applies? card compound_only? ? card.name.compound? : true end
pattern_id()
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 28 def pattern_id pattern_code.card_id end
register(pattern_code, opts={})
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 13 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
Private Instance Methods
left_type(card)
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 59 def left_type card card.superleft&.type_name || quick_type(card.name.left_name) end
quick_type(name)
click to toggle source
# File lib/card/set/pattern/class_methods.rb, line 63 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