Sha256: 177b83cb9b0eedd5e3d2330374c670f75596ebdfe62e5559809b7a1310e8d10f
Contents?: true
Size: 1.48 KB
Versions: 1
Compression:
Stored size: 1.48 KB
Contents
module Serum module Rails class App attr_reader :root def initialize(root) @root = File.expand_path(root) ensure_root_exists ensure_is_rails_app end #def gems # cd # bundle list | wc -l #end def lines_of_code count_lines # matches anything in all folders end delegate :count_lines, :to => :code_scanner def count_routes Dir.chdir(@root) do run_command('bundle exec rake routes').split(/\n/).size - 1 end end def count_gems Dir.chdir(@root) do run_command('bundle list').split(/\n/).size - 1 end end private def run_command(cmd) Bundler.with_clean_env do result = `#{cmd}` $?.success? or raise "Error while running command: #{cmd}" result end end def ensure_root_exists File.directory?(@root) or raise "Not a directory: #{@root}" end def ensure_is_rails_app expected_folders = %w[ app/models app/controllers app/views config db ] expected_folders.each do |expected_folder| path = File.join(@root, expected_folder) File.directory?(path) or raise "Not a Rails application: #{@root} (expected folder #{expected_folder}" end end def code_scanner @code_scanner ||= CodeScanner.new(@root) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
serum-rails-0.2.0 | lib/serum/rails/app.rb |