Sha256: f1e183ed478ebb23714ddc2b84caba6cb976dbbdf1100ef5957aea2d724f00d6

Contents?: true

Size: 1.36 KB

Versions: 1

Compression:

Stored size: 1.36 KB

Contents

class String
  def camelize(uppercase_first_letter = true)
    string = self
    if uppercase_first_letter
      string = string.sub(/^[a-z\d]*/) { |match| match.capitalize }
    else
      string = string.sub(/^(?:(?=\b|[A-Z_])|\w)/) { |match| match.downcase }
    end
    string.gsub(/(?:_|(\/))([a-z\d]*)/) { "#{$1}#{$2.capitalize}" }.gsub("/", "::")
  end
end

module KCommercial
  module Resources
    class CodeGenerator
      # The super module default is MKResources
      # @return [String]
      attr_reader :super_module

      # The key defines for the generator
      # @return [Array<String>]
      attr_reader :keys

      # Create a new SwiftGenerator
      # @param [Array<String>] keys the defines for keys
      def initialize(keys, options = {})
        @keys = keys
        @keys ||= []
        @super_module = options.delete(:super) { :MKResources }
      end

      def implementation_contents
        raise NotImplementedError
      end

      private

      def class_name
        "Colors"
      end

      def key_to_code(key)
        raise NotImplementedError
      end

      def key_to_function_name(key)
        key = key.camelize(false)
        if key.length > 0
          key[0] = key[0].downcase
        end
        key
      end

      def append_prefix(contents, prefix)
        contents.lines.map { |l| "#{prefix}#{l}"}.join('')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
KCommercialPipeline-0.2.5.1 lib/KCommercialPipeline/core/resource/code_generator/code_generator.rb