rspec-preloader 0.0.4 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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