Sha256: 9daac2c85ab02a4bcae9c6b449415fdbb86df368320bb9b72726cf4bd11fc9e8

Contents?: true

Size: 1.08 KB

Versions: 14

Compression:

Stored size: 1.08 KB

Contents

require 'pathname'

module Jax
  module Generators
    # Shamelessly lifted from Ruby on Rails
    module ScriptJaxLoader
      RUBY = File.join(*RbConfig::CONFIG.values_at("bindir", "ruby_install_name")) + RbConfig::CONFIG["EXEEXT"]
      SCRIPT_JAX = File.join('script', 'jax')
  
      def self.exec_script_jax!
        cwd = Dir.pwd
        return unless in_jax_application? || in_jax_application_subdirectory?
        exec RUBY, SCRIPT_JAX, *ARGV if in_jax_application?
        Dir.chdir("..") do
          # Recurse in a chdir block: if the search fails we want to be sure
          # the application is generated in the original working directory.
          exec_script_jax! unless cwd == Dir.pwd
        end
      rescue SystemCallError
        # could not chdir, no problem just return
      end
  
      def self.in_jax_application?
        File.exists?(SCRIPT_JAX)
      end
  
      def self.in_jax_application_subdirectory?(path = Pathname.new(Dir.pwd))
        File.exists?(File.join(path, SCRIPT_JAX)) || !path.root? && in_jax_application_subdirectory?(path.parent)
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
jax-1.0.1 lib/jax/generators/script_jax_loader.rb
jax-1.0.1.rc2 lib/jax/generators/script_jax_loader.rb
jax-1.0.1.rc1 lib/jax/generators/script_jax_loader.rb
jax-1.0.0 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.10 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.9 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.8 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.7 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.6 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.5 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.4 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.3 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.2 lib/jax/generators/script_jax_loader.rb
jax-0.0.0.1 lib/jax/generators/script_jax_loader.rb