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
          @name = ENV.fetch('name') or raise ArgumentError, 'Missing parameter "name" (e.g. name=FlexiLeave)'
          create_base_branch
          rename_within_files rename_list
          remove_lock_file
          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"
      end

      def remove_lock_file
        puts bold 'Remove Gemfile.lock'
        system 'rm Gemfile.lock'
      end

      def rename_list
        [
          { from: 'APP_NAME', to: @name },
          { from: 'sinatra_base_app', to: "#{@name.downcase.tr(' ', '_')}_app" }
        ]
      end
    end
  end
end