rspec-preloader 1.0.1 → 1.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: 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: