Class: Rescuetime::ReportFormatters

Inherits:
Object
  • Object
show all
Includes:
Formatters
Defined in:
lib/rescuetime/report_formatters.rb

Overview

Represents the collection of report formatters. Autoloads all formatters based on filename and file location.

Since:

  • v0.4.0

Constant Summary

Constants included from Formatters

Formatters::BASE_FORMATTER, Formatters::LOCAL_FORMATTER_PATH

Instance Method Summary collapse

Methods included from Formatters

#load_formatters

Instance Method Details

#allArray<String>

Returns a list of available formatter names

Examples:

report_formatters = Rescuetime::ReportFormatters.new
report_formatters.all
#=> ["array", "csv"]

Returns:

  • (Array<String>)

    a list of formatter names

Since:

  • v0.4.0



59
60
61
# File 'lib/rescuetime/report_formatters.rb', line 59

def all
  formatters.map(&:name)
end

#find(name) ⇒ Class

Returns the formatter with the specified name or, if not found, raises an exception

Parameters:

  • name (String)

    the name of the desired formatter

Returns:

  • (Class)

    the specified formatter

Raises:

Since:

  • v0.4.0



70
71
72
73
74
75
# File 'lib/rescuetime/report_formatters.rb', line 70

def find(name)
  formatter = formatters.find do |f|
    standardize(f.name) == standardize(name)
  end
  formatter || raise(Rescuetime::Errors::InvalidFormatError)
end

#formattersArray<Class>

Returns or loads a memoized list of formatters

Examples:

report_formatters = Rescuetime::ReportFormatters.new.formatters
#=> [Rescuetime::Formatters::ArrayFormatter,
#    Rescuetime::Formatters::CSVFormatter]

Returns:

  • (Array<Class>)

    list of available report formatters

Since:

  • v0.4.0



20
21
22
# File 'lib/rescuetime/report_formatters.rb', line 20

def formatters
  @formatters ||= load_formatters
end

#reloadArray<Class>

Force a reload of report formatters

Examples:

report_formatters = Rescuetime::ReportFormatters.new
report_formatters.formatters
#=> [Rescuetime::Formatters::ArrayFormatter,
#    Rescuetime::Formatters::CSVFormatter]

Rescuetime.configure do |config|
  config.formatter_paths << 'local/formatters/html_formatter.rb'
end

report_formatters.reload
#=> [Rescuetime::Formatters::ArrayFormatter,
#    Rescuetime::Formatters::CSVFormatter,
#    Rescuetime::Formatters::HTMLFormatter]

report_formatters.formatters
#=> [Rescuetime::Formatters::ArrayFormatter,
#    Rescuetime::Formatters::CSVFormatter,
#    Rescuetime::Formatters::HTMLFormatter]

Returns:

  • (Array<Class>)

    list of available report formatters

Since:

  • v0.4.0



47
48
49
# File 'lib/rescuetime/report_formatters.rb', line 47

def reload
  @formatters = load_formatters
end