Sha256: 30e308cb78b1c7dcdd092fd0ac791348329ca7e532cf7e686d233b2aad6ee014

Contents?: true

Size: 1.57 KB

Versions: 3

Compression:

Stored size: 1.57 KB

Contents

require 'jasmine-core'

module Lanes
    module API


        class TestSpecs

            cattr_accessor :current

            attr_accessor :extension
            def initialize(ext)
                @extension = ext
            end

            def css_files
                urlpath Jasmine::Core.css_files
            end

            def js_files
                [ '/assets/lanes/testing' ] +
                urlpath(Jasmine::Core.js_files)   +
                urlpath(Jasmine::Core.boot_files) +
                urlpath(spec_files(extension.identifier))
            end

          private

            def spec_files(path)
                dir = extension.root_path.join("spec")
                regex = /^#{dir}\//
                Dir.glob( dir.join(path,"**/*.{coffee,js}") ).map do |file|
                    file.sub(regex,'').sub(/coffee$/,'js')
                end
            end

            def urlpath(files)
                files.map{ |file| "/spec/"+file }
            end
        end

        ext = Extensions.controlling
        TestSpecs.current = TestSpecs.new(ext)
        Root.sprockets.append_path(ext.root_path.join("spec"))
        Root.sprockets.append_path(Jasmine::Core.path)

        routes.draw do

            get '/spec' do
                content_type 'text/html'
                erb :specs, locals: { specs: TestSpecs.current }
            end

            get "/spec/*" do |path|
                env_sprockets = request.env.dup
                env_sprockets['PATH_INFO'] = path
                settings.sprockets.call env_sprockets
            end

        end
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lanes-0.1.8 lib/lanes/api/test_specs.rb
lanes-0.1.7 lib/lanes/api/test_specs.rb
lanes-0.1.6 lib/lanes/api/test_specs.rb