Sha256: 1aea8c64d437e90185540f95684f0738f3308ef758c0111ba9b3d6f6b85ae49a

Contents?: true

Size: 1.84 KB

Versions: 3

Compression:

Stored size: 1.84 KB

Contents

# frozen_string_literal: true

module Luo
  module InitProject
    extend self

    def project_template_file(name)
      File.join(File.dirname(__FILE__), 'projects', name)
    end
    def create_bundle_file()
      puts "create Gemfile"
      version = Luo::VERSION
      unless File.exist?('Gemfile')
        gemfile = <<-GEMFILE.gsub(/^ */, '')
        source 'https://rubygems.org'
        gem 'luo'
        gem 'iruby'
        gem 'pry'
        GEMFILE
        File.open('Gemfile', 'w') do |file|
          file.puts(gemfile)
        end
      end
    end

    def create_templates
      puts "create templates directory"
      unless File.directory?('templates')
        FileUtils.cp_r(File.join(__dir__, 'projects', 'prompts'), 'prompts')
      end
    end

    def create_agent_directory
      puts "create agent directory"
      FileUtils.mkdir_p('agents')
    end

    def create_application
      puts "create application"
      copy_file('init.rb', 'init.rb')
      copy_file('application.rb', 'app.rb')
      copy_file('env', '.env')
      copy_file('time_agent.rb', 'agents/time_agent.rb')
      copy_file('weather_agent.rb', 'agents/weather_agent.rb')
      copy_file('luo.ipynb', 'luo.ipynb')
      copy_file("test.yml", "test.yml")
    end

    def copy_file(file_name, target_file_name)
      puts "copy #{file_name} to #{target_file_name}"
      unless File.exist?(target_file_name)
        FileUtils.copy_file(project_template_file(file_name), target_file_name)
      end
    end

    def run()
      create_bundle_file
      create_templates
      create_agent_directory
      create_application

      Helpers.print_md """
      ## Luo Project Initialized
      You can now run `bundle install` to install the dependencies
      and edit .env to add your API key.
      and `bundle exec ruby application.rb` to run the project.
      """
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
luo-0.2.2 lib/luo/init_project._rb
luo-0.2.1 lib/luo/init_project._rb
luo-0.2.0 lib/luo/init_project._rb