Sha256: 42b0f328d13d0ab2bfa05cd256fb83a203c46e771ff51af226a43b068c8b3082

Contents?: true

Size: 630 Bytes

Versions: 2

Compression:

Stored size: 630 Bytes

Contents

class Card
  class Name
    module Variants
      @@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

2 entries across 2 versions & 1 rubygems

Version Path
card-1.20.1 lib/card/name/variants.rb
card-1.20.0 lib/card/name/variants.rb