| 
									
										
										
										
											2020-12-22 23:10:52 +00:00
										 |  |  | require "bundler/gem_tasks" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-28 01:31:47 +00:00
										 |  |  | namespace :metrics do | 
					
						
							|  |  |  |   task :lines do | 
					
						
							|  |  |  |     lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
 | 
					
						
							|  |  |  |     for file_name in FileList['lib/**/*.rb', 'bin/generate-api'] | 
					
						
							|  |  |  |       f = File.open(file_name) | 
					
						
							|  |  |  |       while line = f.gets | 
					
						
							|  |  |  |         lines += 1
 | 
					
						
							|  |  |  |         next if line =~ /^\s*$/ | 
					
						
							|  |  |  |         next if line =~ /^\s*#/ | 
					
						
							|  |  |  |         codelines += 1
 | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |       puts "L: #{sprintf('%4d', lines)}, " + | 
					
						
							|  |  |  |                "LOC #{sprintf('%4d', codelines)} | #{file_name}" | 
					
						
							|  |  |  |       total_lines     += lines | 
					
						
							|  |  |  |       total_codelines += codelines | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       lines, codelines = 0, 0
 | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     puts "Total: Lines #{total_lines}, LOC #{total_codelines}" | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require 'rubocop/rake_task' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | desc 'Run RuboCop on the lib directory' | 
					
						
							|  |  |  | RuboCop::RakeTask.new(:rubocop) do |task| | 
					
						
							|  |  |  |   task.patterns = ['lib/**/*.rb'] | 
					
						
							|  |  |  |   # only show the files with failures | 
					
						
							|  |  |  |   task.formatters = ['progress'] | 
					
						
							|  |  |  |   # don't abort rake on failure | 
					
						
							|  |  |  |   task.fail_on_error = false | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require 'rake/clean' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CLOBBER.include('coverage') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require 'rspec/core/rake_task' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace :spec do | 
					
						
							|  |  |  |   RSpec::Core::RakeTask.new(:all) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | desc 'Alias to spec:all' | 
					
						
							|  |  |  | task 'spec' => 'spec:all' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | begin | 
					
						
							|  |  |  | 	require 'yard' | 
					
						
							|  |  |  | 	require 'yard/rake/yardoc_task' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	YARD::Rake::YardocTask.new do |t| | 
					
						
							|  |  |  |   	t.files   = ['lib/**/*.rb', 'generated/**/*.rb'] | 
					
						
							|  |  |  |   	t.options = ['--verbose', '--markup', 'markdown'] | 
					
						
							|  |  |  | 	end | 
					
						
							|  |  |  | rescue LoadError | 
					
						
							|  |  |  |   puts "YARD not available" | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-22 23:10:52 +00:00
										 |  |  | task :default => :spec |