2009-02-11 6 views
12

मैं वर्तमान में रेल परियोजना पर एक बड़े पैमाने पर रूबी पर काम कर रहा हूं। यह काफी पुराना है और इतना बड़ा है कि यह स्पष्ट नहीं है कि सभी विचार वास्तव में उपयोग में हैं।रूबी पर रूबी में अप्रयुक्त विचार/आंशिक ढूंढना

क्या वहां कोई स्क्रिप्ट/प्लगइन है जो अप्रयुक्त दृश्य फ़ाइलों की एक सूची उत्पन्न कर सकता है?

उत्तर

4

मैंने अप्रयुक्त आंशिक/विचार खोजने के लिए एक स्क्रिप्ट लिखी। मुझे लगता है कि, हालांकि, "अप्रयुक्त" का अर्थ है कि एक दृश्य-फ़ाइल मौजूद है जिसके लिए कोई नियंत्रक-विधि परिभाषित नहीं की जाती है (और भी)। स्क्रिप्ट यह जांच नहीं करती है कि दृश्य कहलाता है क्योंकि डिफ़ॉल्ट-मार्ग से कोई लिंक नहीं है। यह कहीं अधिक जटिल होता।

प्लेस आवेदन की स्क्रिप्ट फ़ोल्डर में निम्न स्क्रिप्ट:

#!/usr/bin/env ruby 
require 'config/environment' 
(Dir['app/controllers/*.rb'] - ['app/controllers/application.rb']).each do |c| 
    require c 
    base = File.basename(c, '.rb') 
    views = Hash.new 
    Dir["app/views/#{base.split('_')[0]}/*"].each do |v| 
    views.store(File.basename(v).split('.')[0], v) 
    end 
    unused_views = views.keys - Object.const_get(base.camelcase).public_instance_methods - ApplicationController.public_instance_methods 
    puts "Unused views for #{base.camelcase}:" if unused_views.size > 0 
    unused_views.each { |v| puts views[v] } 
end 

यह थोड़े hackish और अधूरा है, लेकिन यह काम करता है - कम से कम मेरे लिए।

इस तरह यह निष्पादित (आप केवल निष्पादित-बिट chmod के साथ पहली बार बदलने की जरूरत है):

chmod +x script/script_name 
./script/script_name 

का आनंद लें!

+0

आप config/पर्यावरण से हो जाएगा। कम से कम मुझे करना था, क्योंकि हम गेटटेक्स्ट का उपयोग करते थे। फिर आप अगली पंक्ति (rubygems, आदि की आवश्यकता) को भी हटा सकते हैं – ujh

+0

यह आंशिक और सामान जैसे 'रेंडर: एक्शन => "व्यू"' को भी संभाल नहीं करता है। लेकिन यह एक अच्छी शुरुआत है। – ujh

3

फ़ाइल के नाम के लिए प्रोजेक्ट, grep (या awk) प्रोजेक्ट के माध्यम से Iterate। जेनेरिक आंशिक (उदाहरण के लिए, "_form") के लिए लाइन की शुरुआत में "रेंडर: आंशिक" देखने के लिए अपनी खोज रेगेक्स समायोजित करें।

+0

'आंशिक' अब विकल्प है इसलिए यह अभी लागू नहीं होता है – Dorian

3

पर निम्न स्क्रिप्ट पर एक नजर डालें और discover-unused-partials मणि चलाएँ:

gem install discover-unused-partials 

discover-unused-partials rails_root_directory 
संबंधित मुद्दे