danger-readme_docs 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ca6cfba023e02c516e194c0874490f0ddeeeee3b7de498aef92152875cf06f9
4
- data.tar.gz: eb7079d740da7eda311ee493bb089a45e48cd2656df9ddbda24f0d18c0beadda
3
+ metadata.gz: ef1f1fd7610512787d6d22e7510e6b11297876ba60d1c513bc4a6a86cfed68d0
4
+ data.tar.gz: 7017fec86fec91021161055fb561b07eae96c31b3282f2131d133e7b8d232028
5
5
  SHA512:
6
- metadata.gz: bec4286eb58ccc246a66c369a737ae513a0c0356cad27f2abe3ea80ec5317e545ac59107936253cc932bdeeae227b7b83a4253457d4bdad40d70c1b1f22568c0
7
- data.tar.gz: b285a1f7855fa3a0880a84d0031252831ae90206dd2813f2054555fdaa2f527f1e9dd44834b7954c38f3fc6a25f5b5101cc2b32278ea8b42122ac7db00e4743e
6
+ metadata.gz: 0710efade43d95fcd94c4d27251d0b205d6b6fc2a2ef15be18ac79958539d76a8ad183f7f4f7ae01146434a8f5fa3530e35104d3457bdaa9ab7bbfe4f96a6a59
7
+ data.tar.gz: c86f53c02c4583f309838cc41e1d24761cddc19652a4b663a604c46248a5cbea779e6044e609ce95b7c0f60a9a892e666a31b821b30b692721a1229ebf09c552
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-readme_docs (0.0.2)
4
+ danger-readme_docs (0.1.0)
5
5
  danger-plugin-api (~> 1.0)
6
6
 
7
7
  GEM
@@ -27,8 +27,8 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'rspec', '~> 3.4'
28
28
 
29
29
  # Linting code and docs
30
- spec.add_development_dependency "rubocop"
31
- spec.add_development_dependency "yard"
30
+ spec.add_development_dependency 'rubocop', '~> 1.12.0'
31
+ spec.add_development_dependency 'yard', '~> 0.9.26'
32
32
 
33
33
  # Makes testing easy via `bundle exec guard`
34
34
  spec.add_development_dependency 'guard', '~> 2.14'
@@ -44,5 +44,5 @@ Gem::Specification.new do |spec|
44
44
  # binding.pry
45
45
  #
46
46
  # This will stop test execution and let you inspect the results
47
- spec.add_development_dependency 'pry'
47
+ spec.add_development_dependency 'pry', '~> 0.14.0'
48
48
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReadmeDocs
4
- VERSION = '0.0.2'
4
+ VERSION = '0.1.0'
5
5
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Danger
4
- # Check markdown files inside main README.md.
4
+ # Check readme files with any extesion inside main README.md.
5
5
  # Results are passed out as a string with warning.
6
6
  #
7
7
  # @example Running linter
@@ -13,7 +13,7 @@ module Danger
13
13
  # @tags monday, weekends, time, rattata
14
14
  #
15
15
  class DangerReadmeDocs < Plugin
16
- # Lints the globbed markdown files. Will fail if changed file was not added in main README.md.
16
+ # Lints the globbed readme files. Will fail if changed file was not added in main README.md.
17
17
  # Generates a `string` with warning.
18
18
  #
19
19
  # @param [String] files
@@ -25,22 +25,25 @@ module Danger
25
25
  forgotten_files = []
26
26
 
27
27
  changed_files.each do |file|
28
- next unless File.readable?(file)
29
- next unless file.end_with?('.md')
28
+ next unless valid_file?(file)
30
29
 
31
30
  file_expand_path = File.path(file)
32
- # unless include because excludes for string available in rails >= 4.0.2
33
- forgotten_files << file_expand_path unless main_readme_content.include?(file_expand_path)
34
-
35
- warn(warning_generator(forgotten_files)) if forgotten_files.any?
31
+ forgotten_files << file_expand_path unless main_readme_content.include?(file_expand_path.downcase)
36
32
  end
33
+
34
+ warn(warning_generator(forgotten_files)) if forgotten_files.any?
37
35
  end
38
36
 
39
37
  private
40
38
 
39
+ def valid_file?(file)
40
+ File.readable?(file) &&
41
+ File.basename(file, File.extname(file)).downcase == 'readme'
42
+ end
43
+
41
44
  # memoize file content
42
45
  def main_readme_content
43
- @main_readme_content ||= File.read('README.md')
46
+ @main_readme_content ||= File.read('README.md').downcase
44
47
  end
45
48
 
46
49
  def changed_files
@@ -48,7 +51,8 @@ module Danger
48
51
  end
49
52
 
50
53
  def warning_generator(files)
51
- "Please add mentions of sub readme files in main README.md:\n **#{files.join('<br/>')}**"
54
+ 'Please add mentions of sub readme files ' \
55
+ "in main README.md:\n **#{files.join('<br/>')}**"
52
56
  end
53
57
  end
54
58
  end
@@ -33,21 +33,56 @@ module Danger
33
33
  it { is_expected.to be_empty }
34
34
 
35
35
  context 'when yml file changed' do
36
- let(:fake_new_readme_path) { 'spec/fixtures/some.yml' }
36
+ let(:fake_main_readme) { '# Test \n spec/fixtures/README.yml' }
37
+ let(:fake_new_readme_path) { 'spec/fixtures/readme.yml' }
37
38
 
38
39
  it { is_expected.to be_empty }
39
40
  end
40
41
 
41
- context 'without mention in main README' do
42
+ context 'when file is not readme' do
43
+ let(:fake_main_readme) { '# Test' }
44
+ let(:fake_new_readme_path) { 'spec/fixtures/readmessio.yml' }
45
+
46
+ it { is_expected.to be_empty }
47
+ end
48
+
49
+ context 'when file name added in lower case' do
50
+ let(:fake_main_readme) { '# Test \n spec/fixtures/readme.md' }
51
+ let(:fake_new_readme_path) { 'spec/fixtures/README.md' }
52
+
53
+ it { is_expected.to be_empty }
54
+ end
55
+
56
+ context 'when with multiple readmes' do
42
57
  let(:fake_main_readme) { '# Test' }
43
- let(:warnings) do
58
+ let(:fake_new_readmes) do
44
59
  [
45
- 'Please add mentions of sub readme files ' \
46
- "in main README.md:\n **spec/fixtures/README.md**"
60
+ 'spec/fixtures/README.md',
61
+ 'spec/random/README.md',
62
+ 'random/random/README.md'
47
63
  ]
48
64
  end
65
+ let(:warning) do
66
+ 'Please add mentions of sub readme files ' \
67
+ "in main README.md:\n **spec/fixtures/README.md<br/>" \
68
+ 'spec/random/README.md<br/>random/random/README.md**'
69
+ end
70
+
71
+ before do
72
+ allow(@readme_docs.git).to receive(:modified_files).and_return(fake_new_readmes)
73
+ end
74
+
75
+ it { is_expected.to eq([warning]) }
76
+ end
77
+
78
+ context 'without mention in main README' do
79
+ let(:fake_main_readme) { '# Test' }
80
+ let(:warning) do
81
+ 'Please add mentions of sub readme files ' \
82
+ "in main README.md:\n **spec/fixtures/README.md**"
83
+ end
49
84
 
50
- it { is_expected.to eq(warnings) }
85
+ it { is_expected.to eq([warning]) }
51
86
 
52
87
  context 'when files are not readable' do
53
88
  let(:is_files_readable) { false }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-readme_docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikhail Georgievskiy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-25 00:00:00.000000000 Z
11
+ date: 2021-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -70,30 +70,30 @@ dependencies:
70
70
  name: rubocop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 1.12.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 1.12.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: yard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 0.9.26
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 0.9.26
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: guard
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -140,16 +140,16 @@ dependencies:
140
140
  name: pry
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: 0.14.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: 0.14.0
153
153
  description:
154
154
  email:
155
155
  - m.georgievskiy@rambler-co.ru