Sha256: 8794ec66b225657602077a5150f898aeaab7a368404bdec42fe190757698af08

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 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

      private

      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

2 entries across 2 versions & 1 rubygems

Version Path
serum-rails-0.1.1 lib/serum/rails/app.rb
serum-rails-0.1.0 lib/serum/rails/app.rb