Sha256: fc8bcce29558017d685966d67657762d0f7d825081b949992d29927bfe1d20d5

Contents?: true

Size: 1.98 KB

Versions: 1

Compression:

Stored size: 1.98 KB

Contents

require 'rake'
require 'rails/generators'

module Cambium
  module Setup
    class UtilitiesGenerator < Rails::Generators::Base
      desc "Setup utilities for new rails project"

      # ------------------------------------------ Class Methods

      source_root File.expand_path('../../templates', __FILE__)

      # ------------------------------------------ Settings Files

      def add_settings_files
        ['settings','settings_private','settings_private.sample'].each do |s|
          template "config/#{s}.yml", "config/#{s}.yml"
        end
      end

      # ------------------------------------------ Seeds

      def add_seed_generator
        remove_file "db/seeds.rb"
        template "db/seeds.rb", "db/seeds.rb"
      end

      # ------------------------------------------ Rake Tasks

      def add_rake_tasks
        ['db','rename'].each do |task|
          template "lib/tasks/#{task}.rake", "lib/tasks/#{task}.rake"
        end
      end

      # ------------------------------------------ Private Methods

      private

        def run_cmd(cmd, options = {})
          print_table(
            [
              [set_color("run", :green, :bold), cmd]
            ],
            :indent => 9
          )
          if options[:quiet] == true
            `#{cmd}`
          else
            system(cmd)
          end
        end

        def template_file(name)
          File.expand_path("../../templates/#{name}", __FILE__)
        end

        def file_contents(template)
          File.read(template_file(template))
        end

        def be
          "bundle exec"
        end

        def g
          "#{be} rails g"
        end

        def rake
          "#{be} rake"
        end

        def confirm_ask(question)
          answer = ask("\n#{question}")
          match = ask("Confirm: #{question}")
          if answer == match
            answer
          else
            say set_color("Did not match.", :red)
            confirm_ask(question)
          end
        end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cambium-0.0.1 lib/generators/cambium/setup/utilities_generator.rb