Sha256: 3bb215f3fc8d1d852ed96286928bfc0ceec75201dd9bfbec91216cf981a36ba5

Contents?: true

Size: 547 Bytes

Versions: 2

Compression:

Stored size: 547 Bytes

Contents

module DuckPuncher
  module Ducks
    module String
      BOOLEAN_MAP = ::Hash[%w(true 1 yes y on).product([true]) + ['false', '0', 'no', 'n', 'off', ''].product([false])].freeze

      def pluralize(count)
        "#{self}#{'s' if count != 1}"
      end unless method_defined?(:pluralize)

      def underscore
        gsub(/\B([A-Z])([a-z_0-9])/, '_\1\2').gsub('::', '/').downcase
      end unless method_defined?(:underscore)

      def to_boolean
        !!BOOLEAN_MAP[downcase]
      end unless method_defined?(:to_boolean)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
duck_puncher-2.15.0 lib/duck_puncher/ducks/string.rb
duck_puncher-2.14.1 lib/duck_puncher/ducks/string.rb