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