rspec-preloader 0.0.2

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e6ba54dd428b04b5646e0a2398697bd3b304dfcf
4
+ data.tar.gz: 5450e031f1010df33cbbdf5022650f8a56954452
5
+ SHA512:
6
+ metadata.gz: 0cfbfcd6f8337a0d1f8ca89c175e666a2706eb18b205fa1190bdd3b127c7681ca8036b6c989e7e1397597130a458709514b73b31874dca2d0974558cf19f10c9
7
+ data.tar.gz: 7a450ed60fb80622dbf85efc94a5280a7f4c0ddfff3aff381318a70abd530875138ea174cf965a68664e8fef52d2226967fedc19482409b15dc31e4f7bd5e137
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative "../lib/rspec_preloader"
4
+
5
+ RspecPreloader.run_server(ARGV)
@@ -0,0 +1,69 @@
1
+ require "rspec/core"
2
+ require_relative "rspec_preloader/file_watcher"
3
+
4
+ class RspecPreloader
5
+
6
+ def self.run_server(rspec_arguments = [""])
7
+ new(rspec_arguments).run_server
8
+ end
9
+
10
+ def initialize(rspec_arguments)
11
+ @rspec_arguments = rspec_arguments
12
+ end
13
+
14
+ def run_server
15
+ initial_prompt
16
+ first_run
17
+ server_loop
18
+ end
19
+
20
+ private
21
+
22
+ def initial_prompt
23
+ puts "Starting Rspec preloader server"
24
+ puts "Press Ctrl-C to stop"
25
+ end
26
+
27
+ 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)
37
+ end
38
+
39
+ def server_loop
40
+ trap("INT") do
41
+ puts "Shutting down Rspec server"
42
+ exit
43
+ end
44
+
45
+ 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)
56
+ end
57
+ end
58
+
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
+ end
metadata ADDED
@@ -0,0 +1,103 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec-preloader
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Victor Mours
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
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
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: A preloader for your spec helper for faster TDD
70
+ email: victor.mours@gmail.com
71
+ executables:
72
+ - rspec-preloader
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - bin/rspec-preloader
77
+ - lib/rspec_preloader.rb
78
+ homepage: https://github.com/victormours/rspec-preloader
79
+ licenses:
80
+ - MIT
81
+ metadata: {}
82
+ post_install_message:
83
+ rdoc_options: []
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ requirements: []
97
+ rubyforge_project:
98
+ rubygems_version: 2.2.2
99
+ signing_key:
100
+ specification_version: 4
101
+ summary: A faster way to run your specs.
102
+ test_files: []
103
+ has_rdoc: