module Card::Name::NameVariants

Public Instance Methods

alternative() click to toggle source
# File lib/card/name/name_variants.rb, line 44
def alternative
  Card.generate_alternative_name self
end
card() click to toggle source
# File lib/card/name/name_variants.rb, line 27
def card
  Card.fetch self, new: {}
end
card_id() click to toggle source
# File lib/card/name/name_variants.rb, line 31
def card_id
  Lexicon.id self
end
codename() click to toggle source

@return [Symbol] codename of card with name

# File lib/card/name/name_variants.rb, line 36
def codename
  Codename[card_id]
end
codename_or_string() click to toggle source
# File lib/card/name/name_variants.rb, line 40
def codename_or_string
  codename || s
end
standard() click to toggle source

@return [Card::Name] standardized based on card names

# File lib/card/name/name_variants.rb, line 17
def standard
  if simple?
    id = Lexicon.id self
    std = Lexicon.name id
    std.present? ? std : self
  else
    self.class.compose(parts.map { |part| part.cardname.standard })
  end
end
vary(variants) click to toggle source
# File lib/card/name/name_variants.rb, line 9
def vary variants
  variants.to_s.split(/[\s,]+/).inject(s) do |name, variant|
    variant = @@variant_aliases[variant.to_sym] || variant.to_sym
    @@variant_methods.include?(variant) ? name.send(variant) : name
  end
end