rubocop-ordered_methods 0.3 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33871b68e39c03de6c12f462dc732d282489b190bdaedca681f955c60a27c20c
4
- data.tar.gz: c9c22948ef1db00f774d8fcfdf0cd2f60422da6c44b16a3e9430bdef42c86efb
3
+ metadata.gz: 711dd4dc7c13df5dc95040f2824dc88868fc3ebc5996088630d0a13638853308
4
+ data.tar.gz: 4b9e74bb42389db5ac593b9194e5e6138b9d01f174c1d165fc4949e33d6da4b2
5
5
  SHA512:
6
- metadata.gz: 571d2b28004397aff91256be2d4b153255870d5b7a4bd8877c3956003e3d73959e5bca95fa7b26901ccf43ee343a5b722eae24dea79540948cbe48a3d016d3bb
7
- data.tar.gz: 3fe6b38928ed8c4ee6b5c08d27e3ba4e84277f98e7dfa9fe2e74cca570874b4f63caed8ba40ef5e8799d22bd6ae39db4a619beaddde5cc5328d9685e02525809
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-02-17 13:54:25 -0500 using RuboCop version 0.64.0.
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
- Metrics/AbcSize:
11
- Max: 17
12
-
13
- # Offense count: 1
14
- # Configuration parameters: CountComments.
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
@@ -8,4 +8,6 @@ rvm:
8
8
  - 2.4
9
9
  - 2.5
10
10
  - 2.6
11
- before_install: gem install bundler -v 1.17.2
11
+ script: bundle exec rake
12
+ before_install:
13
+ - gem install bundler || gem install bundler --version '< 2'
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
@@ -1,6 +1,5 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
2
 
3
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
3
+ source 'https://rubygems.org'
4
4
 
5
- # Specify your gem's dependencies in rubocop-ordered_methods.gemspec
6
5
  gemspec
data/README.md CHANGED
@@ -1,7 +1,10 @@
1
+ [![Gem Version](https://badge.fury.io/rb/rubocop-ordered_methods.svg)](https://badge.fury.io/rb/rubocop-ordered_methods)
2
+ [![Build Status](https://travis-ci.org/shanecav84/rubocop-ordered_methods.svg?branch=master)](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
- autocorrector.
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 three
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 alphabetically. It attempts to
79
- include surrounding comments and the qualifiers listed in
80
- `::RuboCop::Cop::Layout::OrderedMethods::QUALIFIERS`.
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
- The corrector can fail to include surrounding comments and qualifiers for some
84
- methods.
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 https://github.com/shanecav84/rubocop-ordered_methods. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
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 [MIT License](https://opensource.org/licenses/MIT).
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 trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/shanecav84/rubocop-ordered_methods/blob/master/CODE_OF_CONDUCT.md).
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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rubocop/rake_task'
3
5
  require 'rspec/core/rake_task'
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'rubocop/ordered_methods'
data/config/default.yml CHANGED
@@ -1,4 +1,6 @@
1
1
  ---
2
2
  Layout/OrderedMethods:
3
+ Enabled: true
4
+ EnforcedStyle: 'alphabetical'
3
5
  IgnoredMethods:
4
6
  - initialize
@@ -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
- %i[alias_method private_class_method public_class_method] +
19
- ::RuboCop::Cop::Layout::OrderedMethods::
20
- VISIBILITY_MODIFIERS
21
- ).freeze
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 = with_surroundings(@current_node)
36
- previous_range = with_surroundings(@previous_node)
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
- # Check that methods are defined alphabetically.
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
- MSG = 'Methods should be sorted alphabetically.'.freeze
37
- VISIBILITY_MODIFIERS = %i[
38
- module_function
39
- private
40
- protected
41
- public
42
- ].freeze
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(current)
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 consecutive_methods(ast)
70
- filtered_and_grouped(ast).each do |method_group|
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
- class_def?(node) ||
81
- instance_def?(node) ||
82
- visibility_modifier?(node)
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
- def filtered_and_grouped(ast)
88
- group_methods_by_visiblity_block(filter_relevant_nodes(ast))
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
- # rubocop:disable Metrics/MethodLength
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 new_visiblity_block?(node, is_class_method_block)
104
+ if access_modified?(node, is_class_method_block)
104
105
  grouped_methods << []
105
106
  end
106
-
107
- is_class_method_block = true if class_def?(node)
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
- (left_method.method_name <=> right_method.method_name) != 1
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("config", "default.yml").freeze
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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubocop'
2
4
  require_relative 'rubocop/ordered_methods'
3
5
  require_relative 'rubocop/cop/layout/ordered_methods'
@@ -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 = 'rubocop-ordered_methods'
6
- spec.version = '0.3'
7
- spec.authors = ['Shane Cavanaugh']
8
- spec.email = ['shane@shanecav.net']
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 = 'Checks that methods are ordered alphabetically.'
11
- spec.homepage = 'https://github.com/shanecav84/rubocop-ordered_methods'
12
- spec.license = 'MIT'
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 = Dir.chdir(File.expand_path(__dir__)) do
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 = 'exe'
23
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
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', '~> 0.6'
29
+ spec.add_runtime_dependency 'rubocop', '>= 0.60'
27
30
 
28
- spec.add_development_dependency 'bundler', '~> 1.17'
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.3'
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-02-17 00:00:00.000000000 Z
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.6'
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.6'
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: '1.17'
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: '1.17'
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: '0'
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.1
112
+ rubygems_version: 3.0.3
112
113
  signing_key:
113
114
  specification_version: 4
114
115
  summary: Checks that methods are ordered alphabetically.