2014-10-28 2 views
0

저는 RoR을 처음 접했고 큰 RoR 프로젝트로 뛰어 들었습니다. 이 프로젝트는 많은 보석을 사용합니다. 사실 Gemfile.lock 파일은 종속성을 포함하여 길이가 460 줄입니다. 나는이 프로젝트가 여러 다른 개발자들을 거쳐 갔다고 말했고, 거기에는 많은 난장판이있을 수 있다고 들었다.gemfile에서 보석의 목적을 설명하는 보석?

각 보석의 목록을 생성하는 방법이 있습니까? 특히 "카피 바라", "코카인", "빗방울"과 같은 이름의 경우에는 직관적이지 않습니다.

  1. 어떤 보석이 필요한지 확인하는 간단한 과정이 있습니까? 각 보석이 의미있는 설명이 있다고 가정하면, 당신은 레일 콘솔에서이 같은 실행할 수 있습니다
+0

'Gemfile'에서 시작하는 것이 더 쉬울 것이고, 구글 검색'ruby [gem name]'은 아마도 Github 페이지를 가리킬 것입니다. 많은 보석이 있다고 확신하지만, 보석의 rdoc을 찾는 것 이외에 각 보석의 목록을 내뱉는 쉬운 방법이 있는지 확신 할 수 없습니다. 그것이로드 된 환경 ('test, dev')은 당신에게 무엇을 기대해야하는지 시작해야합니다. – SuckerForMayhem

+0

[RubyGems] (https://rubygems.org/search?utf8=%E2%9C%93&query=capybara) 또한 좋은 자료와 각 보석에 대한 작은 설명을 제공 – SuckerForMayhem

답변

2

Gemfile의 경우 처음에는 Gemfile.lock의 내용을 너무 많이 강조하지 않아야합니다. 파일에 저장

require 'yaml' 

gems = `bundle list` 
names = gems.scan(/^\s+\*\s+([\w-]+)\s+\(.*\)\s*$/).flatten 

names.each do |name| 
    summary = YAML.parse(`gem speC#{name} summary`).root.value rescue '???' 
    puts "#{name}: #{summary}" 
end 

등 같은 명령 줄에서 실행 : 보석 세부 사항을 얻으려면

은, 그냥 현재 번들에있는 모든 보석의 요약을 덤프이 작은 스크립트를 채찍질 :

actionmailer: Email composition, delivery, and receiving framework (part of Rails). 
actionpack: Web-flow and rendering framework putting the VC in MVC (part of Rails). 
actionview: Rendering framework putting the V in MVC (part of Rails). 
activemodel: A toolkit for building modeling frameworks (part of Rails). 
activerecord: Object-relational mapper framework (part of Rails). 
activesupport: A toolkit of support libraries and Ruby core extensions extracted from the Rails framework. 
addressable: URI Implementation 
annotate: Annotates Rails Models, routes, fixtures, and others based on the database schema. 
arel: Arel is a SQL AST manager for Ruby 
ast: A library for working with Abstract Syntax Trees. 
astrolabe: An object-oriented AST extension for Parser 
awesome_print: Pretty print Ruby objects with proper indentation and colors 
... 
: 내 프로젝트에 대한

ruby whatever-you-saved-it-as.rb

,이있어

실제로 실제로 멋지다.

+0

좋은, 고마워, 지금 당장 시도 할 것입니다! –

1

:

Gem.loaded_specs.values.map { |g| "#{g.name}: #{g.summary}" } 

루비의 동적 특성은 (는) 자기 자동으로 사용되지 않는 보석을 찾을 수 있습니다 (예 : 코드를 통해 분석). 그러나 보석을 하나씩 제거하려고 할 수 있습니다. 프로젝트의 테스트 슈트가 주어진 보석없이 통과한다면 확실히 그것을 제거하는 것이 안전 할 수 있다는 강한 신호입니다.