rspec-preloader 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 622d560d33d0a0dae1dbfd1c1c0f95515c4332f1
4
- data.tar.gz: 6cc57c8b410fd9584d404dfd44b954daad64fdd9
3
+ metadata.gz: 721ffb5be5ecb80dbda1b8352e8b0629e6a1afe0
4
+ data.tar.gz: 5ede75887eddd487955cd0014114b4ffbff031cd
5
5
  SHA512:
6
- metadata.gz: 1962fb0fc7c998adecacfaad3484879b7dbd7021df7f0a444969b2d393d19bd06ce6edd43a1010e9e9be1a413ae058543c9da9c2cd0d938c054446f526e5d6c7
7
- data.tar.gz: ba2c8fc91450e48e7cb1bb3877dfbdfdc91269e65d40cadccef42aa16968cc232f08a601182b6d1a01c39d7c9119d8a1f70fbdb616812d05102ba11e13ec825d
6
+ metadata.gz: 3d4b6846ed83903a946c0951f61cfa9f64fc1fb1805ffa22de47d51a5ad597ddd2a785e01a6ecb0f22074e69f54f965e9dfb05d91cce2aebb55c60f4ee640966
7
+ data.tar.gz: fc5c17639b8f7e732b1f9c305b01e96df81af9a5bf07feab348b11cd7ca978a553835b6fe3ad0c035d3997c5524f55fcb98303d7260422b50a53e2bf714bd0e7
@@ -0,0 +1,40 @@
1
+ class FileSelector
2
+ def self.updated_source_files
3
+ new.updated_source_files
4
+ end
5
+
6
+ def updated_source_files
7
+ all_updated_files.select do |filename|
8
+ filename.include?('app/') || filename.include?('lib/')
9
+ end.select do |filename|
10
+ filename.end_with?('.rb')
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def all_updated_files
17
+ file_statuses_and_names.select do |file_status_and_name|
18
+ updated_files_statuses.include? file_status_and_name.first
19
+ end
20
+ .map(&:last)
21
+ end
22
+
23
+ def updated_files_statuses
24
+ ['M', 'MM', 'A', '??']
25
+ end
26
+
27
+ def file_statuses_and_names
28
+ git_status_lines.map do |git_status_line|
29
+ git_status_line.split(' ')
30
+ end
31
+ end
32
+
33
+ def git_status_lines
34
+ git_status.split("\n")
35
+ end
36
+
37
+ def git_status
38
+ `git status --porcelain`
39
+ end
40
+ end
@@ -1,5 +1,7 @@
1
+ require_relative "file_selector"
2
+
1
3
  class RspecPreloader
2
- class RspecRunner
4
+ class SpecRunner
3
5
 
4
6
  def self.run_rspec(rspec_arguments_array)
5
7
  new(rspec_arguments_array).run_rspec
@@ -11,7 +13,7 @@ class RspecPreloader
11
13
 
12
14
  def run_rspec
13
15
  pid = fork do
14
- load_changed_files
16
+ load_updated_files
15
17
  run_specs(@rspec_arguments)
16
18
  end
17
19
  Process.wait(pid)
@@ -19,8 +21,8 @@ class RspecPreloader
19
21
 
20
22
  private
21
23
 
22
- def load_changed_files
23
- FileWatcher.changed_files.each do |file|
24
+ def load_updated_files
25
+ FileSelector.updated_source_files.each do |file|
24
26
  load file
25
27
  end
26
28
  end
@@ -1,7 +1,6 @@
1
1
  require "rspec/core"
2
2
  require "readline"
3
- require_relative "rspec_preloader/file_watcher"
4
- require_relative "rspec_preloader/rspec_runner"
3
+ require_relative "rspec_preloader/spec_runner"
5
4
 
6
5
  class RspecPreloader
7
6
 
@@ -27,15 +26,15 @@ class RspecPreloader
27
26
  private
28
27
 
29
28
  def load_spec_helper
30
- puts "Loading spec_helper..."
29
+ print "Loading spec_helper..."
31
30
  require "#{Dir.pwd}/spec/spec_helper"
32
- puts "Done!"
31
+ puts "done."
33
32
  end
34
33
 
35
34
  def first_run
36
35
  return if @rspec_arguments == ""
37
36
  Readline::HISTORY << @rspec_arguments.join(" ")
38
- RspecRunner.run_rspec(@rspec_arguments)
37
+ SpecRunner.run_rspec(@rspec_arguments)
39
38
  end
40
39
 
41
40
  def server_loop
@@ -43,7 +42,7 @@ class RspecPreloader
43
42
  rspec_arguments = Readline.readline("rspec > ", true)
44
43
  break if [nil, "exit"].include?(rspec_arguments)
45
44
  rspec_arguments_array = rspec_arguments.chomp.split(" ")
46
- RspecRunner.run_rspec(rspec_arguments_array)
45
+ SpecRunner.run_rspec(rspec_arguments_array)
47
46
  end
48
47
  end
49
48
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-preloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Mours
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-25 00:00:00.000000000 Z
11
+ date: 2014-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: git
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: minitest
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -75,8 +61,8 @@ extra_rdoc_files: []
75
61
  files:
76
62
  - bin/rspec-preloader
77
63
  - lib/rspec_preloader.rb
78
- - lib/rspec_preloader/file_watcher.rb
79
- - lib/rspec_preloader/rspec_runner.rb
64
+ - lib/rspec_preloader/file_selector.rb
65
+ - lib/rspec_preloader/spec_runner.rb
80
66
  homepage: https://github.com/victormours/rspec-preloader
81
67
  licenses:
82
68
  - MIT
@@ -100,6 +86,6 @@ rubyforge_project:
100
86
  rubygems_version: 2.2.2
101
87
  signing_key:
102
88
  specification_version: 4
103
- summary: A git backed preloader for rspec
89
+ summary: Start Rspec instantly
104
90
  test_files: []
105
91
  has_rdoc:
@@ -1,21 +0,0 @@
1
- require "git"
2
-
3
- class FileWatcher
4
- def self.changed_files
5
- new.changed_files
6
- end
7
-
8
- def changed_files
9
- git.status.changed.keys.select do |filename|
10
- /.rb$/.match(filename)
11
- end.reject do |filename|
12
- /spec\//.match(filename)
13
- end
14
- end
15
-
16
- private
17
-
18
- def git
19
- @git ||= Git.open(Dir.pwd)
20
- end
21
- end