Sha256: cb5b791c49a651639ac6b882ac2366d99ea84c668ba9d717ebd21e8bbff55950

Contents?: true

Size: 1.82 KB

Versions: 1

Compression:

Stored size: 1.82 KB

Contents

#!/usr/bin/env ruby

require 'thor'
require 'pathname'

require 'zip/zip'

require 'open3'
require 'nokogiri'

require 'win32/registry.rb'

require 'version_info'
require 'open-uri'
require 'net/http'
require 'ruby-progressbar'

require 'extensions'

require 'build_target'

Delphivm = Thor # sure, we are hacking Thor !

class Delphivm
  include(VersionInfo)

  ROOT = ::Pathname.getwd
  GEM_ROOT = Pathname(__FILE__).dirname.parent
  EXE_NAME = File.basename($0, '.rb')

 	PATH_TO_VENDOR = ROOT + 'vendor'
  PATH_TO_VENDOR_CACHE = PATH_TO_VENDOR + 'cache'
  PATH_TO_VENDOR_IMPORTS = PATH_TO_VENDOR + 'imports'
  DVM_IMPORTS_FILE = PATH_TO_VENDOR + 'imports.dvm'
  
  module Util #:nodoc:
    # redefine Thor to search tasks only for this app
    def self.globs_for(path)
      ["#{GEM_ROOT}/lib/dvm/**/*.thor", "#{Delphivm::ROOT}/dvm/**/*.thor"]
    end
  end

  class Gen < Thor
    namespace :gen
    # used only as thor namesapce for generators
    # defined here because we need ensure class Gen exist when generator tasks are loaded
    desc "echo", "prueba de echo"
    def echo
    end
  end

private
  def self.create_app_module
    @app_module = ::Module.new do
      include VersionInfo
      self.VERSION.file_name = ROOT + 'VERSION'
    end
    Object.const_set(ROOT.basename.to_s.snake_case.camelize, @app_module)
    @app_module.freeze # force to fix then module name
  end  

  def self.app_module
    return @app_module if @app_module
    if ROOT.basename.to_s.casecmp(EXE_NAME) == 0
      @app_module = Delphivm
    else
      create_app_module
    end
    VersionInfo.install_tasks(:target => @app_module)
    @app_module
  end
public
  APPMODULE = self.app_module
end

# Runner must be loaded after Delphivm setup, i.e., after Thor is hacked 
require 'delphivm/runner'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
delphivm-0.9.0 lib/delphivm.rb