Sha256: 14d68124b698f133ad41fc21c6517df53f40bb082388b09daf27501adb5688a6

Contents?: true

Size: 1.86 KB

Versions: 21

Compression:

Stored size: 1.86 KB

Contents

require 'erubis'
require 'mixlib/cli'
require 'rib/runner'
require 'rib/all'

module Liquid
  class Console

    def run
      self.__send__(ARGV.shift, *ARGV)
    end

    def console(*args)
      require 'liquid/boot'
      Rib::Runner.run(args)
    end

    def project(name)
      if File.exist?(name)
        puts "!!! #{name} already exists"
        exit(1)
      end

      puts ">>> Generating new project #{name}"

      constant_name = name.split('_').map{|p| p[0..0].upcase + p[1..-1] }.join
      constant_name = constant_name.split('-').map{|q| q[0..0].upcase + q[1..-1] }.join('::') if constant_name =~ /-/
      constant_array = constant_name.split('::')

      config = opts
      config.merge!({
        name: name,
        constant_name: constant_name,
        constant_array: constant_array,
      })

      {
        "Gemfile"                        => "Gemfile",
        "Rakefile"                       => "Rakefile",
        "LICENSE.txt"                    => "LICENSE.txt",
        "README.md"                      => "README.md",
        ".gitignore"                     => "gitignore",
        "#{name}.gemspec"                => "gemspec",
        "bin/#{name}"                    => "binwrapper",
        "config.yml"                     => "config.yml",
        "#{name}/server.rb"              => "server.rb",
      }.each do |dest, source|
        puts "  * #{dest}"
        source = File.join(ROOT, 'lib/liquid/templates', "#{source}.tt")
        dest = File.join(name, dest)
        FileUtils.mkdir_p(File.dirname(dest))
        input = File.read(source)
        eruby = Erubis::Eruby.new(input)
        output = File.open(dest, "w")
        output.write(eruby.result(binding()))
        output.close
      end

      Dir.chdir(name) do
        puts ">>> Installing dependencies"
        system("bundle install")
        system("chmod +x bin/*")
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
liquid-ext-3.5.3 lib/liquid/console.rb
liquid-ext-3.5.2 lib/liquid/console.rb
liquid-ext-3.5.0 lib/liquid/console.rb
liquid-ext-3.4.2 lib/liquid/console.rb
liquid-ext-3.4.1 lib/liquid/console.rb
liquid-ext-3.4.0 lib/liquid/console.rb
liquid-ext-3.3.10 lib/liquid/console.rb
liquid-ext-3.3.9 lib/liquid/console.rb
liquid-ext-3.3.8 lib/liquid/console.rb
liquid-ext-3.3.7 lib/liquid/console.rb
liquid-ext-3.3.6 lib/liquid/console.rb
liquid-ext-3.3.5 lib/liquid/console.rb
liquid-ext-3.3.4 lib/liquid/console.rb
liquid-ext-3.3.3 lib/liquid/console.rb
liquid-ext-3.3.2 lib/liquid/console.rb
liquid-ext-3.3.0 lib/liquid/console.rb
liquid-ext-3.2.0 lib/liquid/console.rb
liquid-ext-3.1.2 lib/liquid/console.rb
liquid-ext-3.1.1 lib/liquid/console.rb
liquid-ext-3.1.0 lib/liquid/console.rb