Rakefile in squib-0.6.0 vs Rakefile in squib-0.7.0

- old
+ new

@@ -1,99 +1,99 @@ -require 'bundler/gem_tasks' -require 'rspec/core/rake_task' -require 'yard' -require 'benchmark' -require 'byebug' - -task default: [:install, :spec] - -# Useful for hooking up with SublimeText. -# e.g. rake sample[basic.rb] -task :run,[:file] => :install do |t, args| - args.with_defaults(file: 'basic.rb') - Dir.chdir('samples') do - args[:file] << ".rb" unless args[:file].end_with? '.rb' - puts "Running samples/#{args[:file]}" - load args[:file] - end -end - - -RSpec::Core::RakeTask.new(:spec) - -RSpec::Core::RakeTask.new(:spec_fastonly) do |t| - t.rspec_opts = "--tag ~slow" -end - -task doc: [:yarddoc, :apply_google_analytics] - -YARD::Rake::YardocTask.new(:yarddoc) do |t| - t.files = ['lib/**/*.rb', 'samples/**/*.rb'] # optional - #t.options = ['--any', '--extra', '--opts'] # optional -end - -task benchmark: [:install] do - require 'squib' - Squib::logger.level = Logger::ERROR #silence warnings - Dir.chdir('benchmarks') do - Benchmark.bm(15) do |bm| - Dir['*.rb'].each do | script | - GC.start - bm.report(script) { load script } - end - end - end -end - -task :sanity do - require_relative 'spec/samples/sanity.rb' - Sanity.new.run -end - -task sanity_clean: [:install, :spec, :sanity] - -task :apply_google_analytics do - # The string to replace in the html document. This is chosen to be the end - # body </body> tag. So the script can be injected as the last thing in the - # document body. - string_to_replace = "</body>" - # This is the string to replace with. It include the google analytics script - # as well as the end </body> tag. - string_to_replace_with = <<-EOF - <script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-54811605-1', 'auto'); - ga('send', 'pageview'); - - </script> - </body> - EOF - - files = Dir.glob("doc/**/*.html") - - files.each do |html_file| - puts "Processing file: #{html_file}" - contents = "" - # Read the file contents - file = File.open(html_file) - file.each { |line| contents << line } - file.close - - # If the file already has google analytics tracking info, skip it. - if contents.include?(string_to_replace_with) - puts "Skipped..." - next - end - - # Apply google analytics tracking info to the html file - contents.gsub!(string_to_replace, string_to_replace_with) - - # Write the contents with the google analytics info to the file - file = File.open(html_file, "w") - file.write(contents) - file.close - end -end +require 'bundler/gem_tasks' +require 'rspec/core/rake_task' +require 'yard' +require 'benchmark' +require 'byebug' + +task default: [:install, :spec] + +# Useful for hooking up with SublimeText. +# e.g. rake sample[basic.rb] +task :run,[:file] => :install do |t, args| + args.with_defaults(file: 'basic.rb') + Dir.chdir('samples') do + args[:file] << ".rb" unless args[:file].end_with? '.rb' + puts "Running samples/#{args[:file]}" + load args[:file] + end +end + + +RSpec::Core::RakeTask.new(:spec) + +RSpec::Core::RakeTask.new(:spec_fastonly) do |t| + t.rspec_opts = "--tag ~slow" +end + +task doc: [:yarddoc, :apply_google_analytics] + +YARD::Rake::YardocTask.new(:yarddoc) do |t| + t.files = ['lib/**/*.rb', 'samples/**/*.rb'] # optional + #t.options = ['--any', '--extra', '--opts'] # optional +end + +task benchmark: [:install] do + require 'squib' + Squib::logger.level = Logger::ERROR #silence warnings + Dir.chdir('benchmarks') do + Benchmark.bm(15) do |bm| + Dir['*.rb'].each do | script | + GC.start + bm.report(script) { load script } + end + end + end +end + +task :sanity_only do + require_relative 'spec/samples/sanity.rb' + Sanity.new.run +end + +task sanity: [:install, :spec, :sanity_only] + +task :apply_google_analytics do + # The string to replace in the html document. This is chosen to be the end + # body </body> tag. So the script can be injected as the last thing in the + # document body. + string_to_replace = "</body>" + # This is the string to replace with. It include the google analytics script + # as well as the end </body> tag. + string_to_replace_with = <<-EOF + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-54811605-1', 'auto'); + ga('send', 'pageview'); + + </script> + </body> + EOF + + files = Dir.glob("doc/**/*.html") + + files.each do |html_file| + puts "Processing file: #{html_file}" + contents = "" + # Read the file contents + file = File.open(html_file) + file.each { |line| contents << line } + file.close + + # If the file already has google analytics tracking info, skip it. + if contents.include?(string_to_replace_with) + puts "Skipped..." + next + end + + # Apply google analytics tracking info to the html file + contents.gsub!(string_to_replace, string_to_replace_with) + + # Write the contents with the google analytics info to the file + file = File.open(html_file, "w") + file.write(contents) + file.close + end +end