lib/guard/rspec/inspector.rb in guard-rspec-0.1.9 vs lib/guard/rspec/inspector.rb in guard-rspec-0.2.0
- old
+ new
@@ -1,41 +1,41 @@
module Guard
class RSpec
module Inspector
class << self
-
+
def clean(paths)
paths.uniq!
paths.compact!
- paths = paths.select { |p| spec_file?(p) || spec_folder?(p) }
- paths = paths.delete_if { |p| included_in_other_path?(p, paths) }
- clear_spec_files_list
- paths
+ clear_spec_files_list_after do
+ paths = paths.select { |p| spec_file?(p) || spec_folder?(p) }
+ end
+ paths.reject { |p| included_in_other_path?(p, paths) }
end
-
+
private
-
- def spec_folder?(path)
- path.match(/^\/?spec/) && !path.match(/\..+$/)
- end
-
+
def spec_file?(path)
spec_files.include?(path)
end
-
+
+ def spec_folder?(path)
+ path.match(%r{^spec[^\.]*$})
+ end
+
def spec_files
- @spec_files ||= Dir.glob("spec/**/*_spec.rb")
+ @spec_files ||= Dir["spec/**/*_spec.rb"]
end
-
- def clear_spec_files_list
+
+ def clear_spec_files_list_after
+ yield
@spec_files = nil
end
-
+
def included_in_other_path?(path, paths)
- paths = paths.select { |p| p != path }
- paths.any? { |p| path.include?(p) && (path.gsub(p, '')).include?("/") }
+ (paths - [path]).any? { |p| path.include?(p) && path.sub(p, '').include?('/') }
end
-
+
end
end
end
-end
\ No newline at end of file
+end