lib/coco/helpers.rb in coco-0.13.0 vs lib/coco/helpers.rb in coco-0.14.0

- old
+ new

@@ -1,82 +1,102 @@ module Coco # Public: Collection of application's helpers methods. # - # TODO The app is full of `Dir.pwd`. This is the root project - # directory and must be in Configuration class (or Coco module ?). module Helpers - class << self - # Public: Get a String (ruby) source filename ready to be - # displayed in the index file. - # - # name - String full path filename (normaly full path but, who - # knows? may be relative path). - # - # Examples - # - # name = '/home/user/my_project/lib/source.rb' - # Helpers.name_for_html(name) - # #=> 'lib/<b>source.rb</b>' - # - # Returns the formatted String. - def name_for_html(name) - name = File.expand_path(name) - name = name.sub(Dir.pwd, '') - name = name.sub(/^\//, '') - base = File.basename(name) - name.sub(base, "<b>#{base}</b>") - end + # Public: Get a String (ruby) source filename ready to be + # displayed in the index file. + # + # name - String full path filename (normaly full path but, who + # knows? may be relative path). + # + # Examples + # + # name = '/home/user/my_project/lib/source.rb' + # Helpers.name_for_html(name) + # #=> 'lib/<b>source.rb</b>' + # + # Returns the formatted String. + # + def self.name_for_html(name) + name = File.expand_path(name) + name = name.sub(Dir.pwd, '') + name = name.sub(%r{^/}, '') + base = File.basename(name) + name.sub(base, "<b>#{base}</b>") + end - # Public: Get html filename (from a ruby filename) suitable for - # the coverage directory. - # - # name - String full path filename. - # - # Examples - # - # ruby = '/home/user/my_project/lib/source.rb' - # html = Helpers.rb2html(ruby) - # #=> '_lib_source.rb.html' - # - # Returns String HTML filename. - def rb2html(name) - name = name.sub(Dir.pwd, '') - name = name.sub(/^\//, '') - name = name.tr('/\\', '_') - name + '.html' - end + # Public: Get html filename (from a ruby filename) suitable for + # the coverage directory. + # + # name - String full path filename. + # + # Examples + # + # ruby = '/home/user/my_project/lib/source.rb' + # html = Helpers.rb2html(ruby) + # #=> '_lib_source.rb.html' + # + # Returns String HTML filename. + # + def self.rb2html(name) + name = name.sub(Dir.pwd, '') + name = name.sub(%r{^/}, '') + name = name.tr('/\\', '_') + name + '.html' + end - # Public: Get page title for the index.html file. - # - # Returns String. - def index_title - project_name = File.basename(Dir.pwd) - version = File.read(File.join(Coco::ROOT, 'VERSION')).strip - "#{project_name} - Code coverage (coco #{version})" - end + # Public: Get page title for the index.html file. + # + # Returns String. + # + def self.index_title + project_name = File.basename(Dir.pwd) + version = File.read(File.join(Coco::ROOT, 'VERSION')).strip + "#{project_name} - Code coverage (coco #{version})" + end - # Public: Expands a bulk of filenames into full path filenames. - # - # files - List of filenames as an Array of String. - # - # Returns an Array of String. - def expand(files) - files.map {|file| File.expand_path(file) } - end + # Public: Expands a bulk of filenames into full path filenames. + # + # files - List of filenames as an Array of String. + # + # Returns an Array of String. + # + def self.expand(files) + files.map { |file| File.expand_path(file) } + end - # Public: Get all ruby files from a directory, including - # sub-directories. - # - # directory - String directory to look into. - # - # Returns an Array of String. - def rb_files_from(directory) - rb_files = File.join(directory, "**", "*.rb") - Dir.glob(rb_files) - end + # Public: Get all ruby files from a directory, including + # sub-directories. + # + # directory - String directory to look into. + # + # Returns an Array of String. + # + def self.rb_files_from(directory) + rb_files = File.join(directory, '**', '*.rb') + Dir.glob(rb_files) end + # Public: Get the CSS class given a percentage. To use in the + # index file. + # + # percentage - A Fixnum. + # + # Examples + # + # Helpers.level_class(100) + # #=> 'green' + # + # Returns the String CSS class name. + # + def self.level_class(percentage) + case percentage + when 100 then 'green' + when 80..99 then 'yellow' + else + 'red' + end + end end - end