devloop 0.0.5 → 0.0.7

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
  SHA256:
3
- metadata.gz: 1956ee28a62a8d00af2f447152d03bda7c72442c634761341b9438884330122f
4
- data.tar.gz: 06ced44c774abafcb87fdc318221efc61602c005ec0233bf98426435d0604986
3
+ metadata.gz: 329272a8c3033e7d6d4cb63d2ca284b87f8d4883e64fc613ad00e2f2eaf7ca8b
4
+ data.tar.gz: 3fa337ca6600ffd440c53170ed6d1aa59cdf09207d64738c8248cf3f027e2ab6
5
5
  SHA512:
6
- metadata.gz: cdccae7324bc0916b4ccc97078ff53011344597dd55c8b3bca1c63f798f1eff427aa5c1bac452059dd95981f3599cf41817ae24683523a96789d9cfcc209e344
7
- data.tar.gz: f7a5c88b04a19f17505eeb661e093587b21c2477342da2927907e820095aea1157eb512ec0e09df87f40fcd05ffd0340554eb069476e08bfa79876c69f9b6675
6
+ metadata.gz: 48664a8ba229cd1730994c47d60f1a1f0fcb7e225f038c6903ae17125f27ae3091b8ef75d75558932b21e6e82ad15e5e3de47fdfc337450b15dacf3b88644a29
7
+ data.tar.gz: c75e9d90a51e8aa003e0f069490004957241dbc54543fe202058efd82ab943678b094d7ff45f2a1aad44fd31240f9d7c656b8b7e08a8fa9f2f4432f37596ae21
data/bin/devloop CHANGED
@@ -5,6 +5,7 @@ $LOAD_PATH.unshift(File.dirname(__FILE__) + "/../lib") unless $LOAD_PATH.include
5
5
  require "devloop"
6
6
 
7
7
  begin
8
+ system("bundle exec spring > /dev/null 2>&1")
8
9
  system("bundle exec devloop_run")
9
10
  puts "Devloop: watching for changes in spec directory..."
10
11
  system("fswatch -e '.*' -i '\.rb$' #{Dir.pwd} | xargs -n1 -I{} bundle exec devloop_run")
@@ -5,18 +5,31 @@ module Devloop
5
5
  end
6
6
 
7
7
  def call(diff)
8
- lines = diff.split("\n")
9
- results = []
10
- file = ""
11
- lines.each_with_index do |line, index|
8
+ _, results = diff.split("\n").reduce(["", []]) do |(file, results), line|
12
9
  if line.start_with?("+++ b/")
13
- file = line[6..-1]
10
+ [line[6..-1], results]
14
11
  elsif line.start_with?("@@ -")
15
12
  line_number = line.match(/@@ -(\d+)/)[1]
16
- results << "#{file}:#{line_number}"
13
+ [file, results << "#{relative_path(file)}:#{line_number}"]
14
+ else
15
+ [file, results]
17
16
  end
18
17
  end
19
18
  results
20
19
  end
20
+
21
+ private
22
+
23
+ def relative_path(path)
24
+ path.gsub(project_path, "")
25
+ end
26
+
27
+ def project_path
28
+ @project_path ||= Dir.pwd.gsub("#{git_root_path}/", "") + "/"
29
+ end
30
+
31
+ def git_root_path
32
+ @git_root_path ||= `git rev-parse --show-toplevel`.strip
33
+ end
21
34
  end
22
35
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Devloop
4
- VERSION = "0.0.5"
4
+ VERSION = "0.0.7"
5
5
  end
@@ -4,46 +4,73 @@ require "spec_helper"
4
4
  require "devloop/diff_parser"
5
5
 
6
6
  describe Devloop::DiffParser do
7
- let(:diff1) do
8
- <<~DIFF
9
- diff --git a/spec/models/team_spec.rb b/spec/models/team_spec.rb
10
- index 19772f2a..a32824f9 100644
11
- --- a/spec/models/team_spec.rb
12
- +++ b/spec/models/team_spec.rb
13
- @@ -10,2 +10,2 @@ describe Team do
14
- - it "has a valid factory" do
15
- - expect(team).to be_valid
16
- + it "has valid factory" do
17
- + expect(team).not_to be_valid
18
- diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
19
- index 410ffa8c..610d9e19 100644
20
- --- a/spec/models/user_spec.rb
21
- +++ b/spec/models/user_spec.rb
22
- @@ -167 +167 @@ describe User do
23
- - web_auth_token_generated_at: 50.minutes.ago,
24
- + web_auth_token_generated_at: 10.minutes.ago,
25
- DIFF
26
- end
7
+ context "when the project root is the same as git root" do
8
+ let(:diff1) do
9
+ <<~DIFF
10
+ diff --git a/spec/models/team_spec.rb b/spec/models/team_spec.rb
11
+ index 19772f2a..a32824f9 100644
12
+ --- a/spec/models/team_spec.rb
13
+ +++ b/spec/models/team_spec.rb
14
+ @@ -10,2 +10,2 @@ describe Team do
15
+ - it "has a valid factory" do
16
+ - expect(team).to be_valid
17
+ + it "has valid factory" do
18
+ + expect(team).not_to be_valid
19
+ diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
20
+ index 410ffa8c..610d9e19 100644
21
+ --- a/spec/models/user_spec.rb
22
+ +++ b/spec/models/user_spec.rb
23
+ @@ -167 +167 @@ describe User do
24
+ - web_auth_token_generated_at: 50.minutes.ago,
25
+ + web_auth_token_generated_at: 10.minutes.ago,
26
+ DIFF
27
+ end
28
+
29
+ let(:diff2) do
30
+ <<~DIFF
31
+ diff --git a/spec/models/team_spec.rb b/spec/models/team_spec.rb
32
+ index 19772f2a..9f614e20 100644
33
+ --- a/spec/models/team_spec.rb
34
+ +++ b/spec/models/team_spec.rb
35
+ @@ -19 +19 @@ describe Team do
36
+ - it "has_many emojis" do
37
+ + it "has_many eojis" do
38
+ @@ -24,2 +24,2 @@ describe Team do
39
+ - describe "normalize attributes" do
40
+ - it "does not allow empty string values" do
41
+ + describe "normalize attrbtes" do
42
+ + it "does not allw empty sting values" do
43
+ DIFF
44
+ end
27
45
 
28
- let(:diff2) do
29
- <<~DIFF
30
- diff --git a/spec/models/team_spec.rb b/spec/models/team_spec.rb
31
- index 19772f2a..9f614e20 100644
32
- --- a/spec/models/team_spec.rb
33
- +++ b/spec/models/team_spec.rb
34
- @@ -19 +19 @@ describe Team do
35
- - it "has_many emojis" do
36
- + it "has_many eojis" do
37
- @@ -24,2 +24,2 @@ describe Team do
38
- - describe "normalize attributes" do
39
- - it "does not allow empty string values" do
40
- + describe "normalize attrbtes" do
41
- + it "does not allw empty sting values" do
42
- DIFF
46
+ it "parses the diff correctly" do
47
+ expect(Devloop::DiffParser.call(diff1)).to eq(["spec/models/team_spec.rb:10", "spec/models/user_spec.rb:167"])
48
+ expect(Devloop::DiffParser.call(diff2)).to eq(["spec/models/team_spec.rb:19", "spec/models/team_spec.rb:24"])
49
+ end
43
50
  end
44
51
 
45
- it "parses the diff correctly" do
46
- expect(Devloop::DiffParser.call(diff1)).to eq(["spec/models/team_spec.rb:10", "spec/models/user_spec.rb:167"])
47
- expect(Devloop::DiffParser.call(diff2)).to eq(["spec/models/team_spec.rb:19", "spec/models/team_spec.rb:24"])
52
+ context "when the project root is different from the git root" do
53
+ let(:diff) do
54
+ <<~DIFF
55
+ diff --git a/src/spec/models/team_spec.rb b/src/spec/models/team_spec.rb
56
+ index 19772f2a..9f614e20 100644
57
+ --- a/src/spec/models/team_spec.rb
58
+ +++ b/src/spec/models/team_spec.rb
59
+ @@ -19 +19 @@ describe Team do
60
+ - it "has_many emojis" do
61
+ + it "has_many eojis" do
62
+ @@ -24,2 +24,2 @@ describe Team do
63
+ - describe "normalize attributes" do
64
+ - it "does not allow empty string values" do
65
+ + describe "normalize attrbtes" do
66
+ + it "does not allw empty sting values" do
67
+ DIFF
68
+ end
69
+
70
+ it "parses the diff correctly" do
71
+ allow_any_instance_of(Devloop::DiffParser).to receive(:git_root_path).and_return("/Users/username/projects/")
72
+ allow_any_instance_of(Devloop::DiffParser).to receive(:project_path).and_return("src/")
73
+ expect(Devloop::DiffParser.call(diff)).to eq(["spec/models/team_spec.rb:19", "spec/models/team_spec.rb:24"])
74
+ end
48
75
  end
49
76
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devloop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - pawurb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-06 00:00:00.000000000 Z
11
+ date: 2024-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake