Intenté rake stats
pero eso parece muy impreciso. Tal vez ignora varios directorios?¿Cómo contar las líneas de código?
Respuesta
Usted puede probar estas dos opciones:
Rakestats fragmento de entrada de blog:
namespace :spec do
desc "Add files that DHH doesn't consider to be 'code' to stats"
task :statsetup do
require 'code_statistics'
class CodeStatistics
alias calculate_statistics_orig calculate_statistics
def calculate_statistics
@pairs.inject({}) do |stats, pair|
if 3 == pair.size
stats[pair.first] = calculate_directory_statistics(pair[1], pair[2]); stats
else
stats[pair.first] = calculate_directory_statistics(pair.last); stats
end
end
end
end
::STATS_DIRECTORIES << ['Views', 'app/views', /\.(rhtml|erb|rb)$/]
::STATS_DIRECTORIES << ['Test Fixtures', 'test/fixtures', /\.yml$/]
::STATS_DIRECTORIES << ['Email Fixtures', 'test/fixtures', /\.txt$/]
# note, I renamed all my rails-generated email fixtures to add .txt
::STATS_DIRECTORIES << ['Static HTML', 'public', /\.html$/]
::STATS_DIRECTORIES << ['Static CSS', 'public', /\.css$/]
# ::STATS_DIRECTORIES << ['Static JS', 'public', /\.js$/]
# prototype is ~5384 LOC all by itself - very hard to filter out
::CodeStatistics::TEST_TYPES << "Test Fixtures"
::CodeStatistics::TEST_TYPES << "Email Fixtures"
end
end
task :stats => "spec:statsetup"
- metric_fu - un rubí Gema para Easy Metric Report Generation
PS: No he probado ninguna de las anteriores, pero metric_fu suena interesante, ver las capturas de pantalla de la salida.
Aquí hay una solución simple. Cuenta las líneas de código en la carpeta de la aplicación de su proyecto de rieles: CSS, Ruby, CoffeeScript y todo. En la raíz de su proyecto, ejecute este comando:
find ./app -type f | xargs cat | wc -l
y varios órdenes de magnitud más rápido que cloc, si no te importa la semántica de las líneas que estás contando – pje
realmente no estoy seguro de por qué esto se elevó tanto. Simplemente cuenta líneas de archivos, incluyendo líneas en blanco y comentarios de cualquier código fuente, archivos de configuración, archivos de registro, archivos binarios para gritar en voz alta. Eso es ** muy ** diferente de LOC, por cualquier definición posible de lo que constituye una línea de código . En mi proyecto actual de rieles, esto informa 35K líneas, frente a 19K mucho más preciso de cloc. – Thilo
@Thilo, en realidad no cuenta los archivos de configuración o binarios porque está buscando en la carpeta ./app. Aunque es bastante justo, hay múltiples soluciones para todo. –
que utilizar el script Perl cloc libre. Ejemplo de uso:
phrogz$ cloc .
180 text files.
180 unique files.
77 files ignored.
http://cloc.sourceforge.net v 1.56 T=1.0 s (104.0 files/s, 19619.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Javascript 29 1774 1338 10456
Ruby 61 577 185 4055
CSS 10 118 133 783
HTML 1 13 3 140
DOS Batch 2 6 0 19
Bourne Shell 1 4 0 15
-------------------------------------------------------------------------------
SUM: 104 2492 1659 15468
-------------------------------------------------------------------------------
'brew install cloc' – Chip
Parece que no es compatible con archivos de vista' erb'. 'app/views cloc': 100 archivos de texto. 96 archivos únicos. 100 archivos ignorados ** Actualización: 'cloc app/views --force-lang = html, erb' ** – Mifeng
@Mifeng ¡Muchas gracias! Puedes hacer lo mismo con jade, que tampoco es compatible de forma inmediata. p.ej. 'cloc example/jadeviews --force-lang = html, jade' – Automatico
Ésta calcula el número de archivos, el total de líneas de código, comentarios, y el COL promedio por archivo. También excluye archivos dentro de directorios con "proveedor" en su nombre.
Uso:
count_lines('rb')
Código:
def count_lines(ext)
o = 0 # Number of files
n = 0 # Number of lines of code
m = 0 # Number of lines of comments
files = Dir.glob('./**/*.' + ext)
files.each do |f|
next if f.index('vendor')
next if FileTest.directory?(f)
o += 1
i = 0
File.new(f).each_line do |line|
if line.strip[0] == '#'
m += 1
next
end
i += 1
end
n += i
end
puts "#{o.to_s} files."
puts "#{n.to_s} lines of code."
puts "#{(n.to_f/o.to_f).round(2)} LOC/file."
puts "#{m.to_s} lines of comments."
end
Esto es tan simple, es hermoso – baash05
- 1. ¿Cómo contar las líneas de código (LOC) usando IntelliJ IDEA?
- 2. ¿Cómo contar las líneas en una cadena?
- 3. ¿Cómo contar las líneas de código en Python excluyendo los comentarios y las cadenas de documentos?
- 4. ¿Cómo contar las líneas de un archivo en C++?
- 5. Contar líneas de código en Netbeans Proyecto PHP
- 6. Cómo cambiar las líneas de código en el código X
- 7. manera eficiente para contar las líneas cantidad obedeciendo alguna condición
- 8. Bash: encontrar el archivo con las líneas max contar
- 9. Contar el número de líneas en un archivo txt con Python excluyendo las líneas en blanco
- 10. las funcionalidades de dos líneas de código
- 11. ¿Cómo ordeno las líneas de código alfabéticamente en Visual Studio?
- 12. ¿Cómo contar el número de líneas en un JTextArea, incluidas las causadas por el ajuste?
- 13. Envoltura de líneas de código: cómo manejar líneas largas
- 14. ¿Cuál es una buena manera de contar las líneas fuente de código (SLOC) en un proyecto CoffeeScript?
- 15. Utilidad para contar el número de líneas de código en Python o Bash
- 16. ¿Qué herramienta utilizas para contar líneas de código fuente en Visual Studio Projects?
- 17. ¿Líneas de alineación de código?
- 18. contar el número de líneas en la salida del terminal
- 19. el número de líneas de código hacer mi proyecto tiene
- 20. ¿Hay alguna forma mejor de contar las líneas en un archivo de texto?
- 21. recuento (no en blanco) líneas de código en bash
- 22. Cómo WordPress lee las líneas de comentarios
- 23. Eclipse Pydev: ejecutar las líneas seleccionadas del código
- 24. Eclipse marca líneas como código
- 25. ¿Cómo funcionan las líneas de caché?
- 26. ¿Cómo puedo contar las instancias de un objeto?
- 27. ¿Cómo contar el número de líneas en una cadena de Objective-C (NSString)?
- 28. Cuente las líneas de un elemento PRE utilizando jQuery
- 29. ¿Cómo detectar o contar las descargas de blobs de Azure?
- 30. Cómo agregar diferentes líneas para las facetas
tristemente saben. No quería hackear o instalar un montón de gemas. Todavía estoy buscando una solución simple y elegante. – AnApprentice