Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
uoy-faculty-rake / lib / faculty / rake / sinatra_rename.rb
Size: Mime:
# frozen_string_literal: true

require 'rake/tasklib'
require_relative 'helpers'
require_relative 'init_shared'

module Faculty
  module Rake
    # Functions for initializing a new app
    class SinatraRename < ::Rake::TaskLib
      include Helpers
      include InitShared

      def initialize
        super
        desc 'Rename and initialise a new Sinatra project'
        task :rename do
          raise ArgumentError, 'Missing parameter "name" (e.g. name=flexi_leave)' unless ENV.key? 'name'

          create_base_branch
          rename_within_files rename_list
          rename_files
          remove_from_rakefile
          remove_base_domain
        end
      end

      private

      def remove_base_domain
        system "sed -i 's/base.faculty-dev.app.york.ac.uk//' .github/workflows/deploy.yaml"
        system "sed -i 's/DomainName: base.*/DomainName: /' cloudformation.yaml"
      end

      def rename_files
        puts bold 'Renaming files'
        system "git mv lib/sinatra_base/ lib/#{snake_case_name}/"
      end

      def rename_list
        [
          { from: 'APP_NAME', to: separated_name },
          { from: 'sinatra_base_app', to: "#{snake_case_name}_app" },
          { from: 'SinatraBase', to: camel_case_name }
        ]
      end
    end
  end
end