danger-hlint 0.0.2
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 +4 -0
- data/.travis.yml +12 -0
- data/Gemfile +4 -0
- data/Guardfile +19 -0
- data/LICENSE.txt +22 -0
- data/README.md +57 -0
- data/Rakefile +23 -0
- data/danger-hlint.gemspec +49 -0
- data/lib/danger_hlint.rb +1 -0
- data/lib/danger_plugin.rb +1 -0
- data/lib/hlint/gem_version.rb +3 -0
- data/lib/hlint/plugin.rb +118 -0
- data/spec/fixtures/HaskellTestFile.hs +6 -0
- data/spec/hlint_spec.rb +36 -0
- data/spec/spec_helper.rb +59 -0
- metadata +202 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f714598e5fe9ebdbed959a92bacb4772deb26787
|
4
|
+
data.tar.gz: 8806ceb2b76218caf2f1058ce46e0fe60dbfe5f2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5ee44c558bd05a2e3467f010efdd34e3e7579496dc59a31e790508569e7bc8112b54a7a43412e9867b2ae8af9d347478ee189e41f2396ff4a6985c2460a7beb3
|
7
|
+
data.tar.gz: 9bf3bdd6d17cd7e507d31119603f8bfc3b2805bbb88d9bd6a026d29896d8e86075268d52383581020bc1ba2887f572cd3a071073c622d09e037f92945fb3d4bb
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# A guardfile for making Danger Plugins
|
2
|
+
# For more info see https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
# To run, use `bundle exec guard`.
|
5
|
+
|
6
|
+
guard :rspec, cmd: 'bundle exec rspec' do
|
7
|
+
require 'guard/rspec/dsl'
|
8
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
9
|
+
|
10
|
+
# RSpec files
|
11
|
+
rspec = dsl.rspec
|
12
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
13
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
14
|
+
watch(rspec.spec_files)
|
15
|
+
|
16
|
+
# Ruby files
|
17
|
+
ruby = dsl.ruby
|
18
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
19
|
+
end
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2017 Tommaso Piazza <tommaso.piazza@gmail.com>
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# Danger HLint [](https://badge.fury.io/rb/danger-hlint)
|
2
|
+
|
3
|
+
A Danger plugin for [HLint](https://github.com/ndmitchell/hlint)
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'danger-hlint'
|
11
|
+
```
|
12
|
+
|
13
|
+
## Usage
|
14
|
+
|
15
|
+
Methods and attributes from this plugin are available in
|
16
|
+
your `Dangerfile` under the `hlint` namespace.
|
17
|
+
|
18
|
+
At the moment one single method is exposed: `hlint.lint`
|
19
|
+
|
20
|
+
If you want the lint results to show in the diff instead of in the comments, you can use then `inline_mode` option.
|
21
|
+
Violations that occur out of the diff will show in danger's fail or warn section.
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
hlint.lint files inline_mode: true
|
25
|
+
```
|
26
|
+
|
27
|
+
To pass other parameters to the linter just add them to the method call. The
|
28
|
+
names and values of the parameters to the `hlint.lint` method are handed over to linter.
|
29
|
+
|
30
|
+
For example, you can specify a hint file by calling
|
31
|
+
|
32
|
+
```ruby
|
33
|
+
hlint.lint files hint: ".hlint.yaml"
|
34
|
+
```
|
35
|
+
|
36
|
+
To pass switches to the linter (like `--quiet`) specify `true` as the value in the call
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
hlint.lint files quiet: true
|
40
|
+
```
|
41
|
+
|
42
|
+
|
43
|
+
## Development
|
44
|
+
|
45
|
+
1. Clone this repo
|
46
|
+
2. Run `bundle install` to setup dependencies.
|
47
|
+
3. Run `bundle exec rake spec` to run the tests.
|
48
|
+
4. Use `bundle exec guard` to automatically have tests run as you make changes.
|
49
|
+
5. Make your changes.
|
50
|
+
|
51
|
+
## Attribution
|
52
|
+
|
53
|
+
Some methods and ideas are almost copied unchanged from [Danger SwiftLint](https://github.com/ashfurrow/danger-swiftlint)
|
54
|
+
|
55
|
+
## License
|
56
|
+
|
57
|
+
danger-hlint is released under MIT License
|
data/Rakefile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
require 'rubocop/rake_task'
|
4
|
+
|
5
|
+
RSpec::Core::RakeTask.new(:specs)
|
6
|
+
|
7
|
+
task default: :specs
|
8
|
+
|
9
|
+
task :spec do
|
10
|
+
Rake::Task['specs'].invoke
|
11
|
+
Rake::Task['rubocop'].invoke
|
12
|
+
Rake::Task['spec_docs'].invoke
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'Run RuboCop on the lib/specs directory'
|
16
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
17
|
+
task.patterns = ['lib/**/*.rb', 'spec/**/*.rb']
|
18
|
+
end
|
19
|
+
|
20
|
+
desc 'Ensure that the plugin passes `danger plugins lint`'
|
21
|
+
task :spec_docs do
|
22
|
+
sh 'bundle exec danger plugins lint'
|
23
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'hlint/gem_version.rb'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'danger-hlint'
|
8
|
+
spec.version = Hlint::VERSION
|
9
|
+
spec.authors = ['Tommaso Piazza']
|
10
|
+
spec.email = ['tommaso.piazza@gmail.com']
|
11
|
+
spec.description = %q{A plugin for Danger System to run hlint.}
|
12
|
+
spec.summary = %q{A plugin for Danger System to run hlint.}
|
13
|
+
spec.homepage = 'https://github.com/blender/danger-hlint'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_runtime_dependency 'danger-plugin-api', '~> 1.0'
|
22
|
+
|
23
|
+
# General ruby development
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
25
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
26
|
+
|
27
|
+
# Testing support
|
28
|
+
spec.add_development_dependency 'rspec', '~> 3.4'
|
29
|
+
|
30
|
+
# Linting code and docs
|
31
|
+
spec.add_development_dependency "rubocop", "~> 0.41"
|
32
|
+
spec.add_development_dependency "yard", "~> 0.8"
|
33
|
+
|
34
|
+
# Makes testing easy via `bundle exec guard`
|
35
|
+
spec.add_development_dependency 'guard', '~> 2.14'
|
36
|
+
spec.add_development_dependency 'guard-rspec', '~> 4.7'
|
37
|
+
|
38
|
+
# If you want to work on older builds of ruby
|
39
|
+
spec.add_development_dependency 'listen', '3.0.7'
|
40
|
+
|
41
|
+
# This gives you the chance to run a REPL inside your tests
|
42
|
+
# via:
|
43
|
+
#
|
44
|
+
# require 'pry'
|
45
|
+
# binding.pry
|
46
|
+
#
|
47
|
+
# This will stop test execution and let you inspect the results
|
48
|
+
spec.add_development_dependency 'pry'
|
49
|
+
end
|
data/lib/danger_hlint.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'hlint/gem_version'
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'hlint/plugin'
|
data/lib/hlint/plugin.rb
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
require 'shellwords'
|
2
|
+
|
3
|
+
module Danger
|
4
|
+
# This is your plugin class. Any attributes or methods you expose here will
|
5
|
+
# be available from within your Dangerfile.
|
6
|
+
#
|
7
|
+
# To be published on the Danger plugins site, you will need to have
|
8
|
+
# the public interface documented. Danger uses [YARD](http://yardoc.org/)
|
9
|
+
# for generating documentation from your plugin source, and you can verify
|
10
|
+
# by running `danger plugins lint` or `bundle exec rake spec`.
|
11
|
+
#
|
12
|
+
# You should replace these comments with a public description of your library.
|
13
|
+
#
|
14
|
+
# @example Ensure people are well warned about merging on Mondays
|
15
|
+
#
|
16
|
+
# danger_hlint.warn_on_mondays
|
17
|
+
#
|
18
|
+
# @see blender/danger-hlint
|
19
|
+
# @tags monday, weekends, time, rattata
|
20
|
+
#
|
21
|
+
class DangerHlint < Plugin
|
22
|
+
|
23
|
+
# The path to the hint/ignore file used by hlint
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
attr_accessor :config_file
|
27
|
+
|
28
|
+
# Runs hlint on a list of files
|
29
|
+
#
|
30
|
+
# @return [void]
|
31
|
+
def lint(files, inline_mode=false, options={})
|
32
|
+
|
33
|
+
final_options = options.merge({ json: true })
|
34
|
+
|
35
|
+
issues = files
|
36
|
+
.map { |file| Shellwords.escape(file) }
|
37
|
+
.map { |file| `hlint lint #{file} #{to_hlint_options(final_options)} 2>/dev/null`}
|
38
|
+
.reject { |s| s == '' }
|
39
|
+
.map { |lint_result| JSON.parse(lint_result).flatten }
|
40
|
+
.flatten
|
41
|
+
|
42
|
+
suggestions = issues.select { |issue| issue['severity'] == 'Suggestion' }
|
43
|
+
warnings = issues.select { |issue| issue['severity'] == 'Warning' }
|
44
|
+
errors = issues.select { |issue| issue['severity'] == 'Error' }
|
45
|
+
|
46
|
+
if inline_mode
|
47
|
+
# Reprt with inline comment
|
48
|
+
send_inline_comment(suggestions, "warn")
|
49
|
+
send_inline_comment(warnings, "warn")
|
50
|
+
send_inline_comment(errors, "fail")
|
51
|
+
|
52
|
+
else
|
53
|
+
# Report if any suggestions, warnings or errors
|
54
|
+
if suggestions.count > 0 || warnings.count > 0 || errors.count > 0
|
55
|
+
message = "### hlint found issues\n\n"
|
56
|
+
message << markdown_issues(warnings, 'Suggestions') unless suggestions.empty?
|
57
|
+
message << markdown_issues(warnings, 'Warnings') unless warnings.empty?
|
58
|
+
message << markdown_issues(errors, 'Errors') unless errors.empty?
|
59
|
+
markdown message
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
def markdown_issues (results, heading)
|
66
|
+
message = "#### #{heading}\n\n"
|
67
|
+
|
68
|
+
message << "File | Line | Hint | Found | Suggested\n"
|
69
|
+
message << "| --- | ----- | ----- | ----- | ----- |\n"
|
70
|
+
|
71
|
+
results.each do |r|
|
72
|
+
filename = r['file'].split('/').last
|
73
|
+
line = r['startLine']
|
74
|
+
hint = r['hint']
|
75
|
+
from = r['from'].gsub("\n", "<br />")
|
76
|
+
to = r['to'].gsub("\n", "<br />")
|
77
|
+
|
78
|
+
message << "#{filename} | #{line} | #{hint} | #{from} | #{to}\n"
|
79
|
+
end
|
80
|
+
|
81
|
+
message
|
82
|
+
end
|
83
|
+
|
84
|
+
def send_inline_comment (results, method)
|
85
|
+
dir = "#{Dir.pwd}/"
|
86
|
+
results.each do |r|
|
87
|
+
filename = r['file'].gsub(dir, "")
|
88
|
+
|
89
|
+
prompt = r['severity'] == 'Suggestion' || r['severity'] == 'Warning' ? "Why Not" : ""
|
90
|
+
prompt = r['severity'] == 'Error' ? "Error description" : prompt
|
91
|
+
|
92
|
+
message = "Found #{r['hint']}\n\n```haskell\n#{r['from']}\n``` \n\n #{prompt} \n\n ```haskell\n#{r['to']}\n```"
|
93
|
+
send(method, message, file: filename, line: r['startLine'])
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def to_hlint_options(options={})
|
98
|
+
options.
|
99
|
+
# filter not null
|
100
|
+
select {|key, value| !value.nil?}.
|
101
|
+
# map booleans arguments equal true
|
102
|
+
map { |key, value| value.is_a?(TrueClass) ? [key, ''] : [key, value] }.
|
103
|
+
# map booleans arguments equal false
|
104
|
+
map { |key, value| value.is_a?(FalseClass) ? ["no-#{key}", ''] : [key, value] }.
|
105
|
+
# replace underscore by hyphen
|
106
|
+
map { |key, value| [key.to_s.tr('_', '-'), value] }.
|
107
|
+
# prepend '--' into the argument
|
108
|
+
map { |key, value| ["--#{key}", value] }.
|
109
|
+
# reduce everything into a single string
|
110
|
+
reduce('') { |args, option| "#{args} #{option[0]} #{option[1]}" }.
|
111
|
+
# strip leading spaces
|
112
|
+
strip
|
113
|
+
end
|
114
|
+
|
115
|
+
private :send_inline_comment, :to_hlint_options, :markdown_issues
|
116
|
+
|
117
|
+
end
|
118
|
+
end
|
data/spec/hlint_spec.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Danger
|
4
|
+
describe Danger::DangerHlint do
|
5
|
+
it 'should be a plugin' do
|
6
|
+
expect(Danger::DangerHlint.new(nil)).to be_a Danger::Plugin
|
7
|
+
end
|
8
|
+
|
9
|
+
#
|
10
|
+
# You should test your custom attributes and methods here
|
11
|
+
#
|
12
|
+
describe 'with Dangerfile' do
|
13
|
+
before do
|
14
|
+
@dangerfile = testing_dangerfile
|
15
|
+
@hlint = @dangerfile.hlint
|
16
|
+
allow(@hlint.git).to receive(:added_files).and_return([])
|
17
|
+
allow(@hlint.git).to receive(:modified_files).and_return([])
|
18
|
+
|
19
|
+
@hlint_response = '[{"module":"HaskellTestFile","decl":"foo","severity":"Warning","hint":"Use concatMap","file":"./HaskellTestFile.hs","startLine":6,"startColumn":10,"endLine":6,"endColumn":28,"from":"concat (map id xs)","to":"concatMap id xs","note":[],"refactorings":"[Replace {rtype = Expr, pos = SrcSpan {startLine = 6, startCol = 10, endLine = 6, endCol = 28}, subts = [(\"f\",SrcSpan {startLine = 6, startCol = 22, endLine = 6, endCol = 24}),(\"x\",SrcSpan {startLine = 6, startCol = 25, endLine = 6, endCol = 27})], orig = \"concatMap f x\"}]"}
|
20
|
+
,{"module":"HaskellTestFile","decl":"foo","severity":"Warning","hint":"Use id","file":"./HaskellTestFile.hs","startLine":6,"startColumn":18,"endLine":6,"endColumn":24,"from":"map id","to":"id","note":[],"refactorings":"[Replace {rtype = Expr, pos = SrcSpan {startLine = 6, startCol = 18, endLine = 6, endCol = 24}, subts = [], orig = \"id\"}]"}]'
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
# Some examples for writing tests
|
25
|
+
# You should replace these with your own.
|
26
|
+
|
27
|
+
it "collects Warnings" do
|
28
|
+
expect(DangerHlint).to receive(:lint)
|
29
|
+
.with(File.expand_path('spec/fixtures/HaskellTestFile.hs'), hash_including(:inline_mode => true))
|
30
|
+
.and_return(@hlint_response)
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
ROOT = Pathname.new(File.expand_path('../../', __FILE__))
|
3
|
+
$:.unshift((ROOT + 'lib').to_s)
|
4
|
+
$:.unshift((ROOT + 'spec').to_s)
|
5
|
+
|
6
|
+
require 'bundler/setup'
|
7
|
+
require 'pry'
|
8
|
+
|
9
|
+
require 'rspec'
|
10
|
+
require 'danger'
|
11
|
+
|
12
|
+
# Use coloured output, it's the best.
|
13
|
+
RSpec.configure do |config|
|
14
|
+
config.filter_gems_from_backtrace "bundler"
|
15
|
+
config.color = true
|
16
|
+
config.tty = true
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'danger_plugin'
|
20
|
+
|
21
|
+
# These functions are a subset of https://github.com/danger/danger/blob/master/spec/spec_helper.rb
|
22
|
+
# If you are expanding these files, see if it's already been done ^.
|
23
|
+
|
24
|
+
# A silent version of the user interface,
|
25
|
+
# it comes with an extra function `.string` which will
|
26
|
+
# strip all ANSI colours from the string.
|
27
|
+
|
28
|
+
# rubocop:disable Lint/NestedMethodDefinition
|
29
|
+
def testing_ui
|
30
|
+
@output = StringIO.new
|
31
|
+
def @output.winsize
|
32
|
+
[20, 9999]
|
33
|
+
end
|
34
|
+
|
35
|
+
cork = Cork::Board.new(out: @output)
|
36
|
+
def cork.string
|
37
|
+
out.string.gsub(/\e\[([;\d]+)?m/, "")
|
38
|
+
end
|
39
|
+
cork
|
40
|
+
end
|
41
|
+
# rubocop:enable Lint/NestedMethodDefinition
|
42
|
+
|
43
|
+
# Example environment (ENV) that would come from
|
44
|
+
# running a PR on TravisCI
|
45
|
+
def testing_env
|
46
|
+
{
|
47
|
+
'HAS_JOSH_K_SEAL_OF_APPROVAL' => 'true',
|
48
|
+
'TRAVIS_PULL_REQUEST' => '800',
|
49
|
+
'TRAVIS_REPO_SLUG' => 'artsy/eigen',
|
50
|
+
'TRAVIS_COMMIT_RANGE' => '759adcbd0d8f...13c4dc8bb61d',
|
51
|
+
'DANGER_GITHUB_API_TOKEN' => '123sbdq54erfsd3422gdfio'
|
52
|
+
}
|
53
|
+
end
|
54
|
+
|
55
|
+
# A stubbed out Dangerfile for use in tests
|
56
|
+
def testing_dangerfile
|
57
|
+
env = Danger::EnvironmentManager.new(testing_env)
|
58
|
+
Danger::Dangerfile.new(env, testing_ui)
|
59
|
+
end
|
metadata
ADDED
@@ -0,0 +1,202 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: danger-hlint
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tommaso Piazza
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-07-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: danger-plugin-api
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.4'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.4'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.41'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.41'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: yard
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.8'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.8'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '2.14'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.14'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '4.7'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '4.7'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: listen
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 3.0.7
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 3.0.7
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: pry
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
description: A plugin for Danger System to run hlint.
|
154
|
+
email:
|
155
|
+
- tommaso.piazza@gmail.com
|
156
|
+
executables: []
|
157
|
+
extensions: []
|
158
|
+
extra_rdoc_files: []
|
159
|
+
files:
|
160
|
+
- ".gitignore"
|
161
|
+
- ".travis.yml"
|
162
|
+
- Gemfile
|
163
|
+
- Guardfile
|
164
|
+
- LICENSE.txt
|
165
|
+
- README.md
|
166
|
+
- Rakefile
|
167
|
+
- danger-hlint.gemspec
|
168
|
+
- lib/danger_hlint.rb
|
169
|
+
- lib/danger_plugin.rb
|
170
|
+
- lib/hlint/gem_version.rb
|
171
|
+
- lib/hlint/plugin.rb
|
172
|
+
- spec/fixtures/HaskellTestFile.hs
|
173
|
+
- spec/hlint_spec.rb
|
174
|
+
- spec/spec_helper.rb
|
175
|
+
homepage: https://github.com/blender/danger-hlint
|
176
|
+
licenses:
|
177
|
+
- MIT
|
178
|
+
metadata: {}
|
179
|
+
post_install_message:
|
180
|
+
rdoc_options: []
|
181
|
+
require_paths:
|
182
|
+
- lib
|
183
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0'
|
193
|
+
requirements: []
|
194
|
+
rubyforge_project:
|
195
|
+
rubygems_version: 2.6.11
|
196
|
+
signing_key:
|
197
|
+
specification_version: 4
|
198
|
+
summary: A plugin for Danger System to run hlint.
|
199
|
+
test_files:
|
200
|
+
- spec/fixtures/HaskellTestFile.hs
|
201
|
+
- spec/hlint_spec.rb
|
202
|
+
- spec/spec_helper.rb
|