Sha256: 95e63c6c7dcd612ff4c28adf45fb1899aaa966b189f321e2af19244e3572c0e9
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
class Card class Name module NameVariants @@variant_methods = %i[capitalize singularize pluralize titleize downcase upcase swapcase reverse succ] @@variant_aliases = { capitalized: :capitalize, singular: :singularize, plural: :pluralize, title: :titleize } 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 # @return [Card::Name] standardized based on card names 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 def card Card.fetch self, new: {} end def card_id Lexicon.id self end # @return [Symbol] codename of card with name def codename Codename[card_id] end def codename_or_string codename || s end def alternative Card.generate_alternative_name self end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
card-1.108.1 | lib/card/name/name_variants.rb |
card-1.108.0 | lib/card/name/name_variants.rb |