Sha256: e8c0831be1c7627b3b46d94b292fd06d8c8cdebf06a08c0f700cffd7f6fa2a5a

Contents?: true

Size: 634 Bytes

Versions: 37

Compression:

Stored size: 634 Bytes

Contents

class Card
  class Name
    module NameVariants
      @@variant_methods = [: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(self.s) do |name, variant|
          variant = @@variant_aliases[variant.to_sym] || variant.to_sym
          @@variant_methods.include?(variant) ? name.send(variant) : name
        end
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
card-1.96.8 lib/card/name/name_variants.rb
card-1.96.7 lib/card/name/name_variants.rb
card-1.96.6 lib/card/name/name_variants.rb
card-1.96.5 lib/card/name/name_variants.rb
card-1.96.4 lib/card/name/name_variants.rb
card-1.96.3 lib/card/name/name_variants.rb
card-1.96.2 lib/card/name/name_variants.rb
card-1.96.1 lib/card/name/name_variants.rb
card-1.96.0 lib/card/name/name_variants.rb
card-1.95.3 lib/card/name/name_variants.rb
card-1.95.2 lib/card/name/name_variants.rb
card-1.95.1 lib/card/name/name_variants.rb
card-1.95.0 lib/card/name/name_variants.rb
card-1.94.1 lib/card/name/name_variants.rb
card-1.94.0 lib/card/name/name_variants.rb
card-1.93.13 lib/card/name/name_variants.rb
card-1.93.12 lib/card/name/name_variants.rb
card-1.93.11 lib/card/name/name_variants.rb
card-1.93.10 lib/card/name/name_variants.rb
card-1.93.9 lib/card/name/name_variants.rb