Querly에서 Ruby를 grep
무엇이 기뻐요?
일반 grep 명령보다 Ruby 코드에 적합한 세밀한 검색이 가능합니다.
어떻게?
먼저 설치합니다.
$ gem install querly
그런 다음 querly find
명령을 실행합니다.
app/
디렉토리의 Ruby 파일에 임의의 인수를 준 save!
메소드 호출을 검색합니다.
$ querly find 'save!(...)' app/
app/models/tweet.rb:100:6 tweet.save!
app/models/notification.rb:36:8 notification.save!
app/models/notification.rb:173:8 notification.save!
app/models/html_variant.rb:16:4 save!
app/models/github_issue.rb:32:4 issue.save!
app/controllers/comments_controller.rb:134:6 @comment.save!
app/controllers/internal/users_controller.rb:127:6 MentorRelationship.new(mentee_id: mentee.id, mentor_id: @user.id).save!
app/controllers/internal/users_controller.rb:131:6 MentorRelationship.new(mentee_id: @user.id, mentor_id: mentor.id).save!
app/controllers/users_controller.rb:82:7 if current_user.save!
app/controllers/giveaways_controller.rb:50:9 if @user.save!
app/services/authorization_service.rb:68:6 user.save!
app/services/authorization_service.rb:100:6 identity.save!
app/labor/podcast_feed.rb:42:4 ep.save!
13 results
app/
디렉토리의 Ruby 파일에 self
리시버로부터의 임의의 인수를 준 save!
메소드 호출을 검색합니다.
$ querly find 'self.save!(...)' app/
app/models/html_variant.rb:16:4 save!
1 results
name=
메소드 호출 (대입)을 검색합니다.
$ querly find 'name=(...)' app/
app/controllers/html_variants_controller.rb:20:6 @html_variant.name = @fork.name + " FORK-#{rand(10000)}"
app/services/authorization_service.rb:61:8 user.name = auth.info.nickname
app/services/rss_reader/assembler.rb:72:10 iframe.name = "p"
app/services/rss_reader/assembler.rb:89:10 bq.name = "p"
app/services/rss_reader/assembler.rb:99:10 iframe.name = "p"
app/labor/html_cleaner.rb:18:6 el.name = "p"
6 results
인수에 String
를 지정한 name=
메소드 호출을 검색합니다.
$ querly find 'name=(:string:)' app/
app/services/rss_reader/assembler.rb:72:10 iframe.name = "p"
app/services/rss_reader/assembler.rb:89:10 bq.name = "p"
app/services/rss_reader/assembler.rb:99:10 iframe.name = "p"
app/labor/html_cleaner.rb:18:6 el.name = "p"
4 results
Article.where
메소드 호출에서 ... 인수의 패턴은 실제 예제를 참조하십시오.
(코드를 보는 것이 빠를까 )
$ querly find 'Article.where(published: :bool:, user_id: _)' app/
app/controllers/pages_controller.rb:78:4 Article.where(user_id: ApplicationConfig["DEVTO_USER_ID"], published: true).
app/labor/article_analytics_fetcher.rb:7:24 articles_to_check = Article.where(user_id: user_id, published: true)
2 results
* 상기는 thepracticaldev/dev.to 리포지토리에 대해 실행한 결과입니다.
원래 Querly란?
독특한 패턴 언어 에 의해 Ruby 메서드 호출 패턴을 감지하는 도구입니다.
soutaro/querly: Query Method Calls from Ruby Programs
보통은 querly.yml
라는 YAML 파일에 프로젝트 고유의 패턴을 룰화해, 자동으로 체크한다, 라고 하는 사용법을 합니다.
rules:
- id: sample.debug_print
pattern:
- self.p
- self.pp
message: Delete debug print
자세한 것은, 이하의 기사가 참고가 됩니다.
먼저 설치합니다.
$ gem install querly
그런 다음
querly find
명령을 실행합니다.app/
디렉토리의 Ruby 파일에 임의의 인수를 준 save!
메소드 호출을 검색합니다.$ querly find 'save!(...)' app/
app/models/tweet.rb:100:6 tweet.save!
app/models/notification.rb:36:8 notification.save!
app/models/notification.rb:173:8 notification.save!
app/models/html_variant.rb:16:4 save!
app/models/github_issue.rb:32:4 issue.save!
app/controllers/comments_controller.rb:134:6 @comment.save!
app/controllers/internal/users_controller.rb:127:6 MentorRelationship.new(mentee_id: mentee.id, mentor_id: @user.id).save!
app/controllers/internal/users_controller.rb:131:6 MentorRelationship.new(mentee_id: @user.id, mentor_id: mentor.id).save!
app/controllers/users_controller.rb:82:7 if current_user.save!
app/controllers/giveaways_controller.rb:50:9 if @user.save!
app/services/authorization_service.rb:68:6 user.save!
app/services/authorization_service.rb:100:6 identity.save!
app/labor/podcast_feed.rb:42:4 ep.save!
13 results
app/
디렉토리의 Ruby 파일에 self
리시버로부터의 임의의 인수를 준 save!
메소드 호출을 검색합니다.$ querly find 'self.save!(...)' app/
app/models/html_variant.rb:16:4 save!
1 results
name=
메소드 호출 (대입)을 검색합니다.$ querly find 'name=(...)' app/
app/controllers/html_variants_controller.rb:20:6 @html_variant.name = @fork.name + " FORK-#{rand(10000)}"
app/services/authorization_service.rb:61:8 user.name = auth.info.nickname
app/services/rss_reader/assembler.rb:72:10 iframe.name = "p"
app/services/rss_reader/assembler.rb:89:10 bq.name = "p"
app/services/rss_reader/assembler.rb:99:10 iframe.name = "p"
app/labor/html_cleaner.rb:18:6 el.name = "p"
6 results
인수에
String
를 지정한 name=
메소드 호출을 검색합니다.$ querly find 'name=(:string:)' app/
app/services/rss_reader/assembler.rb:72:10 iframe.name = "p"
app/services/rss_reader/assembler.rb:89:10 bq.name = "p"
app/services/rss_reader/assembler.rb:99:10 iframe.name = "p"
app/labor/html_cleaner.rb:18:6 el.name = "p"
4 results
Article.where
메소드 호출에서 ... 인수의 패턴은 실제 예제를 참조하십시오. (코드를 보는 것이 빠를까 )
$ querly find 'Article.where(published: :bool:, user_id: _)' app/
app/controllers/pages_controller.rb:78:4 Article.where(user_id: ApplicationConfig["DEVTO_USER_ID"], published: true).
app/labor/article_analytics_fetcher.rb:7:24 articles_to_check = Article.where(user_id: user_id, published: true)
2 results
* 상기는 thepracticaldev/dev.to 리포지토리에 대해 실행한 결과입니다.
원래 Querly란?
독특한 패턴 언어 에 의해 Ruby 메서드 호출 패턴을 감지하는 도구입니다.
soutaro/querly: Query Method Calls from Ruby Programs
보통은 querly.yml
라는 YAML 파일에 프로젝트 고유의 패턴을 룰화해, 자동으로 체크한다, 라고 하는 사용법을 합니다.
rules:
- id: sample.debug_print
pattern:
- self.p
- self.pp
message: Delete debug print
자세한 것은, 이하의 기사가 참고가 됩니다.
rules:
- id: sample.debug_print
pattern:
- self.p
- self.pp
message: Delete debug print
요약
grep
명령보다 느리지만, 세세한 검색을 할 수 있으므로 엄청 편리합니다.
querly find
라고 타이핑하는 것이 번거롭기 때문에, 나는 평소 ruby-grep
라는 별칭을 사용하고 있습니다.
.bashrcalias ruby-grep='querly find'
Rubyist 여러분, 꼭 시험해보세요!
Reference
이 문제에 관하여(Querly에서 Ruby를 grep), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ybiquitous/items/7043d868e14311b28d65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
alias ruby-grep='querly find'
Reference
이 문제에 관하여(Querly에서 Ruby를 grep), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ybiquitous/items/7043d868e14311b28d65텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)