Sha256: 82c2797496aa62d4ed0f965036fafe65811a9ee9e7357f3ec2f876696ce6b6c1

Contents?: true

Size: 1.31 KB

Versions: 5

Compression:

Stored size: 1.31 KB

Contents

module JsTestCore
  module Resources
    module Specs
      class SpecDirSuperclass < ::JsTestCore::Resources::Dir
        def get
          raise NotImplementedError, "#{self.class}#get needs to be implemented"
        end
      end

      class SpecDir < SpecDirSuperclass
        def spec_files
          glob("/**/*_spec.js")
        end

        route ANY do |env, name|
          if result = (file(name) || subdir(name) || spec_file(name))
            result
          else
            base_path = "#{relative_path}/#{name}"
            raise "No file or directory found at #{base_path} or spec found at #{base_path}.js."
          end
        end

        protected

        def subdir(name)
          absolute_path, relative_path = determine_child_paths(name)
          if ::File.directory?(absolute_path)
            SpecDir.new(env.merge(:absolute_path => absolute_path, :relative_path => relative_path))
          else
            nil
          end
        end

        def spec_file(name)
          absolute_path, relative_path = determine_child_paths("#{name}.js")
          if ::File.exists?(absolute_path) && !::File.directory?(absolute_path)
            SpecFile.new(env.merge(:absolute_path => absolute_path, :relative_path => relative_path))
          else
            nil
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 3 rubygems

Version Path
js_spec-0.3.2 vendor/js-test-core/lib/js_test_core/resources/specs/spec_dir.rb
js_spec-0.3.3 vendor/js-test-core/lib/js_test_core/resources/specs/spec_dir.rb
js_test_core-0.2.0 lib/js_test_core/resources/specs/spec_dir.rb
screw-unit-0.3.3 vendor/js-test-core/lib/js_test_core/resources/specs/spec_dir.rb
screw-unit-0.3.1 vendor/js-test-core/lib/js_test_core/resources/specs/spec_dir.rb