rubocop-ordered_methods 0.3 → 0.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 +4 -4
- data/.rubocop_todo.yml +13 -8
- data/.travis.yml +3 -1
- data/CHANGELOG.md +34 -0
- data/Gemfile +2 -3
- data/README.md +73 -10
- data/Rakefile +2 -0
- data/bin/console +1 -0
- data/config/default.yml +2 -0
- data/lib/rubocop/cop/correctors/ordered_methods_corrector.rb +40 -48
- data/lib/rubocop/cop/layout/ordered_methods.rb +38 -47
- data/lib/rubocop/ordered_methods.rb +4 -1
- data/lib/rubocop-ordered_methods.rb +2 -0
- data/rubocop-ordered_methods.gemspec +15 -12
- metadata +13 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 711dd4dc7c13df5dc95040f2824dc88868fc3ebc5996088630d0a13638853308
|
4
|
+
data.tar.gz: 4b9e74bb42389db5ac593b9194e5e6138b9d01f174c1d165fc4949e33d6da4b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b427b3dec7ba7f85f291da04d988f0bad8981b4db54ebf769fbf29de2e170abc200a0daf1297ebd92e6dcc5d4a3eb6fb8a058f7d72eae8ba06a412434886b5f
|
7
|
+
data.tar.gz: 03fe372de5334f2b6c25c1a0b78a8047d7cecd8f010eb441ea2d649b39f58228574b65f4eb64a14611072473329c7f1a4cc6a4c21ef62d59da3d2187950f797f
|
data/.rubocop_todo.yml
CHANGED
@@ -1,21 +1,26 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2019-
|
3
|
+
# on 2019-06-10 10:39:16 -0400 using RuboCop version 0.71.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
9
|
# Offense count: 1
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
Metrics/ClassLength:
|
16
|
-
Max: 101
|
10
|
+
# Configuration parameters: Include.
|
11
|
+
# Include: **/*.gemspec
|
12
|
+
Gemspec/RequiredRubyVersion:
|
13
|
+
Exclude:
|
14
|
+
- 'rubocop-ordered_methods.gemspec'
|
17
15
|
|
18
16
|
# Offense count: 1
|
19
17
|
# Configuration parameters: CountComments, ExcludedMethods.
|
20
18
|
Metrics/MethodLength:
|
21
19
|
Max: 11
|
20
|
+
|
21
|
+
# Offense count: 2
|
22
|
+
# Cop supports --auto-correct.
|
23
|
+
Style/RedundantFreeze:
|
24
|
+
Exclude:
|
25
|
+
- 'lib/rubocop/cop/correctors/ordered_methods_corrector.rb'
|
26
|
+
- 'lib/rubocop/cop/layout/ordered_methods.rb'
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [Unreleased]
|
8
|
+
|
9
|
+
## [0.4] - 2019-06-11
|
10
|
+
|
11
|
+
### Changed
|
12
|
+
|
13
|
+
- More robust autocorrection of a method and its surroundings (see `Corrector` in the `README`).
|
14
|
+
|
15
|
+
## [0.3] - 2019-02-17
|
16
|
+
|
17
|
+
### Added
|
18
|
+
|
19
|
+
- Configuration defaults
|
20
|
+
|
21
|
+
## [0.2] - 2019-02-17
|
22
|
+
|
23
|
+
### Added
|
24
|
+
|
25
|
+
- Autocorrector
|
26
|
+
|
27
|
+
## [0.1] - 2019-02-17
|
28
|
+
|
29
|
+
Initial release.
|
30
|
+
|
31
|
+
[Unreleased]: https://github.com/shanecav84/rubocop-ordered_methods/compare/v0.3...HEAD
|
32
|
+
[0.3]: https://github.com/shanecav84/rubocop-ordered_methods/compare/v0.2...v0.3
|
33
|
+
[0.2]: https://github.com/shanecav84/rubocop-ordered_methods/compare/v0.1...v0.2
|
34
|
+
[0.1]: https://github.com/shanecav84/rubocop-ordered_methods/releases/tag/v0.1
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
+
[](https://badge.fury.io/rb/rubocop-ordered_methods)
|
2
|
+
[](https://travis-ci.org/shanecav84/rubocop-ordered_methods)
|
3
|
+
|
1
4
|
# RuboCop OrderedMethods
|
2
5
|
|
3
6
|
Check that methods are defined alphabetically. Note [caveats](#caveats) for
|
4
|
-
|
7
|
+
autocorrection.
|
5
8
|
|
6
9
|
```ruby
|
7
10
|
# bad
|
@@ -47,7 +50,7 @@ Or install it yourself as:
|
|
47
50
|
|
48
51
|
## Usage
|
49
52
|
|
50
|
-
You need to tell RuboCop to load the OrderedMethods extension. There are
|
53
|
+
You need to tell RuboCop to load the OrderedMethods extension. There are two
|
51
54
|
ways to do this:
|
52
55
|
|
53
56
|
### RuboCop configuration file
|
@@ -71,17 +74,70 @@ rubocop --require rubocop-ordered_methods
|
|
71
74
|
|
72
75
|
Name | Default value | Configurable values
|
73
76
|
--- | --- | ---
|
77
|
+
EnforcedStyle | `alphabetical` | `alphabetical`
|
74
78
|
IgnoredMethods | `initialize` | Array
|
75
79
|
|
76
80
|
### Corrector
|
77
81
|
|
78
|
-
The corrector will attempt to order methods
|
79
|
-
include surrounding comments and the qualifiers listed in
|
80
|
-
`::RuboCop::Cop::
|
82
|
+
The corrector will attempt to order methods based on the `EnforcedStyle`. It attempts to
|
83
|
+
include surrounding comments and the qualifiers (e.g., aliases) listed in
|
84
|
+
`::RuboCop::Cop::OrderedMethodsCorrector::QUALIFIERS`. The following (monstrous)
|
85
|
+
source is able to be correctly ordered:
|
86
|
+
|
87
|
+
```ruby
|
88
|
+
# Long
|
89
|
+
# Preceding
|
90
|
+
# Comment
|
91
|
+
# class_b
|
92
|
+
def self.class_b; end
|
93
|
+
private_class_method :class_b
|
94
|
+
|
95
|
+
def self.class_a; end
|
96
|
+
# Long
|
97
|
+
# Succeeding
|
98
|
+
# Comment
|
99
|
+
# class_a
|
100
|
+
public_class_method :class_a
|
101
|
+
|
102
|
+
# Preceding comment for instance_b
|
103
|
+
def instance_b; end
|
104
|
+
# Long
|
105
|
+
# Succeeding
|
106
|
+
# Comment
|
107
|
+
# instance_b
|
108
|
+
alias_method :orig_instance_b, :instance_b
|
109
|
+
module_function :instance_b
|
110
|
+
private :instance_b
|
111
|
+
protected :instance_b
|
112
|
+
public :instance_b
|
113
|
+
|
114
|
+
# Long
|
115
|
+
# Preceding
|
116
|
+
# Comment
|
117
|
+
# instance_a
|
118
|
+
def instance_a; end
|
119
|
+
# Succeeding comment for instance_a
|
120
|
+
alias :new_instance_a :instance_a
|
121
|
+
alias_method :orig_instance_a, :instance_a
|
122
|
+
module_function :instance_a
|
123
|
+
private :instance_a
|
124
|
+
protected :instance_a
|
125
|
+
public :instance_a
|
126
|
+
```
|
81
127
|
|
82
128
|
#### Caveats
|
83
|
-
|
84
|
-
|
129
|
+
|
130
|
+
* The corrector will warn and refuse to order a method if it were to be
|
131
|
+
defined before its alias
|
132
|
+
* If there's ambiguity about which method a comment or qualifier belongs to,
|
133
|
+
the corrector might fail to order correctly. For example, in the following,
|
134
|
+
the corrector would incorrectly order the comment as a comment of `a`:
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
def b; end
|
138
|
+
# Comment b
|
139
|
+
def a; end
|
140
|
+
```
|
85
141
|
|
86
142
|
## Development
|
87
143
|
|
@@ -94,12 +150,19 @@ bundle exec rake
|
|
94
150
|
|
95
151
|
## Contributing
|
96
152
|
|
97
|
-
Bug reports and pull requests are welcome on GitHub at
|
153
|
+
Bug reports and pull requests are welcome on GitHub at
|
154
|
+
https://github.com/shanecav84/rubocop-ordered_methods. This project is intended
|
155
|
+
to be a safe, welcoming space for collaboration, and contributors are expected
|
156
|
+
to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of
|
157
|
+
conduct.
|
98
158
|
|
99
159
|
## License
|
100
160
|
|
101
|
-
The gem is available as open source under the terms of the
|
161
|
+
The gem is available as open source under the terms of the
|
162
|
+
[MIT License](https://opensource.org/licenses/MIT).
|
102
163
|
|
103
164
|
## Code of Conduct
|
104
165
|
|
105
|
-
Everyone interacting in the RuboCop OrderedMethods project’s codebases, issue
|
166
|
+
Everyone interacting in the RuboCop OrderedMethods project’s codebases, issue
|
167
|
+
trackers, chat rooms and mailing lists is expected to follow the
|
168
|
+
[code of conduct](https://github.com/shanecav84/rubocop-ordered_methods/blob/master/CODE_OF_CONDUCT.md).
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/config/default.yml
CHANGED
@@ -14,11 +14,15 @@ module RuboCop
|
|
14
14
|
'%<first_method_name>s and %<second_method_name>s because ' \
|
15
15
|
'alias for %<first_method_name>s would be declared before ' \
|
16
16
|
'its method definition.'.freeze
|
17
|
-
QUALIFIERS =
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
QUALIFIERS = %i[
|
18
|
+
alias_method
|
19
|
+
module_function
|
20
|
+
private_class_method
|
21
|
+
public_class_method
|
22
|
+
private
|
23
|
+
protected
|
24
|
+
public
|
25
|
+
].freeze
|
22
26
|
|
23
27
|
def_node_matcher :alias?, '(:alias ... (sym $_method_name))'
|
24
28
|
def_node_matcher :qualifier?, <<-PATTERN
|
@@ -32,8 +36,8 @@ module RuboCop
|
|
32
36
|
@previous_node = previous_node
|
33
37
|
|
34
38
|
verify_alias_method_order
|
35
|
-
current_range =
|
36
|
-
previous_range =
|
39
|
+
current_range = join_surroundings(@current_node)
|
40
|
+
previous_range = join_surroundings(@previous_node)
|
37
41
|
lambda do |corrector|
|
38
42
|
corrector.replace(current_range, previous_range.source)
|
39
43
|
corrector.replace(previous_range, current_range.source)
|
@@ -43,9 +47,38 @@ module RuboCop
|
|
43
47
|
private
|
44
48
|
|
45
49
|
def found_qualifier?(node, next_sibling)
|
50
|
+
return false if next_sibling.nil?
|
51
|
+
|
46
52
|
(qualifier?(next_sibling) || alias?(next_sibling)) == node.method_name
|
47
53
|
end
|
48
54
|
|
55
|
+
def join_comments(node, source_range)
|
56
|
+
@processed_source.ast_with_comments[node].each do |comment|
|
57
|
+
source_range = source_range.join(comment.loc.expression)
|
58
|
+
end
|
59
|
+
source_range
|
60
|
+
end
|
61
|
+
|
62
|
+
def join_modifiers_and_aliases(node, source_range)
|
63
|
+
siblings = node.parent.children
|
64
|
+
preceding_qualifier_index = node.sibling_index
|
65
|
+
while found_qualifier?(node, siblings[preceding_qualifier_index + 1])
|
66
|
+
source_range = source_range.join(
|
67
|
+
siblings[preceding_qualifier_index + 1].source_range
|
68
|
+
)
|
69
|
+
preceding_qualifier_index += 1
|
70
|
+
end
|
71
|
+
source_range
|
72
|
+
end
|
73
|
+
|
74
|
+
def join_surroundings(node)
|
75
|
+
with_modifiers_and_aliases = join_modifiers_and_aliases(
|
76
|
+
node,
|
77
|
+
node.source_range
|
78
|
+
)
|
79
|
+
join_comments(node, with_modifiers_and_aliases)
|
80
|
+
end
|
81
|
+
|
49
82
|
# We don't want a method to be defined after its alias
|
50
83
|
def moving_after_alias?(current_node, previous_node)
|
51
84
|
siblings = current_node.parent.children
|
@@ -82,47 +115,6 @@ module RuboCop
|
|
82
115
|
end
|
83
116
|
end
|
84
117
|
# rubocop:enable Metrics/MethodLength, Style/GuardClause
|
85
|
-
|
86
|
-
def with_comments(node)
|
87
|
-
node.source_range
|
88
|
-
.join(with_preceding_comments(node))
|
89
|
-
.join(with_succeeding_comments(node))
|
90
|
-
end
|
91
|
-
|
92
|
-
def with_modifiers_and_aliases(node)
|
93
|
-
surrounding_range = node.source_range
|
94
|
-
siblings = node.parent.children
|
95
|
-
qualifier_index = node.sibling_index
|
96
|
-
while found_qualifier?(node, siblings[qualifier_index + 1])
|
97
|
-
qualifier_index += 1
|
98
|
-
end
|
99
|
-
found_node_range = with_comments(siblings[qualifier_index])
|
100
|
-
surrounding_range.join(found_node_range)
|
101
|
-
end
|
102
|
-
|
103
|
-
def with_preceding_comments(node)
|
104
|
-
surrounding_range = node.source_range
|
105
|
-
@processed_source.ast_with_comments[node].each do |comment|
|
106
|
-
surrounding_range = surrounding_range.join(comment.loc.expression)
|
107
|
-
end
|
108
|
-
surrounding_range
|
109
|
-
end
|
110
|
-
|
111
|
-
def with_succeeding_comments(node)
|
112
|
-
surrounding_range = node.source_range
|
113
|
-
@processed_source.each_comment do |comment|
|
114
|
-
if comment.loc.expression.begin_pos == surrounding_range.end_pos + 1
|
115
|
-
surrounding_range = surrounding_range.join(comment.loc.expression)
|
116
|
-
end
|
117
|
-
end
|
118
|
-
surrounding_range
|
119
|
-
end
|
120
|
-
|
121
|
-
def with_surroundings(node)
|
122
|
-
node.source_range
|
123
|
-
.join(with_comments(node))
|
124
|
-
.join(with_modifiers_and_aliases(node))
|
125
|
-
end
|
126
118
|
end
|
127
119
|
end
|
128
120
|
end
|
@@ -3,9 +3,9 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Layout
|
6
|
-
#
|
6
|
+
# @example EnforcedStyle: alphabetical (default)
|
7
|
+
# # Check that methods are defined alphabetically.
|
7
8
|
#
|
8
|
-
# @example
|
9
9
|
# # bad
|
10
10
|
# def self.b; end
|
11
11
|
# def self.a; end
|
@@ -33,19 +33,13 @@ module RuboCop
|
|
33
33
|
include IgnoredMethods
|
34
34
|
include RangeHelp
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
def_node_matcher :class_def?, 'defs'
|
45
|
-
def_node_matcher :instance_def?, 'def'
|
46
|
-
def_node_matcher :visibility_modifier?, <<-PATTERN
|
47
|
-
(send nil? { #{VISIBILITY_MODIFIERS.map(&:inspect).join(' ')} })
|
48
|
-
PATTERN
|
36
|
+
COMPARISONS = {
|
37
|
+
'alphabetical' => lambda do |left_method, right_method|
|
38
|
+
(left_method.method_name <=> right_method.method_name) != 1
|
39
|
+
end
|
40
|
+
}.freeze
|
41
|
+
ERR_INVALID_COMPARISON = 'Invalid "Comparison" config for ' \
|
42
|
+
"#{cop_name}. Expected one of: #{COMPARISONS.keys.join(', ')}".freeze
|
49
43
|
|
50
44
|
def autocorrect(node)
|
51
45
|
OrderedMethodsCorrector.correct(
|
@@ -59,15 +53,27 @@ module RuboCop
|
|
59
53
|
consecutive_methods(node.children) do |previous, current|
|
60
54
|
unless ordered?(previous, current)
|
61
55
|
@previous_node = previous
|
62
|
-
add_offense(
|
56
|
+
add_offense(
|
57
|
+
current,
|
58
|
+
message: 'Methods should be sorted in ' \
|
59
|
+
"#{cop_config['EnforcedStyle']} order."
|
60
|
+
)
|
63
61
|
end
|
64
62
|
end
|
65
63
|
end
|
66
64
|
|
67
65
|
private
|
68
66
|
|
69
|
-
def
|
70
|
-
|
67
|
+
def access_modified?(node, is_class_method_block)
|
68
|
+
(node.defs_type? && !is_class_method_block) ||
|
69
|
+
(node.def_type? && is_class_method_block) ||
|
70
|
+
(node.send_type? && node.bare_access_modifier?)
|
71
|
+
end
|
72
|
+
|
73
|
+
def consecutive_methods(nodes)
|
74
|
+
filtered = filter_relevant_nodes(nodes)
|
75
|
+
filtered_and_grouped = group_methods_by_access_modifier(filtered)
|
76
|
+
filtered_and_grouped.each do |method_group|
|
71
77
|
method_group.each_cons(2) do |left_method, right_method|
|
72
78
|
yield left_method, right_method
|
73
79
|
end
|
@@ -77,54 +83,39 @@ module RuboCop
|
|
77
83
|
def filter_relevant_nodes(nodes)
|
78
84
|
nodes.select do |node|
|
79
85
|
(
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
) && !ignored_method?(node.method_name)
|
86
|
+
(node.defs_type? || node.def_type?) &&
|
87
|
+
!ignored_method?(node.method_name)
|
88
|
+
) || (node.send_type? && node.bare_access_modifier?)
|
84
89
|
end
|
85
90
|
end
|
86
91
|
|
87
|
-
|
88
|
-
|
89
|
-
end
|
90
|
-
|
91
|
-
# Group methods by the visiblity block they are declared in. Multiple
|
92
|
-
# blocks of the same visiblity will have their methods grouped
|
92
|
+
# Group methods by the access modifier block they are declared in.
|
93
|
+
# Multiple blocks of the same modifier will have their methods grouped
|
93
94
|
# separately; for example, the following would be separated into two
|
94
95
|
# groups:
|
95
96
|
# private
|
96
97
|
# def a; end
|
97
98
|
# private
|
98
99
|
# def b; end
|
99
|
-
|
100
|
-
def group_methods_by_visiblity_block(nodes)
|
100
|
+
def group_methods_by_access_modifier(nodes)
|
101
101
|
is_class_method_block = false
|
102
|
+
|
102
103
|
nodes.each_with_object([[]]) do |node, grouped_methods|
|
103
|
-
if
|
104
|
+
if access_modified?(node, is_class_method_block)
|
104
105
|
grouped_methods << []
|
105
106
|
end
|
106
|
-
|
107
|
-
|
108
|
-
is_class_method_block = false if instance_def?(node)
|
109
|
-
|
110
|
-
if visibility_modifier?(node)
|
111
|
-
is_class_method_block = false
|
112
|
-
next
|
113
|
-
end
|
107
|
+
is_class_method_block = node.defs_type?
|
108
|
+
next if node.send_type? && node.bare_access_modifier?
|
114
109
|
|
115
110
|
grouped_methods.last << node
|
116
111
|
end
|
117
112
|
end
|
118
|
-
# rubocop:enable Metrics/MethodLength
|
119
|
-
|
120
|
-
def new_visiblity_block?(node, is_class_method_block)
|
121
|
-
(class_def?(node) && !is_class_method_block) ||
|
122
|
-
(instance_def?(node) && is_class_method_block) ||
|
123
|
-
visibility_modifier?(node)
|
124
|
-
end
|
125
113
|
|
126
114
|
def ordered?(left_method, right_method)
|
127
|
-
|
115
|
+
comparison = COMPARISONS[cop_config['EnforcedStyle']]
|
116
|
+
raise Error, ERR_INVALID_COMPARISON if comparison.nil?
|
117
|
+
|
118
|
+
comparison.call(left_method, right_method)
|
128
119
|
end
|
129
120
|
end
|
130
121
|
end
|
@@ -1,7 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module RuboCop
|
4
|
+
# Our namespace
|
2
5
|
module OrderedMethods
|
3
6
|
PROJECT_ROOT = Pathname.new(__dir__).parent.parent.expand_path.freeze
|
4
|
-
CONFIG_DEFAULT = PROJECT_ROOT.join(
|
7
|
+
CONFIG_DEFAULT = PROJECT_ROOT.join('config', 'default.yml').freeze
|
5
8
|
|
6
9
|
def self.inject_defaults!
|
7
10
|
path = CONFIG_DEFAULT.to_s
|
@@ -1,31 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
|
4
6
|
Gem::Specification.new do |spec|
|
5
|
-
spec.name
|
6
|
-
spec.version
|
7
|
-
spec.authors
|
8
|
-
spec.email
|
7
|
+
spec.name = 'rubocop-ordered_methods'
|
8
|
+
spec.version = '0.4'
|
9
|
+
spec.authors = ['Shane Cavanaugh']
|
10
|
+
spec.email = ['shane@shanecav.net']
|
9
11
|
|
10
|
-
spec.summary
|
11
|
-
spec.homepage
|
12
|
-
spec.license
|
12
|
+
spec.summary = 'Checks that methods are ordered alphabetically.'
|
13
|
+
spec.homepage = 'https://github.com/shanecav84/rubocop-ordered_methods'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
spec.required_ruby_version = '>= 2.2.2'
|
13
16
|
|
14
17
|
# Specify which files should be added to the gem when it is released.
|
15
18
|
# The `git ls-files -z` loads the files in the RubyGem that have been added
|
16
19
|
# into git.
|
17
|
-
spec.files
|
20
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
18
21
|
`git ls-files -z`.split("\x0").reject do |f|
|
19
22
|
f.match(%r{^(test|spec|features)/})
|
20
23
|
end
|
21
24
|
end
|
22
|
-
spec.bindir
|
23
|
-
spec.executables
|
25
|
+
spec.bindir = 'exe'
|
26
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
27
|
spec.require_paths = ['lib']
|
25
28
|
|
26
|
-
spec.add_runtime_dependency 'rubocop', '
|
29
|
+
spec.add_runtime_dependency 'rubocop', '>= 0.60'
|
27
30
|
|
28
|
-
spec.add_development_dependency 'bundler'
|
31
|
+
spec.add_development_dependency 'bundler'
|
29
32
|
spec.add_development_dependency 'rake', '~> 10.0'
|
30
33
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
31
34
|
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-ordered_methods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shane Cavanaugh
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.60'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.60'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- ".rubocop.yml"
|
78
78
|
- ".rubocop_todo.yml"
|
79
79
|
- ".travis.yml"
|
80
|
+
- CHANGELOG.md
|
80
81
|
- CODE_OF_CONDUCT.md
|
81
82
|
- Gemfile
|
82
83
|
- LICENSE.txt
|
@@ -101,14 +102,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
101
102
|
requirements:
|
102
103
|
- - ">="
|
103
104
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
105
|
+
version: 2.2.2
|
105
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
107
|
requirements:
|
107
108
|
- - ">="
|
108
109
|
- !ruby/object:Gem::Version
|
109
110
|
version: '0'
|
110
111
|
requirements: []
|
111
|
-
rubygems_version: 3.0.
|
112
|
+
rubygems_version: 3.0.3
|
112
113
|
signing_key:
|
113
114
|
specification_version: 4
|
114
115
|
summary: Checks that methods are ordered alphabetically.
|