Sha256: 712706d4cd5205fbd3021016d2a71080e5a37f552752d236ab31c4ffac609f97

Contents?: true

Size: 489 Bytes

Versions: 58

Compression:

Stored size: 489 Bytes

Contents

# frozen_string_literal: true

module EacRubyUtils
  class Inflector
    class << self
      VARIABLE_NAME_PATTERN = /[_a-z][_a-z0-9]*/i.freeze

      def variableize(string)
        r = string.gsub(/[^_a-z0-9]/i, '_').gsub(/_+/, '_').gsub(/_\z/, '').gsub(/\A_/, '').downcase
        m = VARIABLE_NAME_PATTERN.match(r)
        return r if m

        raise ::ArgumentError, "Invalid variable name \"#{r}\" was generated " \
          "from string \"#{string}\""
      end
    end
  end
end

Version data entries

58 entries across 58 versions & 3 rubygems

Version Path
ehbrs-tools-0.16.2 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.54.0 lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.53.0 lib/eac_ruby_utils/inflector.rb
avm-tools-0.77.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.52.0 lib/eac_ruby_utils/inflector.rb
ehbrs-tools-0.16.1 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.51.1 lib/eac_ruby_utils/inflector.rb
avm-tools-0.76.1 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.51.0 lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.50.0 lib/eac_ruby_utils/inflector.rb
ehbrs-tools-0.16.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
avm-tools-0.76.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.49.1 lib/eac_ruby_utils/inflector.rb
avm-tools-0.75.1 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
avm-tools-0.75.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
avm-tools-0.74.1 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.49.0 lib/eac_ruby_utils/inflector.rb
avm-tools-0.74.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb
eac_ruby_utils-0.48.0 lib/eac_ruby_utils/inflector.rb
avm-tools-0.73.0 vendor/eac_ruby_utils/lib/eac_ruby_utils/inflector.rb