Sha256: 51f5a6ec3bb9d75b4d4c588e6f6f25b3e49712d23cec874a7ffd837ec41f4c89

Contents?: true

Size: 1.75 KB

Versions: 5

Compression:

Stored size: 1.75 KB

Contents

require 'fileutils'
require 'fanforce/api'
require 'active_support/all'

class Fanforce::Test

  def self.setup_env(base_dir)
    puts "##### SETTING RACK_ENV IN SUPERCORE API ##################################################################################################################\n\n"
    Fanforce::Test.start(base_dir)
    at_exit do
      puts "\n##### REMOVING RACK_ENV IN SUPERCORE API ##################################################################################################################\n\n"
      Fanforce::Test.finish(base_dir)
    end
  end

  def self.start(base_dir)
    instance = self.new(base_dir)
    instance.set_rack_env('test')
    instance.restart_server
  end

  def self.finish(base_dir)
    instance = self.new(base_dir)
    instance.set_rack_env(nil)
    instance.restart_server
  end

  ######################################################################################################################

  def initialize(base_dir)
    @base_dir = base_dir
  end

  def set_rack_env(value)
    lines = File.exists?(powenv_path) ? File.readlines(powenv_path) : []
    lines.reject!{|line| /RACK_ENV\=/.match(line) }
    lines << "export RACK_ENV=#{value}" if value
    File.open(powenv_path, 'w+'){|f| f.puts(lines) }
  end

  def restart_server
    FileUtils.touch(File.join(supercore_path, 'api', 'tmp', 'restart.txt'))
  end

  def supercore_path(dir=@base_dir)
    @supercore_path ||= begin
      parent_dir = File.join(dir, '..')
      supercore_dir = File.expand_path(File.join(parent_dir, 'supercore'))
      File.directory?(supercore_dir) ? supercore_dir : supercore_path(parent_dir)
    end
  end

  def powenv_path
    @powenv_path ||= File.join(supercore_path, 'api', '.powenv')
  end

end

require_relative 'test/rake_helpers'

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fanforce-test-2.0.0.rc4 lib/fanforce/test.rb
fanforce-test-2.0.0.rc3 lib/fanforce/test.rb
fanforce-test-2.0.0.rc2 lib/fanforce/test.rb
fanforce-test-2.0.0.rc1 lib/fanforce/test.rb
fanforce-test-1.0.0.rc1 lib/fanforce/test.rb