rspec-preloader 0.1.0 → 1.0.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: 622d560d33d0a0dae1dbfd1c1c0f95515c4332f1
4
- data.tar.gz: 6cc57c8b410fd9584d404dfd44b954daad64fdd9
3
+ metadata.gz: 721ffb5be5ecb80dbda1b8352e8b0629e6a1afe0
4
+ data.tar.gz: 5ede75887eddd487955cd0014114b4ffbff031cd
5
5
  SHA512:
6
- metadata.gz: 1962fb0fc7c998adecacfaad3484879b7dbd7021df7f0a444969b2d393d19bd06ce6edd43a1010e9e9be1a413ae058543c9da9c2cd0d938c054446f526e5d6c7
7
- data.tar.gz: ba2c8fc91450e48e7cb1bb3877dfbdfdc91269e65d40cadccef42aa16968cc232f08a601182b6d1a01c39d7c9119d8a1f70fbdb616812d05102ba11e13ec825d
6
+ metadata.gz: 3d4b6846ed83903a946c0951f61cfa9f64fc1fb1805ffa22de47d51a5ad597ddd2a785e01a6ecb0f22074e69f54f965e9dfb05d91cce2aebb55c60f4ee640966
7
+ data.tar.gz: fc5c17639b8f7e732b1f9c305b01e96df81af9a5bf07feab348b11cd7ca978a553835b6fe3ad0c035d3997c5524f55fcb98303d7260422b50a53e2bf714bd0e7
@@ -0,0 +1,40 @@
1
+ class FileSelector
2
+ def self.updated_source_files
3
+ new.updated_source_files
4
+ end
5
+
6
+ def updated_source_files
7
+ all_updated_files.select do |filename|
8
+ filename.include?('app/') || filename.include?('lib/')
9
+ end.select do |filename|
10
+ filename.end_with?('.rb')
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def all_updated_files
17
+ file_statuses_and_names.select do |file_status_and_name|
18
+ updated_files_statuses.include? file_status_and_name.first
19
+ end
20
+ .map(&:last)
21
+ end
22
+
23
+ def updated_files_statuses
24
+ ['M', 'MM', 'A', '??']
25
+ end
26
+
27
+ def file_statuses_and_names
28
+ git_status_lines.map do |git_status_line|
29
+ git_status_line.split(' ')
30
+ end
31
+ end
32
+
33
+ def git_status_lines
34
+ git_status.split("\n")
35
+ end
36
+
37
+ def git_status
38
+ `git status --porcelain`
39
+ end
40
+ end
@@ -1,5 +1,7 @@
1
+ require_relative "file_selector"
2
+
1
3
  class RspecPreloader
2
- class RspecRunner
4
+ class SpecRunner
3
5
 
4
6
  def self.run_rspec(rspec_arguments_array)
5
7
  new(rspec_arguments_array).run_rspec
@@ -11,7 +13,7 @@ class RspecPreloader
11
13
 
12
14
  def run_rspec
13
15
  pid = fork do
14
- load_changed_files
16
+ load_updated_files
15
17
  run_specs(@rspec_arguments)
16
18
  end
17
19
  Process.wait(pid)
@@ -19,8 +21,8 @@ class RspecPreloader
19
21
 
20
22
  private
21
23
 
22
- def load_changed_files
23
- FileWatcher.changed_files.each do |file|
24
+ def load_updated_files
25
+ FileSelector.updated_source_files.each do |file|
24
26
  load file
25
27
  end
26
28
  end
@@ -1,7 +1,6 @@
1
1
  require "rspec/core"
2
2
  require "readline"
3
- require_relative "rspec_preloader/file_watcher"
4
- require_relative "rspec_preloader/rspec_runner"
3
+ require_relative "rspec_preloader/spec_runner"
5
4
 
6
5
  class RspecPreloader
7
6
 
@@ -27,15 +26,15 @@ class RspecPreloader
27
26
  private
28
27
 
29
28
  def load_spec_helper
30
- puts "Loading spec_helper..."
29
+ print "Loading spec_helper..."
31
30
  require "#{Dir.pwd}/spec/spec_helper"
32
- puts "Done!"
31
+ puts "done."
33
32
  end
34
33
 
35
34
  def first_run
36
35
  return if @rspec_arguments == ""
37
36
  Readline::HISTORY << @rspec_arguments.join(" ")
38
- RspecRunner.run_rspec(@rspec_arguments)
37
+ SpecRunner.run_rspec(@rspec_arguments)
39
38
  end
40
39
 
41
40
  def server_loop
@@ -43,7 +42,7 @@ class RspecPreloader
43
42
  rspec_arguments = Readline.readline("rspec > ", true)
44
43
  break if [nil, "exit"].include?(rspec_arguments)
45
44
  rspec_arguments_array = rspec_arguments.chomp.split(" ")
46
- RspecRunner.run_rspec(rspec_arguments_array)
45
+ SpecRunner.run_rspec(rspec_arguments_array)
47
46
  end
48
47
  end
49
48
 
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.1.0
4
+ version: 1.0.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-08-25 00:00:00.000000000 Z
11
+ date: 2014-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
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
27
  - !ruby/object:Gem::Dependency
42
28
  name: minitest
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -75,8 +61,8 @@ extra_rdoc_files: []
75
61
  files:
76
62
  - bin/rspec-preloader
77
63
  - lib/rspec_preloader.rb
78
- - lib/rspec_preloader/file_watcher.rb
79
- - lib/rspec_preloader/rspec_runner.rb
64
+ - lib/rspec_preloader/file_selector.rb
65
+ - lib/rspec_preloader/spec_runner.rb
80
66
  homepage: https://github.com/victormours/rspec-preloader
81
67
  licenses:
82
68
  - MIT
@@ -100,6 +86,6 @@ rubyforge_project:
100
86
  rubygems_version: 2.2.2
101
87
  signing_key:
102
88
  specification_version: 4
103
- summary: A git backed preloader for rspec
89
+ summary: Start Rspec instantly
104
90
  test_files: []
105
91
  has_rdoc:
@@ -1,21 +0,0 @@
1
- require "git"
2
-
3
- class FileWatcher
4
- def self.changed_files
5
- new.changed_files
6
- end
7
-
8
- def changed_files
9
- git.status.changed.keys.select do |filename|
10
- /.rb$/.match(filename)
11
- end.reject do |filename|
12
- /spec\//.match(filename)
13
- end
14
- end
15
-
16
- private
17
-
18
- def git
19
- @git ||= Git.open(Dir.pwd)
20
- end
21
- end