{"id":13879286,"url":"https://github.com/rubocop/rubocop-ast","last_synced_at":"2026-04-01T20:24:32.732Z","repository":{"id":38288163,"uuid":"263238990","full_name":"rubocop/rubocop-ast","owner":"rubocop","description":"RuboCop's AST extensions and NodePattern functionality","archived":false,"fork":false,"pushed_at":"2025-04-03T05:14:43.000Z","size":1392,"stargazers_count":118,"open_issues_count":9,"forks_count":56,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-09T21:02:18.507Z","etag":null,"topics":["ast","hacktoberfest","rubocop","ruby"],"latest_commit_sha":null,"homepage":"https://docs.rubocop.org/rubocop-ast","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubocop.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"bbatsov","patreon":"bbatsov","open_collective":"rubocop","tidelift":"rubygems/rubocop","custom":"https://www.paypal.me/bbatsov"}},"created_at":"2020-05-12T05:13:43.000Z","updated_at":"2025-04-06T10:35:44.000Z","dependencies_parsed_at":"2024-01-16T08:52:28.565Z","dependency_job_id":"7ab7be4a-41b2-4ad4-9489-6935815b4fd6","html_url":"https://github.com/rubocop/rubocop-ast","commit_stats":{"total_commits":986,"total_committers":80,"mean_commits":12.325,"dds":0.5730223123732252,"last_synced_commit":"02b8d0faeeebc3ba6b5284c9e66569bbae836941"},"previous_names":[],"tags_count":85,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop-ast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop-ast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop-ast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubocop%2Frubocop-ast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubocop","download_url":"https://codeload.github.com/rubocop/rubocop-ast/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248301529,"owners_count":21080908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ast","hacktoberfest","rubocop","ruby"],"created_at":"2024-08-06T08:02:16.238Z","updated_at":"2025-12-28T10:19:52.569Z","avatar_url":"https://github.com/rubocop.png","language":"Ruby","funding_links":["https://github.com/sponsors/bbatsov","https://patreon.com/bbatsov","https://opencollective.com/rubocop","https://tidelift.com/funding/github/rubygems/rubocop","https://www.paypal.me/bbatsov"],"categories":["Ruby"],"sub_categories":[],"readme":"# RuboCop AST\n\n[![Gem Version](https://badge.fury.io/rb/rubocop-ast.svg)](https://badge.fury.io/rb/rubocop-ast)\n[![CI](https://github.com/rubocop/rubocop-ast/actions/workflows/rubocop.yml/badge.svg)](https://github.com/rubocop/rubocop-ast/actions/workflows/rubocop.yml)\n\nContains the classes needed by [RuboCop](https://github.com/rubocop/rubocop) to deal with Ruby's AST, in particular:\n\n* `RuboCop::AST::Node` ([doc](docs/modules/ROOT/pages/node_types.adoc))\n* `RuboCop::AST::NodePattern` ([doc](docs/modules/ROOT/pages/node_pattern.adoc))\n\nThis gem may be used independently from the main RuboCop gem. It was extracted from RuboCop in version 0.84 and its only\ndependency is the [parser](https://github.com/whitequark/parser) gem, which `rubocop-ast` extends.\n\n## Installation\n\nJust install the `rubocop-ast` gem\n\n```sh\ngem install rubocop-ast\n```\n\nor if you use bundler put this in your `Gemfile`\n\n```ruby\ngem 'rubocop-ast'\n```\n\n## Usage\n\nRefer to the documentation of [`RuboCop::AST::Node`](docs/modules/ROOT/pages/node_types.adoc) and [`RuboCop::AST::NodePattern`](docs/modules/ROOT/pages/node_pattern.adoc)\n\nSee the [docs site](https://docs.rubocop.org/rubocop-ast) for more details.\n\n### Parser compatibility switches\n\nThis gem, by default, uses most [legacy AST output from parser](https://github.com/whitequark/parser/#usage), except for the following which are set to `true`:\n* `emit_forward_arg`\n* `emit_match_pattern`\n\nThe 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 `-\u003e { ... }` emitted\nas `LambdaNode` instead of `SendNode`:\n\n```ruby\nRuboCop::AST::Builder.emit_lambda = true\n```\n\n## Contributing\n\nCheckout the [contribution guidelines](CONTRIBUTING.md).\n\n## License\n\n`rubocop-ast` is MIT licensed. [See the accompanying file](LICENSE.txt) for\nthe full text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubocop%2Frubocop-ast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubocop%2Frubocop-ast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubocop%2Frubocop-ast/lists"}