netsoft-danger 0.3.3 → 0.3.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
  SHA256:
3
- metadata.gz: 834689b35350c36d2d44ddf42e4f4063d6a64669eae0b81622bd75a4a84ad521
4
- data.tar.gz: 60f0dce22bea4f15e6c41dca65b68015117580cf2f6b887b96ea7c5e5cf08e52
3
+ metadata.gz: 896e582de631d926bd01d4f5d98d0bde7f20f9a0ec129600bcea3eff09ffbb53
4
+ data.tar.gz: 9613d84bcd13e28594d387b66c1d1cc379d2f6ee62857e4ddcf2bce30761466a
5
5
  SHA512:
6
- metadata.gz: ba7dd552680963b240de97848204a8da274fcd62826284bad93a906f0d629de0e41f0fc2a72da71590005392e0415a84d5fd27a4d9b726a997d80da9db4242f3
7
- data.tar.gz: fb9da655dc4673612375ae7b0307fd6add7a01922152f08d1f8728550723df6b725150add8f480b7726756c0f986f797e73ac569e67d1c98673b8f72e67afd9c
6
+ metadata.gz: 9600eeb6dc24d45393f88ce2f4e956885209974d0910bec466354fca4950de21a78fad98986f2c1593074a44c72f95d8d0760254e6b08a5b3bd6b1a6daef5d39
7
+ data.tar.gz: 244fa8e69810e66bd44b37d6b156dc58229bc6ff6fe39f736928332f1209d200fc003651dc7c8f1863cc90d57dbb24f874e4075492239d33e3506829ecd752ec
@@ -70,7 +70,7 @@ EOF
70
70
  desc 'rubocop', 'Run rubocop'
71
71
  def rubocop
72
72
  system <<-EOF
73
- rubocop \
73
+ bundle _${BUNDLE_VERSION}_ exec rubocop \
74
74
  --parallel \
75
75
  --format progress \
76
76
  --format html \
@@ -1,3 +1,3 @@
1
1
  module NetsoftDanger
2
- VERSION = '0.3.3'.freeze
2
+ VERSION = '0.3.4'.freeze
3
3
  end
@@ -17,9 +17,5 @@ Gem::Specification.new do |s|
17
17
 
18
18
  s.add_development_dependency 'rake'
19
19
  s.add_runtime_dependency 'danger', '~> 5.0'
20
- s.add_runtime_dependency 'rubocop', '~> 0.74.0'
21
- s.add_runtime_dependency 'rubocop-rails', '~> 2.2.1'
22
- s.add_runtime_dependency 'rubocop-performance', '~> 1.4.1'
23
- s.add_runtime_dependency 'rubocop-rspec', '~> 1.35.0'
24
20
  s.add_runtime_dependency 'thor'
25
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netsoft-danger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - urkle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-13 00:00:00.000000000 Z
11
+ date: 2019-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,62 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '5.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rubocop
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.74.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.74.0
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop-rails
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 2.2.1
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 2.2.1
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop-performance
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 1.4.1
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 1.4.1
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 1.35.0
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 1.35.0
97
41
  - !ruby/object:Gem::Dependency
98
42
  name: thor
99
43
  requirement: !ruby/object:Gem::Requirement
@@ -125,13 +69,9 @@ files:
125
69
  - bin/tag_check.sh
126
70
  - dangerfiles/issue.js
127
71
  - dangerfiles/pr.js
128
- - lib/netsoft-danger.rb
129
- - lib/netsoft-danger/cops.rb
130
- - lib/netsoft-danger/cops/netsoft/auth_http_positional_arguments.rb
131
72
  - lib/netsoft-danger/version.rb
132
73
  - netsoft-danger.gemspec
133
74
  - package.json
134
- - rubocop/config-2019-08-12.yml
135
75
  - settings-peril.json
136
76
  - yarn.lock
137
77
  homepage: https://github.com/NetsoftHoldings/danger
@@ -1,3 +0,0 @@
1
- require 'rubocop'
2
-
3
- require_relative 'netsoft-danger/cops'
@@ -1 +0,0 @@
1
- require_relative 'cops/netsoft/auth_http_positional_arguments'
@@ -1,142 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rubocop/cop/mixin/target_rails_version'
4
-
5
- module RuboCop
6
- module Cop
7
- module Netsoft
8
- # This cop is used to identify usages of http methods like `get`, `post`,
9
- # `put`, `patch` without the usage of keyword arguments in your tests and
10
- # change them to use keyword args. This cop only applies to Rails >= 5.
11
- # If you are running Rails < 5 you should disable the
12
- # Netsoft/HttpPositionalArguments cop or set your TargetRailsVersion in your
13
- # .rubocop.yml file to 4.0, etc.
14
- #
15
- # @example
16
- # # bad
17
- # get :new, { user_id: 1}
18
- #
19
- # # good
20
- # get :new, params: { user_id: 1 }
21
- class AuthHttpPositionalArguments < Cop
22
- extend RuboCop::Cop::TargetRailsVersion
23
-
24
- MSG = 'Use keyword arguments instead of ' \
25
- 'positional arguments for http call: `%<verb>s`.'.freeze
26
- KEYWORD_ARGS = %i[
27
- method params session body flash xhr as headers env
28
- ].freeze
29
- HTTP_METHODS = %i[get post put patch delete head].freeze
30
- HTTP_AUTH_METHODS = %i[get_with post_with put_with patch_with delete_with].freeze
31
-
32
- minimum_target_rails_version 5.0
33
-
34
- def_node_matcher :http_request?, <<-PATTERN
35
- (send nil? {#{HTTP_METHODS.map(&:inspect).join(' ')}} !nil? $_ ...)
36
- PATTERN
37
-
38
- def_node_matcher :http_auth_request?, <<-PATTERN
39
- (send nil? {#{HTTP_AUTH_METHODS.map(&:inspect).join(' ')}} !nil? !nil? $_ ...)
40
- PATTERN
41
-
42
- def on_send(node)
43
- http_request?(node) do |data|
44
- return unless needs_conversion?(data)
45
-
46
- add_offense(node, location: :selector,
47
- message: format(MSG, verb: node.method_name))
48
- end
49
-
50
- http_auth_request?(node) do |data|
51
- return unless auth_needs_conversion?(data)
52
-
53
- add_offense(node, location: :selector,
54
- message: format(MSG, verb: node.method_name))
55
- end
56
- end
57
-
58
- # given a pre Rails 5 method: get :new, {user_id: @user.id}, {}
59
- #
60
- # @return lambda of auto correct procedure
61
- # the result should look like:
62
- # get :new, params: { user_id: @user.id }, session: {}
63
- # the http_method is the method used to call the controller
64
- # the controller node can be a symbol, method, object or string
65
- # that represents the path/action on the Rails controller
66
- # the data is the http parameters and environment sent in
67
- # the Rails 5 http call
68
- def autocorrect(node)
69
- has_auth = HTTP_AUTH_METHODS.include?(node.method_name.to_sym)
70
- if has_auth
71
- user, http_path, *data = *node.arguments
72
- else
73
- http_path, *data = *node.arguments
74
- end
75
-
76
- controller_action = http_path.source
77
- params = convert_hash_data(data.first, 'params')
78
- session = convert_hash_data(data.last, 'session') if data.size > 1
79
- # the range of the text to replace, which is the whole line
80
- code_to_replace = node.loc.expression
81
- # what to replace with
82
- format = parentheses_format(node)
83
- new_code = format(format, name: node.method_name,
84
- action: has_auth ? [user.source, controller_action].join(',') : controller_action,
85
- params: params, session: session)
86
- ->(corrector) { corrector.replace(code_to_replace, new_code) }
87
- end
88
-
89
- private
90
-
91
- def needs_conversion?(data)
92
- return true unless data.hash_type?
93
-
94
- data.each_pair.none? do |pair|
95
- special_keyword_arg?(pair.key) ||
96
- format_arg?(pair.key) && data.pairs.one?
97
- end
98
- end
99
-
100
- def auth_needs_conversion?(data)
101
- return true unless data.hash_type?
102
-
103
- data.each_pair.none? do |pair|
104
- special_keyword_arg?(pair.key) ||
105
- format_arg?(pair.key) && data.pairs.one?
106
- end
107
- end
108
-
109
- def special_keyword_arg?(node)
110
- node.sym_type? && KEYWORD_ARGS.include?(node.value)
111
- end
112
-
113
- def format_arg?(node)
114
- node.sym_type? && node.value == :format
115
- end
116
-
117
- def convert_hash_data(data, type)
118
- return '' if data.hash_type? && data.empty?
119
-
120
- hash_data = if data.hash_type?
121
- format('{ %<data>s }',
122
- data: data.pairs.map(&:source).join(', '))
123
- else
124
- # user supplies an object,
125
- # no need to surround with braces
126
- data.source
127
- end
128
-
129
- format(', %<type>s: %<hash_data>s', type: type, hash_data: hash_data)
130
- end
131
-
132
- def parentheses_format(node)
133
- if parentheses?(node)
134
- '%<name>s(%<action>s%<params>s%<session>s)'
135
- else
136
- '%<name>s %<action>s%<params>s%<session>s'
137
- end
138
- end
139
- end
140
- end
141
- end
142
- end
@@ -1,95 +0,0 @@
1
- require:
2
- - netsoft-danger
3
- - rubocop-rails
4
- - rubocop-performance
5
- - rubocop-rspec
6
-
7
- AllCops:
8
- TargetRubyVersion: 2.4
9
- TargetRailsVersion: 5.2
10
- DisplayStyleGuide: true
11
- StyleGuideBaseURL: https://rubystyle.guide
12
- Exclude:
13
- - 'db/**/*'
14
- - 'coverage/**/*'
15
- - 'log/**/*'
16
- - 'public/**/*'
17
- - 'tmp/**/*'
18
- - 'spec/dummy/**/*'
19
- - 'vendor/**/*'
20
-
21
- Naming/RescuedExceptionsVariableName:
22
- PreferredName: ex
23
- Naming/UncommunicativeMethodParamName:
24
- AllowedNames:
25
- - me
26
- - ex
27
-
28
- Layout/AlignHash:
29
- EnforcedHashRocketStyle: table
30
- EnforcedColonStyle: table
31
- Layout/ExtraSpacing:
32
- AllowForAlignment: true
33
- Layout/IndentAssignment:
34
- IndentationWidth: 4
35
- Layout/IndentFirstArrayElement:
36
- EnforcedStyle: consistent
37
- IndentationWidth: 4
38
- Layout/IndentFirstHashElement:
39
- EnforcedStyle: consistent
40
- IndentationWidth: 4
41
- Layout/SpaceInsideBlockBraces:
42
- EnforcedStyle: no_space
43
- SpaceBeforeBlockParameters: false
44
- Layout/SpaceInsideHashLiteralBraces:
45
- EnforcedStyle: no_space
46
-
47
- Lint/AmbiguousBlockAssociation:
48
- Exclude:
49
- - spec/**/*
50
-
51
- Rails:
52
- Enabled: true
53
- Rails/HttpPositionalArguments:
54
- Enabled: false
55
- Rails/SkipsModelValidations:
56
- Whitelist:
57
- - touch
58
- - update_attribute
59
- - update_counters
60
- - increment_counter
61
- - decrement_counter
62
- Netsoft/AuthHttpPositionalArguments:
63
- Enabled: true
64
- Include:
65
- - 'spec/controllers/**/*'
66
-
67
- RSpec/ExpectChange:
68
- EnforcedStyle: block
69
- RSpec/ImplicitSubject:
70
- Enabled: false
71
- RSpec/MessageSpies:
72
- Enabled: false
73
- RSpec/NamedSubject:
74
- Enabled: false
75
- RSpec/NestedGroups:
76
- Enabled: false
77
- RSpec/NotToNot:
78
- EnforcedStyle: to_not
79
-
80
- Style/AndOr:
81
- EnforcedStyle: conditionals
82
- Style/BlockDelimiters:
83
- EnforcedStyle: semantic
84
- AllowBracesOnProceduralOneLiners: true
85
- Style/MultilineBlockChain:
86
- Enabled: false
87
- Style/RescueModifier:
88
- Enabled: false
89
- Style/TrailingCommaInArrayLiteral:
90
- EnforcedStyleForMultiline: comma
91
- Style/TrailingCommaInHashLiteral:
92
- EnforcedStyleForMultiline: comma
93
-
94
- Metrics:
95
- Enabled: false