Sha256: c8a1ab3151f748f5c67b4d2ba427ccd42ec09a46564ba69816ea6b58c75874b3

Contents?: true

Size: 1.77 KB

Versions: 2

Compression:

Stored size: 1.77 KB

Contents

require "tilt"
require "konacha/engine"
require "konacha/runner"
require "konacha/server"
require "konacha/reporter"
require "konacha/formatter"

module Konacha
  class << self
    attr_accessor :mode

    def serve
      puts "Your tests are here:"
      puts "  http://#{host}:#{port}/"
      self.mode = :server
      Konacha::Server.start
    end

    def run
      self.mode = :runner
      Konacha::Runner.start
    end

    def config
      Konacha::Engine.config.konacha
    end

    def configure
      yield config
    end

    delegate :host, :port, :spec_dir, :spec_matcher, :application, :driver, :runner_port, :formatters, :to => :config

    def spec_root
      [config.spec_dir].flatten.map {|d| File.join(Rails.root, d)}
    end

    def spec_paths
      spec_root.flat_map do |root|
        # Support Sprockets 2.x
        if Rails.application.assets.respond_to?(:each_entry)
          paths = Rails.application.assets.each_entry(root).find_all { |pathname|
            config.spec_matcher === pathname.basename.to_s &&
            (pathname.extname == '.js' || Tilt[pathname]) &&
            Rails.application.assets.content_type_of(pathname) == 'application/javascript'
          }
        # Sprockets 3
        elsif Rails.application.assets.respond_to?(:each_file)
          paths = Rails.application.assets.each_file.find_all { |path|
            pathname = Pathname.new(path)
            config.spec_matcher === pathname.basename.to_s &&
              (pathname.extname == '.js' || Tilt[pathname])
          }
        else
          raise NotImplementedError.new("Konacha is not compatible with the version of Sprockets used by your application.")
        end
        paths.map { |pathname|
          pathname.to_s.gsub(File.join(root, ''), '')
        }.sort
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
konacha-3.5.1 lib/konacha.rb
konacha-3.5.0 lib/konacha.rb