Sha256: 76b9dc742f52a60c5f3996564b644df399302940c46f53740200309c3e80f75d

Contents?: true

Size: 1.96 KB

Versions: 47

Compression:

Stored size: 1.96 KB

Contents

module Compass
  module RailsHelper
    def generate_rails_app_directories(name)
      Dir.mkdir name
      Dir.mkdir File.join(name, "config")
      Dir.mkdir File.join(name, "config", "initializers")
      Dir.mkdir File.join(name, "tmp")
    end

    # Generate a rails application without polluting our current set of requires
    # with the rails libraries. This will allow testing against multiple versions of rails
    # by manipulating the load path.
    def generate_rails_app(name, dir = nil)
      if pid = fork
        Process.wait(pid)
        if $?.exitstatus == 2
          raise LoadError, "Couldn't load rails"
        elsif $?.exitstatus != 0
          raise "Failed to generate rails application."
        end
      else
        begin
          require 'action_pack/version'
          if ActionPack::VERSION::MAJOR >= 3
            require 'rails/generators'
            require 'rails/generators/rails/app/app_generator'
            require 'mocha'
            dir ||= File.join(File.expand_path('../../', __FILE__))
            args = [File.join(dir, name), '-q', '-f', '--skip-bundle', '--skip-gemfile']
            
            #stub this so you can generate more apps
            Rails::Generators::AppGenerator.any_instance.stubs(:valid_const?).returns(true)
            Rails::Generators::AppGenerator.start(args, {:destination_root => dir})
            
          else
            require 'rails/version'
            require 'rails_generator'
            require 'rails_generator/scripts/generate'
            Rails::Generator::Base.use_application_sources!
            capture_output do
              Rails::Generator::Base.logger = Rails::Generator::SimpleLogger.new $stdout
              Rails::Generator::Scripts::Generate.new.run([name], :generator => 'app')
            end
          end
        rescue LoadError
          Kernel.exit!(2)
        rescue => e
          $stderr.puts e
          Kernel.exit!(1)
        end
        Kernel.exit!(0)
      end
    end
  end
end

Version data entries

47 entries across 46 versions & 4 rubygems

Version Path
arcabouco-0.2.13 vendor/bundle/gems/compass-1.0.3/test/helpers/rails.rb
compass-1.0.3 test/helpers/rails.rb
compass-1.1.0.alpha.3 test/helpers/rails.rb
compass-1.1.0.alpha.2 test/helpers/rails.rb
compass-1.1.0.alpha.1 test/helpers/rails.rb
compass-1.1.0.alpha.0 test/helpers/rails.rb
compass-1.0.1 test/helpers/rails.rb
compass-1.0.0 test/helpers/rails.rb
compass-1.0.0.rc.1 test/helpers/rails.rb
compass-1.0.0.rc.0 test/helpers/rails.rb
compass-0.12.7 test/helpers/rails.rb
compass-1.0.0.alpha.21 test/helpers/rails.rb
compass-1.0.0.alpha.20 test/helpers/rails.rb
sadui-0.0.4 vendor/bundle/ruby/2.0.0/gems/compass-0.12.3/test/helpers/rails.rb
sadui-0.0.4 vendor/bundle/ruby/2.1.0/gems/compass-0.12.3/test/helpers/rails.rb
compass-0.12.6 test/helpers/rails.rb
compass-0.12.5 test/helpers/rails.rb
compass-0.12.4 test/helpers/rails.rb
compass-1.0.0.alpha.19 test/helpers/rails.rb
compass-0.12.3 test/helpers/rails.rb