Skip to content

Commit

Permalink
[Fixes rubocop#44] Use parser's new emit_forward_arg by default
Browse files Browse the repository at this point in the history
Bump minimum RuboCop supported as we need the following commit:
rubocop/rubocop@3aeadd921fb526
  • Loading branch information
marcandre committed Aug 1, 2020
1 parent add3be7 commit 2c92867
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 8 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/rubocop.yml
Expand Up @@ -25,9 +25,9 @@ jobs:
title: [ null ]
include:
- { os: windows, rubocop: master, ruby: mingw }
- { rubocop: '0.84.0', ruby: 2.4, os: ubuntu }
- { rubocop: '0.84.0', ruby: head, os: ubuntu }
- { rubocop: '0.84.0', ruby: 2.4, os: ubuntu, coverage: true, title: 'Coverage' }
- { rubocop: '0.87.0', ruby: 2.4, os: ubuntu }
- { rubocop: '0.87.0', ruby: head, os: ubuntu }
- { rubocop: '0.87.0', ruby: 2.4, os: ubuntu, coverage: true, title: 'Coverage' }
- { rubocop: master, ruby: 2.7, os: ubuntu, modern: true, title: 'Specs "modern"' }
- { rubocop: master, ruby: 2.7, os: ubuntu, internal_investigation: true, modern: true, title: 'Coding Style' }

Expand Down Expand Up @@ -87,7 +87,7 @@ jobs:
matrix:
os: [ ubuntu ]
ruby: [ 2.4, 2.7 ]
rubocop: [ '0.84.0', master ]
rubocop: [ '0.87.0', master ]

steps:
- name: checkout
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -17,6 +17,7 @@

### Changes

* [#44](https://github.com/rubocop-hq/rubocop-ast/issue/44): **(Breaking)** Use `parser` flag `self.emit_forward_arg = true` by default. ([@marcandre][])
* [#86](https://github.com/rubocop-hq/rubocop-ast/pull/86): `PairNode#delimiter` and `inverse_delimiter` now accept their argument as a named argument. ([@marcandre][])

## 0.2.0 (2020-07-19)
Expand Down
5 changes: 3 additions & 2 deletions README.md
Expand Up @@ -35,8 +35,9 @@ See the [docs site](https://docs.rubocop.org/rubocop-ast) for more details.

### Parser compatibility switches

The main `RuboCop` gem uses [legacy AST output from parser](https://github.com/whitequark/parser/#usage).
This gem is meant to be compatible with all settings. For example, to have `-> { ... }` emitted
This gem, by default, uses most [legacy AST output from parser](https://github.com/whitequark/parser/#usage), except for `emit_forward_arg` which is set to `true`.

The main `RuboCop` gem uses these defaults (and is currently only compatible with these), but this gem can be used separately from `RuboCop` and is meant to be compatible with all settings. For example, to have `-> { ... }` emitted
as `LambdaNode` instead of `SendNode`:

```ruby
Expand Down
2 changes: 2 additions & 0 deletions lib/rubocop/ast/builder.rb
Expand Up @@ -14,6 +14,8 @@ module AST
# parser = Parser::Ruby25.new(builder)
# root_node = parser.parse(buffer)
class Builder < Parser::Builders::Default
self.emit_forward_arg = true

NODE_MAP = {
and: AndNode,
alias: AliasNode,
Expand Down
2 changes: 1 addition & 1 deletion rubocop-ast.gemspec
Expand Up @@ -29,7 +29,7 @@ Gem::Specification.new do |s|
'bug_tracker_uri' => 'https://github.com/rubocop-hq/rubocop-ast/issues'
}

s.add_runtime_dependency('parser', '>= 2.7.0.1')
s.add_runtime_dependency('parser', '>= 2.7.1.4')

s.add_development_dependency('bundler', '>= 1.15.0', '< 3.0')

Expand Down
5 changes: 4 additions & 1 deletion spec/spec_helper.rb
Expand Up @@ -8,7 +8,10 @@
end

require 'rubocop-ast'
RuboCop::AST::Builder.modernize if ENV['MODERNIZE']
if ENV['MODERNIZE']
RuboCop::AST::Builder.modernize
RuboCop::AST::Builder.emit_forward_arg = false # inverse of default
end

RSpec.shared_context 'ruby 2.3', :ruby23 do
let(:ruby_version) { 2.3 }
Expand Down

0 comments on commit 2c92867

Please sign in to comment.