rspec-preloader 0.0.4 → 0.1.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: 2f4b62db81e1ee577a35876c1902c8b690a052dd
4
- data.tar.gz: 02292b5d6ea5e26fb6f8d2ac44df223a13291df1
3
+ metadata.gz: 622d560d33d0a0dae1dbfd1c1c0f95515c4332f1
4
+ data.tar.gz: 6cc57c8b410fd9584d404dfd44b954daad64fdd9
5
5
  SHA512:
6
- metadata.gz: 6bd3d670f79165c57727c36e34c24700fc27d9473d9072a6d9dc996a3da854feeac1f979476dd01e5c4cc6f579b17ea59ae39084e5b1d4a4f2db6df39d089675
7
- data.tar.gz: f1308ddc7812c89b370bc7e6b3874237cf55e17966f1def87d9062090fe10d54e801325c13888d7b0b1ddac2a98ebf95f1e09a22f2e031dd7d9547127ab8d50e
6
+ metadata.gz: 1962fb0fc7c998adecacfaad3484879b7dbd7021df7f0a444969b2d393d19bd06ce6edd43a1010e9e9be1a413ae058543c9da9c2cd0d938c054446f526e5d6c7
7
+ data.tar.gz: ba2c8fc91450e48e7cb1bb3877dfbdfdc91269e65d40cadccef42aa16968cc232f08a601182b6d1a01c39d7c9119d8a1f70fbdb616812d05102ba11e13ec825d
@@ -1,5 +1,7 @@
1
1
  require "rspec/core"
2
+ require "readline"
2
3
  require_relative "rspec_preloader/file_watcher"
4
+ require_relative "rspec_preloader/rspec_runner"
3
5
 
4
6
  class RspecPreloader
5
7
 
@@ -12,58 +14,37 @@ class RspecPreloader
12
14
  end
13
15
 
14
16
  def run_server
15
- initial_prompt
17
+ trap("INT") do
18
+ puts "Shutting down rspec-preloader"
19
+ exit
20
+ end
21
+ load_spec_helper
22
+
16
23
  first_run
17
24
  server_loop
18
25
  end
19
26
 
20
27
  private
21
28
 
22
- def initial_prompt
23
- puts "Starting Rspec preloader server"
24
- puts "Press Ctrl-C to stop"
29
+ def load_spec_helper
30
+ puts "Loading spec_helper..."
31
+ require "#{Dir.pwd}/spec/spec_helper"
32
+ puts "Done!"
25
33
  end
26
34
 
27
35
  def first_run
28
- return if @rspec_arguments == [""]
29
- pid = fork do
30
- require "#{Dir.pwd}/spec/spec_helper"
31
- FileWatcher.changed_files.each do |file|
32
- load file
33
- end
34
- run_specs(@rspec_arguments)
35
- end
36
- Process.wait(pid)
36
+ return if @rspec_arguments == ""
37
+ Readline::HISTORY << @rspec_arguments.join(" ")
38
+ RspecRunner.run_rspec(@rspec_arguments)
37
39
  end
38
40
 
39
41
  def server_loop
40
- trap("INT") do
41
- puts "Shutting down Rspec server"
42
- exit
43
- end
44
-
45
42
  loop do
46
- pid = fork do
47
- require "#{Dir.pwd}/spec/spec_helper"
48
- puts "Ready to run specs"
49
- @rspec_arguments = read_rspec_arguments
50
- FileWatcher.changed_files.each do |file|
51
- load file
52
- end
53
- run_specs(@rspec_arguments)
54
- end
55
- Process.wait(pid)
43
+ rspec_arguments = Readline.readline("rspec > ", true)
44
+ break if [nil, "exit"].include?(rspec_arguments)
45
+ rspec_arguments_array = rspec_arguments.chomp.split(" ")
46
+ RspecRunner.run_rspec(rspec_arguments_array)
56
47
  end
57
48
  end
58
49
 
59
- def run_specs(arguments_array)
60
- puts "Running $ rspec #{arguments_array.join(" ")}"
61
- RSpec::Core::Runner.run(arguments_array, STDERR, STDOUT)
62
- end
63
-
64
- def read_rspec_arguments
65
- user_input = STDIN.gets.chomp.split(" ")
66
- user_input == [] ? @rspec_arguments : user_input
67
- end
68
-
69
50
  end
@@ -9,7 +9,7 @@ class FileWatcher
9
9
  git.status.changed.keys.select do |filename|
10
10
  /.rb$/.match(filename)
11
11
  end.reject do |filename|
12
- /_spec.rb/.match(filename)
12
+ /spec\//.match(filename)
13
13
  end
14
14
  end
15
15
 
@@ -0,0 +1,33 @@
1
+ class RspecPreloader
2
+ class RspecRunner
3
+
4
+ def self.run_rspec(rspec_arguments_array)
5
+ new(rspec_arguments_array).run_rspec
6
+ end
7
+
8
+ def initialize(rspec_arguments_array)
9
+ @rspec_arguments = rspec_arguments_array
10
+ end
11
+
12
+ def run_rspec
13
+ pid = fork do
14
+ load_changed_files
15
+ run_specs(@rspec_arguments)
16
+ end
17
+ Process.wait(pid)
18
+ end
19
+
20
+ private
21
+
22
+ def load_changed_files
23
+ FileWatcher.changed_files.each do |file|
24
+ load file
25
+ end
26
+ end
27
+
28
+ def run_specs(arguments_array)
29
+ RSpec::Core::Runner.run(arguments_array, STDERR, STDOUT)
30
+ end
31
+
32
+ end
33
+ end
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.0.4
4
+ version: 0.1.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-06-20 00:00:00.000000000 Z
11
+ date: 2014-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -76,6 +76,7 @@ files:
76
76
  - bin/rspec-preloader
77
77
  - lib/rspec_preloader.rb
78
78
  - lib/rspec_preloader/file_watcher.rb
79
+ - lib/rspec_preloader/rspec_runner.rb
79
80
  homepage: https://github.com/victormours/rspec-preloader
80
81
  licenses:
81
82
  - MIT