danger-readme_docs 0.0.2 → 0.1.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
  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