123456789_123456789_123456789_123456789_123456789_

Class: Rails::CodeStatistics

Relationships & Source Files
Inherits: Object
Defined in: railties/lib/rails/code_statistics.rb

Constant Summary

  • DIRECTORIES =
    # File 'railties/lib/rails/code_statistics.rb', line 8
    [
    %w(Controllers        app/controllers),
    %w(Helpers            app/helpers),
    %w(Jobs               app/jobs),
    %w(Models             app/models),
    %w(Mailers            app/mailers),
    %w(Mailboxes          app/mailboxes),
    %w(Channels           app/channels),
    %w(Views              app/views),
    %w(JavaScripts        app/assets/javascripts),
    %w(Stylesheets        app/assets/stylesheets),
    %w(JavaScript         app/javascript),
    %w(Libraries          lib/),
    %w(APIs               app/apis),
    %w(Controller\ tests  test/controllers),
    %w(Helper\ tests      test/helpers),
    %w(Job\ tests         test/jobs),
    %w(Model\ tests       test/models),
    %w(Mailer\ tests      test/mailers),
    %w(Mailbox\ tests     test/mailboxes),
    %w(Channel\ tests     test/channels),
    %w(Integration\ tests test/integration),
    %w(System\ tests      test/system),
  • HEADERS =
    # File 'railties/lib/rails/code_statistics.rb', line 43
    { lines: " Lines", code_lines: "   LOC", classes: "Classes", methods: "Methods" }
  • TEST_TYPES =
    # File 'railties/lib/rails/code_statistics.rb', line 33
    ["Controller tests",
    "Helper tests",
    "Model tests",
    "Mailer tests",
    "Mailbox tests",
    "Channel tests",
    "Job tests",
    "Integration tests",
    "System tests"]

Class Attribute Summary

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(*pairs) ⇒ CodeStatistics

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 60

def initialize(*pairs)
  @pairs      = pairs
  @statistics = calculate_statistics
  @total      = calculate_total if pairs.length > 1
end

Class Attribute Details

.directories (rw)

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 45

class_attribute :directories, default: DIRECTORIES

.directories?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 45

class_attribute :directories, default: DIRECTORIES

.test_types (rw)

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 46

class_attribute :test_types, default: TEST_TYPES

.test_types?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 46

class_attribute :test_types, default: TEST_TYPES

Class Method Details

.register_directory(label, path, test_directory: false)

Add directories to the output of the bin/rails stats command.

Rails::CodeStatistics.register_directory("My Directory", "path/to/dir")

For directories that contain test code, set the test_directory argument to true.

Rails::CodeStatistics.register_directory("Model specs", "spec/models", test_directory: true)
[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 55

def self.register_directory(label, path, test_directory: false)
  self.directories << [label, path]
  self.test_types << label if test_directory
end

Instance Attribute Details

#directories (rw)

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 45

class_attribute :directories, default: DIRECTORIES

#directories?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 45

class_attribute :directories, default: DIRECTORIES

#test_types (rw)

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 46

class_attribute :test_types, default: TEST_TYPES

#test_types?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 46

class_attribute :test_types, default: TEST_TYPES

Instance Method Details

#to_s

[ GitHub ]

  
# File 'railties/lib/rails/code_statistics.rb', line 66

def to_s
  print_header
  @pairs.each { |pair| print_line(pair.first, @statistics[pair.first]) }
  print_splitter

  if @total
    print_line("Total", @total)
    print_splitter
  end

  print_code_test_stats
end