Sha256: a6ff5a83dcdb59d32d93b9358c51d20944fee4818bd6a5b91da5ed7d09802039
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
require 'rails_best_practices/checks' require 'rails_best_practices/core' module RailsBestPractices class <<self def analyze_files(dir = '.', options = {}) files = expand_dirs_to_files(dir) files = model_first_sort(files) files = add_duplicate_migrations(files) ['vendor', 'spec', 'test', 'stories', 'features'].each do |pattern| files = ignore_files(files, "#{pattern}/") unless options[pattern] end files end def expand_dirs_to_files *dirs extensions = ['rb', 'erb', 'haml', 'builder'] dirs.flatten.map { |p| if File.directory? p Dir[File.join(p, '**', "*.{#{extensions.join(',')}}")] else p end }.flatten end # for law_of_demeter_check def model_first_sort files files.sort { |a, b| if a =~ /models\/.*rb/ -1 elsif b =~ /models\/.*rb/ 1 else a <=> b end } end # for always_add_db_index_check def add_duplicate_migrations files migration_files = files.select { |file| file.index("db/migrate") } (files << migration_files).flatten end def ignore_files files, pattern files.reject { |file| file.index(pattern) } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rails_best_practices-0.3.24 | lib/rails_best_practices.rb |
rails_best_practices-0.3.23 | lib/rails_best_practices.rb |
rails_best_practices-0.3.22 | lib/rails_best_practices.rb |