ndr_dev_support 1.1.1
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 +7 -0
- data/.gitignore +9 -0
- data/.rubocop.yml +19 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +86 -0
- data/Rakefile +12 -0
- data/bin/console +10 -0
- data/bin/setup +8 -0
- data/code_safety.yml +91 -0
- data/lib/ndr_dev_support.rb +5 -0
- data/lib/ndr_dev_support/rubocop/executor.rb +28 -0
- data/lib/ndr_dev_support/rubocop/range_augmenter.rb +82 -0
- data/lib/ndr_dev_support/rubocop/range_finder.rb +82 -0
- data/lib/ndr_dev_support/rubocop/reporter.rb +76 -0
- data/lib/ndr_dev_support/tasks.rb +2 -0
- data/lib/ndr_dev_support/version.rb +5 -0
- data/lib/tasks/audit_code.rake +475 -0
- data/lib/tasks/rubocop.rake +63 -0
- data/ndr_dev_support.gemspec +29 -0
- metadata +162 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
namespace :rubocop do
|
2
|
+
require 'ndr_dev_support/rubocop/range_finder'
|
3
|
+
require 'ndr_dev_support/rubocop/range_augmenter'
|
4
|
+
require 'ndr_dev_support/rubocop/executor'
|
5
|
+
require 'ndr_dev_support/rubocop/reporter'
|
6
|
+
|
7
|
+
# For a given set of change locations (extract from a diff),
|
8
|
+
# run rubocop on the relevant files, and report filtered results.
|
9
|
+
def rubocop_file_ranges(file_ranges)
|
10
|
+
output = {}
|
11
|
+
threads = file_ranges.map do |file, ranges|
|
12
|
+
Thread.new do
|
13
|
+
# Expand ranges to include entire methods, etc:
|
14
|
+
lines = NdrDevSupport::Rubocop::RangeAugmenter.new(file, ranges).augmented_lines
|
15
|
+
# Get rubocop output for those files:
|
16
|
+
output[file] = NdrDevSupport::Rubocop::Executor.new(file, lines).output
|
17
|
+
end
|
18
|
+
end
|
19
|
+
threads.each(&:join)
|
20
|
+
|
21
|
+
# Report on output:
|
22
|
+
exit NdrDevSupport::Rubocop::Reporter.new(output).report
|
23
|
+
end
|
24
|
+
|
25
|
+
desc <<-USAGE
|
26
|
+
Usage:
|
27
|
+
rake rubocop:diff HEAD
|
28
|
+
rake rubocop:diff HEAD~3..HEAD~2
|
29
|
+
rake rubocop:diff HEAD~3..HEAD~2
|
30
|
+
rake rubocop:diff aef12fd4
|
31
|
+
rake rubocop:diff master
|
32
|
+
USAGE
|
33
|
+
task :diff do
|
34
|
+
expr = ARGV[1..-1].join(' ')
|
35
|
+
ranges = NdrDevSupport::Rubocop::RangeFinder.new.diff_expr(expr)
|
36
|
+
rubocop_file_ranges ranges
|
37
|
+
end
|
38
|
+
|
39
|
+
namespace :diff do
|
40
|
+
desc 'Usage: rake rubocop:diff:head'
|
41
|
+
task :head do
|
42
|
+
rubocop_file_ranges NdrDevSupport::Rubocop::RangeFinder.new.diff_head
|
43
|
+
end
|
44
|
+
|
45
|
+
desc 'Usage: rake rubocop:diff:unstaged'
|
46
|
+
task :unstaged do
|
47
|
+
rubocop_file_ranges NdrDevSupport::Rubocop::RangeFinder.new.diff_unstaged
|
48
|
+
end
|
49
|
+
|
50
|
+
desc 'Usage: rake rubocop:diff:staged'
|
51
|
+
task :staged do
|
52
|
+
rubocop_file_ranges NdrDevSupport::Rubocop::RangeFinder.new.diff_staged
|
53
|
+
end
|
54
|
+
|
55
|
+
desc 'Usage: rake rubocop:diff:file file [,file]'
|
56
|
+
task :file do
|
57
|
+
files = ARGV.uniq.select { |file| File.exist?(file) }
|
58
|
+
|
59
|
+
file_ranges = NdrDevSupport::Rubocop::RangeFinder.new.diff_files(files)
|
60
|
+
rubocop_file_ranges(file_ranges)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'ndr_dev_support/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'ndr_dev_support'
|
8
|
+
spec.version = NdrDevSupport::VERSION
|
9
|
+
spec.authors = ['NCRS Development Team']
|
10
|
+
spec.email = []
|
11
|
+
spec.summary = 'NDR Developer Support library'
|
12
|
+
spec.description = 'Provides support to developers of NDR projects'
|
13
|
+
spec.homepage = 'https://github.com/PublicHealthEngland/ndr_dev_support'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = 'exe'
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_dependency 'rubocop', '0.36.0'
|
22
|
+
spec.add_dependency 'parser'
|
23
|
+
spec.add_dependency 'rainbow'
|
24
|
+
|
25
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
26
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
27
|
+
spec.add_development_dependency 'pry'
|
28
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ndr_dev_support
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- NCRS Development Team
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-02-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rubocop
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.36.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.36.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: parser
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rainbow
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.7'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.7'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '5.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '5.0'
|
111
|
+
description: Provides support to developers of NDR projects
|
112
|
+
email: []
|
113
|
+
executables: []
|
114
|
+
extensions: []
|
115
|
+
extra_rdoc_files: []
|
116
|
+
files:
|
117
|
+
- ".gitignore"
|
118
|
+
- ".rubocop.yml"
|
119
|
+
- ".travis.yml"
|
120
|
+
- CODE_OF_CONDUCT.md
|
121
|
+
- Gemfile
|
122
|
+
- LICENSE.txt
|
123
|
+
- README.md
|
124
|
+
- Rakefile
|
125
|
+
- bin/console
|
126
|
+
- bin/setup
|
127
|
+
- code_safety.yml
|
128
|
+
- lib/ndr_dev_support.rb
|
129
|
+
- lib/ndr_dev_support/rubocop/executor.rb
|
130
|
+
- lib/ndr_dev_support/rubocop/range_augmenter.rb
|
131
|
+
- lib/ndr_dev_support/rubocop/range_finder.rb
|
132
|
+
- lib/ndr_dev_support/rubocop/reporter.rb
|
133
|
+
- lib/ndr_dev_support/tasks.rb
|
134
|
+
- lib/ndr_dev_support/version.rb
|
135
|
+
- lib/tasks/audit_code.rake
|
136
|
+
- lib/tasks/rubocop.rake
|
137
|
+
- ndr_dev_support.gemspec
|
138
|
+
homepage: https://github.com/PublicHealthEngland/ndr_dev_support
|
139
|
+
licenses:
|
140
|
+
- MIT
|
141
|
+
metadata: {}
|
142
|
+
post_install_message:
|
143
|
+
rdoc_options: []
|
144
|
+
require_paths:
|
145
|
+
- lib
|
146
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
requirements: []
|
157
|
+
rubyforge_project:
|
158
|
+
rubygems_version: 2.5.1
|
159
|
+
signing_key:
|
160
|
+
specification_version: 4
|
161
|
+
summary: NDR Developer Support library
|
162
|
+
test_files: []
|