2013-02-21 48 views
19

rubocop रूबी के लिए कोड स्टाइल चेकर है। Rubocop, कैन के लिए एक समान उपकरण integrated with Rake हो सकता है। मैं रैनोकॉप को कैन को पसंद करता हूं क्योंकि रूबोकॉप Ruby Style Guide पर आधारित चेक बनाता है और ऐसा लगता है कि यह spot more problems है। स्टाइल चेकिंग की प्रक्रिया को स्वचालित करने के लिए मैं रेक के साथ रूबोकॉप को एकीकृत करना चाहता हूं ताकि कोड की गुणवत्ता में कमी होने पर निर्माण विफल हो जाए।रेक के साथ रूबोकॉप को एकीकृत कैसे करें?

जेम पहले ही adding tests को रेक के माध्यम से पैकेजों का समर्थन करता है। मैं स्टाइल चेक के साथ ऐसा करना चाहता हूं ताकि परीक्षण जांच के साथ स्टाइल चेक चलाए जा सकें। मैं यह कैसे कर सकता हूँ?

यह एक Rakefile यहाँ के साथ शुरू करने के लिए मदद करता है, तो एक है:

# -*- coding: utf-8; mode: ruby -*- 

require 'bundler/gem_tasks' 
require 'rake/testtask' 

Rake::TestTask.new do |t| 
    t.libs << 'test' 
    t.test_files = FileList['test/unit/test*.rb'] 
end 

desc 'Run tests' 
task default: :test 

उत्तर

0

मैं rubocop कार्यक्रम के लिए बाहर बमबारी की सिफारिश करेंगे। यह सबसे आसान समाधान है। बस अपने Rakefile से जोड़ें:

task test: :rubocop 

task :rubocop do 
    sh 'rubocop' 
end 
+3

नीचे समाधान शायद बेहतर है - 'रूबोकॉप :: रेकैकस्क' का उपयोग करके –

2

आप शायद https://github.com/yujinakayama/guard-rubocop उपयोगी मिलेगा अगर आप अपने RSpec परीक्षण के लिए गार्ड का उपयोग करें। यह आपके परीक्षण परिणामों के साथ ही फ़ाइल को सहेजने के तुरंत बाद आपको तुरंत प्रतिक्रिया देने के लिए रूबोकॉप को सक्षम बनाता है।

54

संस्करण 0.10.0 रूबोकॉप में एक कस्टम रेक कार्य है जिसका आप उपयोग कर सकते हैं। बस अपने Rakefile

require 'rubocop/rake_task' 

RuboCop::RakeTask.new 

में निम्नलिखित अपर-केस 'आर' और 'सी' का उपयोग सुनिश्चित करें या आप एक NameError मिल जाएगा डाल दिया।

-2

आप विकल्पों आप पसंद करते हैं के साथ रैक के माध्यम से बाहर शेल कर सकते हैं:

desc 'Run Rubocop with options' 
    task rubocop: :environment do 
    sh 'bundle exec rubocop -D --format offenses --format progress || true' 
    end 

मैं तो डिफ़ॉल्ट कार्य को संशोधित उत्पादन शामिल करने के लिए सलाह देते हैं। चाल कार्य को साफ़ करना है और फिर आप जो चाहते हैं उसे वापस जोड़ना है। || true के साथ समाप्त होने की आवश्यकता पर ध्यान दें ताकि रूबोकॉप से ​​एक त्रुटि अगले कार्य को चलने से रोकेगी। यहाँ मैं क्या करते हैं, भी समानांतर परीक्षण का उपयोग करता है जो है:

task(:default).clear.enhance ['parallel:parallel_prepare', 'parallel:spec', 
           'parallel:features', 'lint:rubocop', 
           'lint:rails_best_practices'] 
16

मेरी सशक्त अनुशंसा,

require 'rubocop/rake_task' 

RuboCop::RakeTask.new(:rubocop) do |t| 
    t.options = ['--display-cop-names'] 
end 

यह rubocop के अपने रेक कार्यों का उपयोग करता है और आप विकल्पों पारित करने के लिए अगर आप की तरह की अनुमति देता है।