rspec-preloader 1.0.1 → 1.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: 8d0be385e48859b799b428a1beb5b88a16ca04fb
4
- data.tar.gz: 694ee23de1dff2914f34d796a70533137126a1fb
3
+ metadata.gz: ca688386bc79e453291f02876ab1c32bd87d0b84
4
+ data.tar.gz: 900152d6cde6d2c6b955bb3b2719e76f2ef26b66
5
5
  SHA512:
6
- metadata.gz: c271af020156746d278baf19f8ed84d254c263acef586bb028df084a3ad1c5654ebd514f69b92370e235f513c64892e3e5b827643f4dec90cb88df6e46a6d108
7
- data.tar.gz: cc6835fb9268744fcaf16777b689ec680f9923726e2114986a095c691dc816182f548727899f71c41a4bc892bdbc3837d04526a48975f8c42057978b8b8b0112
6
+ metadata.gz: 6719c5bc7bfc0889d18cb33e500211cecc7cbd286d959303ad634555976f2d0dd133daee80a7f6ad3cf47ffca42083005d366309ea2a4401667554cb62ce81d1
7
+ data.tar.gz: 343ed013789dacf8cf68a17a57ace9a68b6e9f783e220a7343ddcdf69dd4a6b4e54245100b76764e88218841a81e9b13e9b4e10b417de792de657a939a55e795
@@ -2,4 +2,4 @@
2
2
 
3
3
  require_relative "../lib/rspec_preloader"
4
4
 
5
- RspecPreloader.run_server(ARGV)
5
+ RspecPreloader.run(ARGV)
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative "../lib/rspec_preloader"
4
+
5
+ RspecPreloader.run_client(ARGV)
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative "../lib/rspec_preloader"
4
+
5
+ RspecPreloader.run_server
@@ -1,49 +1,41 @@
1
- require "rspec/core"
2
- require "readline"
3
- require_relative "rspec_preloader/spec_runner"
1
+ require_relative "rspec_preloader/command_line"
2
+ require_relative "rspec_preloader/server"
3
+ require_relative "rspec_preloader/client"
4
4
 
5
5
  class RspecPreloader
6
6
 
7
- def self.run_server(rspec_arguments = [""])
8
- new(rspec_arguments).run_server
7
+ def self.run(rspec_arguments = nil)
8
+ setup
9
+ CommandLine.run(rspec_arguments)
9
10
  end
10
11
 
11
- def initialize(rspec_arguments)
12
- @rspec_arguments = rspec_arguments
12
+ def self.run_server
13
+ setup
14
+ Server.run
13
15
  end
14
16
 
15
- def run_server
17
+ def self.run_client(rspec_arguments)
18
+ Client.run(rspec_arguments)
19
+ end
20
+
21
+ private
22
+
23
+ def self.setup
24
+ trap_int_signal
25
+ load_spec_helper
26
+ end
27
+
28
+ def self.trap_int_signal
16
29
  trap("INT") do
17
30
  puts "Shutting down rspec-preloader"
18
31
  exit
19
32
  end
20
- load_spec_helper
21
-
22
- first_run
23
- server_loop
24
33
  end
25
34
 
26
- private
27
-
28
- def load_spec_helper
35
+ def self.load_spec_helper
29
36
  print "Loading spec_helper..."
30
37
  require "#{Dir.pwd}/spec/spec_helper"
31
38
  puts "done."
32
39
  end
33
40
 
34
- def first_run
35
- return if @rspec_arguments == ""
36
- Readline::HISTORY << @rspec_arguments.join(" ")
37
- SpecRunner.run_rspec(@rspec_arguments)
38
- end
39
-
40
- def server_loop
41
- loop do
42
- rspec_arguments = Readline.readline("rspec > ", true)
43
- break if [nil, "exit"].include?(rspec_arguments)
44
- rspec_arguments_array = rspec_arguments.chomp.split(" ")
45
- SpecRunner.run_rspec(rspec_arguments_array)
46
- end
47
- end
48
-
49
41
  end
@@ -0,0 +1,15 @@
1
+ require 'drb/drb'
2
+ require_relative 'server'
3
+
4
+ class RspecPreloader
5
+ class Client
6
+
7
+ def self.run(rspec_arguments)
8
+ DRb.start_service
9
+
10
+ rspec_runner = DRbObject.new_with_uri(SERVER_URI)
11
+ rspec_runner.run_rspec(rspec_arguments, STDERR, STDOUT)
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,37 @@
1
+ require "readline"
2
+ require_relative "spec_runner"
3
+
4
+ class RspecPreloader
5
+ class CommandLine
6
+ def self.run(rspec_arguments = [''])
7
+ new(rspec_arguments).run
8
+ end
9
+
10
+ def initialize(rspec_arguments)
11
+ @rspec_arguments = rspec_arguments
12
+ end
13
+
14
+ def run
15
+ first_run
16
+ command_line_loop
17
+ end
18
+
19
+ private
20
+
21
+ def first_run
22
+ return if @rspec_arguments == ""
23
+ Readline::HISTORY << @rspec_arguments.join(" ")
24
+ SpecRunner.run_rspec(@rspec_arguments)
25
+ end
26
+
27
+ def command_line_loop
28
+ loop do
29
+ rspec_arguments = Readline.readline("rspec > ", true)
30
+ break if [nil, "exit"].include?(rspec_arguments)
31
+ rspec_arguments_array = rspec_arguments.chomp.split(" ")
32
+ SpecRunner.run_rspec(rspec_arguments_array)
33
+ end
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,16 @@
1
+ require 'drb/drb'
2
+
3
+ class RspecPreloader
4
+
5
+ SERVER_URI = "druby://localhost:8787"
6
+
7
+ class Server
8
+
9
+ $SAFE = 1 # disable eval() and friends
10
+
11
+ def self.run
12
+ DRb.start_service(SERVER_URI, SpecRunner)
13
+ DRb.thread.join
14
+ end
15
+ end
16
+ end
@@ -1,14 +1,17 @@
1
+ require "rspec/core"
1
2
  require_relative "file_selector"
2
3
 
3
4
  class RspecPreloader
4
5
  class SpecRunner
5
6
 
6
- def self.run_rspec(rspec_arguments_array)
7
- new(rspec_arguments_array).run_rspec
7
+ def self.run_rspec(rspec_arguments_array, std_err = STDERR, std_out = STDOUT)
8
+ new(rspec_arguments_array, std_err, std_out).run_rspec
8
9
  end
9
10
 
10
- def initialize(rspec_arguments_array)
11
+ def initialize(rspec_arguments_array, std_err, std_out)
11
12
  @rspec_arguments = rspec_arguments_array
13
+ @std_err = std_err
14
+ @std_out = std_out
12
15
  end
13
16
 
14
17
  def run_rspec
@@ -28,7 +31,7 @@ class RspecPreloader
28
31
  end
29
32
 
30
33
  def run_specs(arguments_array)
31
- RSpec::Core::Runner.run(arguments_array, STDERR, STDOUT)
34
+ RSpec::Core::Runner.run(arguments_array, @std_err, @std_out)
32
35
  end
33
36
 
34
37
  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: 1.0.1
4
+ version: 1.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-10-28 00:00:00.000000000 Z
11
+ date: 2015-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -56,12 +56,19 @@ description: Life is too short to be waiting for your tests to load.
56
56
  email: victor.mours@gmail.com
57
57
  executables:
58
58
  - rspec-preloader
59
+ - rspec-preloader-server
60
+ - rspec-preloader-client
59
61
  extensions: []
60
62
  extra_rdoc_files: []
61
63
  files:
62
64
  - bin/rspec-preloader
65
+ - bin/rspec-preloader-client
66
+ - bin/rspec-preloader-server
63
67
  - lib/rspec_preloader.rb
68
+ - lib/rspec_preloader/client.rb
69
+ - lib/rspec_preloader/command_line.rb
64
70
  - lib/rspec_preloader/file_selector.rb
71
+ - lib/rspec_preloader/server.rb
65
72
  - lib/rspec_preloader/spec_runner.rb
66
73
  homepage: https://github.com/victormours/rspec-preloader
67
74
  licenses: