adjutant 0.1.2 → 0.1.4

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: 63fdbf4d9637148a899bf681d613517c9a58e643
4
- data.tar.gz: 545ec10edc2ad99477c21bb1c934b8688269cb71
3
+ metadata.gz: e7ade5ef06a52ba977c6cdf02258e8b39b47336d
4
+ data.tar.gz: 4baaed035761d72a020831da9c6b80f002c83116
5
5
  SHA512:
6
- metadata.gz: ad1648c468bbda14bc1bc5dfc77bbde84e0128482ad0ed6ea1de29d0f8c8d4f4b8e080b8e2894d6b7e862e6d6e2025c8e4dfbc26ed11d77cf6d3c93ee27afa50
7
- data.tar.gz: f6fafe1b348d8bbfcfedde2a33de44d1e1ddade102867473e45212c6bb62b32c34215966daf689749286eb6ff03fe3a8b39c27e96bedac6e001b8246a4d2c8d7
6
+ metadata.gz: fb8cd05f8e2b38c6d795938764a0fdb7c6dfcc10ba727dc613658c60bc170a344fa6567fb22b27385c003b8ec113646e1a596cef51cbf8d875b2df3b5e9d4c4e
7
+ data.tar.gz: 0373d16b91be83dd143fe230a080942f3fee186c5871577e1c78b744cca8b6843d5cd880ebece289bd66aec268d67c39e8282f3967aa274d82c3f4b933a12655
@@ -1,3 +1,5 @@
1
+ require 'logger'
2
+
1
3
  module Adjutant
2
4
  class FileParser
3
5
 
@@ -7,30 +9,27 @@ module Adjutant
7
9
  @text = file[:patch]
8
10
  @comment = Comment.new("")
9
11
  @comments = []
12
+ @previous_was_usefull = false
10
13
  end
11
14
 
12
15
  def detect_comments
13
- usefull = false
14
16
  lines_pushed.each_with_index do |line, index|
15
17
  line = Line.new(line)
16
-
17
- if line.usefull? || usefull
18
- usefull = true
18
+ if line.usefull? || @previous_was_usefull
19
19
  parse_line(line, index)
20
20
  else
21
- push_comment
22
- usefull = false
23
-
24
- next
21
+ push_comment and next
25
22
  end
26
23
  end
27
- push_comment if usefull
24
+
25
+ push_comment if @previous_was_usefull
28
26
  @comments
29
27
  end
30
28
 
31
29
  def push_comment
32
- @comments << @comment.print
30
+ @comments << @comment.print unless comment.text.nil?
33
31
  @comment.reset
32
+ @previous_was_usefull = false
34
33
  end
35
34
 
36
35
  def parse_line(line, index)
@@ -38,6 +37,7 @@ module Adjutant
38
37
  push_comment
39
38
  else
40
39
  @comment.add line.usefull_text, index
40
+ @previous_was_usefull = true
41
41
  end
42
42
  end
43
43
 
data/lib/adjutant/line.rb CHANGED
@@ -4,7 +4,7 @@ module Adjutant
4
4
  USERNAME_SIGN = "@"
5
5
  TODO_LINE = "TODO:"
6
6
 
7
- def usefull?() contain_comment? && point_of_interes? && new_added? end
7
+ def usefull?() contain_comment? && point_of_interes? end
8
8
 
9
9
  def contain_comment?() line.scan(/\+\s*#{COMMENT_SIGN}/).any? end
10
10
 
@@ -12,10 +12,8 @@ module Adjutant
12
12
  def contain_username?() line.scan(/(#{USERNAME_SIGN}\w+)/).any? end
13
13
  def contain_todo?() line.scan(/#{TODO_LINE}/).any? end
14
14
 
15
- def new_added?() line[0] == '+' end
16
-
17
- def end_of_comment?() contain_comment?() ? empty_comment? : true end
18
- def empty_comment?() line.scan(/\+\s*#{COMMENT_SIGN}\s*(\S+)/).empty? end
15
+ def end_of_comment?() contain_comment?() ? empty_comment? : true end
16
+ def empty_comment?() line.scan(/\+\s*#{COMMENT_SIGN}\s*(\S+)/).empty? end
19
17
 
20
18
  def usefull_text
21
19
  matched = line.scan(/\+\s*#\s*/).first
@@ -1,3 +1,3 @@
1
1
  module Adjutant
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -3,15 +3,20 @@ require 'spec_helper'
3
3
  RSpec.describe Adjutant::FileParser do
4
4
 
5
5
  let(:file) do
6
- { :patch => "@@ -0,0 +1,14 @@\n+# @Baltazore is trying to check first line comment\n+def super_method(such_args)\n \"Doge tutorial\"\nend\n# doing some stuff\n\"hello world\"\n+# @baltazore, Let's check multiline comments,\n+# them really rocks\n#\n+\n+# TODO:\n+# - [ ] This Github flavoured markdown\n+# - [ ] such nice\n+# - [ ] very exciting" }
6
+ { :patch=> "@@ -0,0 +1,14 @@\n+# @Baltazore is trying to check first line comment\n+def super_method(such_args)\n+ \"Doge tutorial\"\n+end\n+# useless comment\n+\"hello world\"\n+# @baltazore, Let's check multiline comments,\n+# them really rocks\n+#\n+\n+# TODO:\n+# - [ ] This Github flavoured markdown\n+# - [ ] such nice\n+# - [ ] very exciting" }
7
7
  end
8
8
 
9
9
  let(:lines) do
10
10
  [
11
11
  "+# @Baltazore is trying to check first line comment",
12
12
  "+def super_method(such_args)",
13
+ "+ \"Doge tutorial\"",
14
+ "+end",
15
+ "+# useless comment",
16
+ "+\"hello world\"",
13
17
  "+# @baltazore, Let's check multiline comments,",
14
18
  "+# them really rocks",
19
+ "+#",
15
20
  "+",
16
21
  "+# TODO:",
17
22
  "+# - [ ] This Github flavoured markdown",
@@ -23,13 +28,17 @@ RSpec.describe Adjutant::FileParser do
23
28
  let(:comments) do
24
29
  [
25
30
  [ "@Baltazore is trying to check first line comment", 1 ],
26
- [ "@baltazore, Let's check multiline comments,\\nthem really rocks", 3],
27
- [ "TODO:\\n- [ ] This Github flavoured markdown\\n- [ ] such nice\\n- [ ] very exciting", 6 ]
31
+ [ "@baltazore, Let's check multiline comments,\\nthem really rocks", 7],
32
+ [ "TODO:\\n- [ ] This Github flavoured markdown\\n- [ ] such nice\\n- [ ] very exciting", 11 ]
28
33
  ]
29
34
  end
30
35
  let(:file_parser) { Adjutant::FileParser.new(file) }
31
36
 
32
37
  describe '#detect_comments' do
38
+ it 'fineds only 3 comments here' do
39
+ expect(file_parser.detect_comments.count).to eq(3)
40
+ end
41
+
33
42
  context '#lines_pushed' do
34
43
  it 'returns all lines that has been pushed in commit' do
35
44
  file_parser.lines_pushed.each_with_index do |line, index|
@@ -57,17 +57,6 @@ RSpec.describe Adjutant::Line do
57
57
  end
58
58
  end
59
59
 
60
- context '#new_added?' do
61
- it 'returns true if line is new added' do
62
- expect(Adjutant::Line.new(comment).new_added?).to eq(true)
63
- expect(Adjutant::Line.new(todo).new_added?).to eq(true)
64
- expect(Adjutant::Line.new(empty).new_added?).to eq(true)
65
- end
66
-
67
- it 'returns false in other cases' do
68
- expect(Adjutant::Line.new(useless).new_added?).to eq(false)
69
- end
70
- end
71
60
  end
72
61
 
73
62
  describe '#usefull_text' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adjutant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Baltazore