Sha256: 964ed0f29ae05d038e4bb63935d90f890522a22daaa3f3a5d81d26ee9efdee7b

Contents?: true

Size: 1.32 KB

Versions: 18

Compression:

Stored size: 1.32 KB

Contents

module Guard
  class RSpec
    module Inspectors
      class BaseInspector
        attr_accessor :options, :spec_paths

        def initialize(options = {})
          @options = options
          @spec_paths = @options[:spec_paths]
        end

        def paths(paths)
          raise _abstract
        end

        def failed(locations)
          raise _abstract
        end

        def reload
          raise _abstract
        end

        private

        def _abstract
          'Must be implemented in subclass'
        end

        # Leave only spec/feature files from spec_paths, remove others
        def _clean(paths)
          paths.uniq!
          paths.compact!
          spec_dirs = _select_only_spec_dirs(paths)
          spec_files = _select_only_spec_files(paths)
          spec_dirs + spec_files
        end

        def _select_only_spec_dirs(paths)
          paths.select { |p| File.directory?(p) || spec_paths.include?(p) }
        end

        def _select_only_spec_files(paths)
          spec_files = spec_paths.collect { |path| Dir[File.join(path, "**{,/*/**}", "*[_.]spec.rb")] }
          feature_files = spec_paths.collect { |path| Dir[File.join(path, "**{,/*/**}", "*.feature")] }
          files = (spec_files + feature_files).flatten
          paths.select { |p| files.include?(p) }
        end
      end
    end
  end
end

Version data entries

18 entries across 16 versions & 2 rubygems

Version Path
honeybadger-2.4.0 vendor/gems/ruby/1.9.1/gems/guard-rspec-4.3.1/lib/guard/rspec/inspectors/base_inspector.rb
honeybadger-2.4.0 vendor/gems/ruby/2.2.0/gems/guard-rspec-4.3.1/lib/guard/rspec/inspectors/base_inspector.rb
honeybadger-2.4.0 vendor/gems/ruby/2.1.0/gems/guard-rspec-4.3.1/lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.3.1 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.3.0 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.10 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.9 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.8 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.7 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.6 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.5 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.4 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.3 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.2 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.1 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.2.0 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.1.1 lib/guard/rspec/inspectors/base_inspector.rb
guard-rspec-4.1.0 lib/guard/rspec/inspectors/base_inspector.rb