Sha256: 030df07b57cc5f121c77efd4ac49793dff2e4f30f4735e2243e05387a2124e0f

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

module Vedeu

  module Generator

    module Helpers

      # @return [String]
      def app_name
        @app_name ||= File.read('./config/app_name')
      end

      # @param name [String]
      # @return [String]
      def app_name_as_snake_case(name = app_name)
        name.gsub!(/::/, '/')
        name.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
        name.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
        name.tr!('-', '_')
        name.downcase!
        name
      end

      # @param source [String]
      # @param destination [String]
      # @return [void]
      def make_file(source, destination)
        Vedeu.log_stdout(type: :create, message: "Writing: '#{destination}'")

        File.write(destination, parse(source))
      end

      # @return [String]
      def name
        @_name ||= @name.downcase
      end

      # @return [String]
      def name_as_class
        name.downcase.split(/_|-/).map(&:capitalize).join
      end

      # @param source [String]
      # @return [String]
      def parse(source)
        Vedeu::Template.parse(self, source)
      end

      # @return [String]
      def source
        File.dirname(__FILE__) + '/templates/application/.'
      end

    end # Helpers

  end # Generator

end # Vedeu

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.4.37 lib/vedeu/generator/helpers.rb