devloop 0.0.2 → 0.0.3

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: f2dab016e7249d6883987e3d5cebb59e0d08e644884ee3c54320e44ac84cee8d
4
- data.tar.gz: 4cd78a1c396874542cf1c0790c2b94c3366a5355f26cf206806a1bfb28c06522
3
+ metadata.gz: bd315f90c485333f7c0f4386b15c08920865b3e42906c8cc60bd081c7c466299
4
+ data.tar.gz: 8561edca5696f4b1cccb46353717987b093b0820780e801be773196f39f4c0a6
5
5
  SHA512:
6
- metadata.gz: b8f7cee13c1094e4d7214083f102e2274d279211fe8956784fa847406f19387a734ef0357cb1b7db2052e60d5e7fcbb5dc60f56e24ad93d37baf4d32760b650e
7
- data.tar.gz: 839f53f6b4f803454b7722c70b827aa3f5abf73a7c5763231f442d590741d29364b7d95ce7bf07e8abdc6082465e0d57616572590e382208e24b9952991d7389
6
+ metadata.gz: c6ff478bdb188648ee16f025aada1d5381a373b9ab7095456fea0d2c66d14f53f617581017ba58504607c584b706ee74e68a7c61bfe2bf368e885c8ec27696b1
7
+ data.tar.gz: 8bde33a6fa0a8b140441f4c5a839948e89d708163ffb30e755cd97f15f4a1252de8cedee8948e6f3cf2c5bf7d3eca6d989eb950918061747976961a6f428f2d8
data/README.md CHANGED
@@ -1 +1,27 @@
1
- # Devloop [WIP]
1
+ # Devloop
2
+
3
+ Devloop is an automated Rspec runner for Rails app inspired by [TLDR](https://github.com/tendersearls/tldr). The purpose of this tool is to provide continous and instant feedback when working on Rails app. It run only specs from _lines_ modified in the recent git commits. It means that even if you have a large `spec/user_spec.rb` file, you'll receive specs feedback in fraction on a second on every file save.
4
+
5
+ ## Installation
6
+
7
+ It uses [fswatch](https://github.com/emcrisostomo/fswatch) so make sure to install it first:
8
+
9
+ ```bash
10
+ brew install fswatch
11
+ ```
12
+
13
+ In your `Gemfile`:
14
+
15
+ ```ruby
16
+ gem "devloop", group: :development
17
+ ```
18
+
19
+ Now you can run:
20
+
21
+ ```bash
22
+ bundle exec devloop
23
+ ```
24
+
25
+ While this command it running it will automatically execute tests related to the recenly modified lines of code from `specs/` folder.
26
+
27
+ This is in a very early stage of development so feedback is welcome.
@@ -7,13 +7,13 @@ module Devloop
7
7
  def call(diff)
8
8
  lines = diff.split("\n")
9
9
  results = []
10
+ file = ""
10
11
  lines.each_with_index do |line, index|
11
12
  if line.start_with?("+++ b/")
12
13
  file = line[6..-1]
13
- if lines[index + 1] && lines[index + 1].start_with?("@@ -")
14
- line_number = lines[index + 1].split(" ")[1].split(",")[0][1..-1]
15
- results << "#{file}:#{line_number}"
16
- end
14
+ elsif line.start_with?("@@ -")
15
+ line_number = line.match(/@@ -(\d+)/)[1]
16
+ results << "#{file}:#{line_number}"
17
17
  end
18
18
  end
19
19
  results
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Devloop
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
@@ -4,7 +4,7 @@ require "spec_helper"
4
4
  require "devloop/diff_parser"
5
5
 
6
6
  describe Devloop::DiffParser do
7
- let(:diff) do
7
+ let(:diff1) do
8
8
  <<~DIFF
9
9
  diff --git a/spec/models/team_spec.rb b/spec/models/team_spec.rb
10
10
  index 19772f2a..a32824f9 100644
@@ -25,7 +25,25 @@ describe Devloop::DiffParser do
25
25
  DIFF
26
26
  end
27
27
 
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
43
+ end
44
+
28
45
  it "parses the diff correctly" do
29
- expect(Devloop::DiffParser.call(diff)).to eq(["spec/models/team_spec.rb:10", "spec/models/user_spec.rb:167"])
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"])
30
48
  end
31
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devloop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - pawurb