working on documentation - reportable - Unnamed repository; edit this file 'des… | |
Log | |
Files | |
Refs | |
README | |
--- | |
commit 793ccc345c8f37fa8cbfc3eb8579779d1c248ffa | |
parent e6ea4a8f5cae154c3ef76132a449d0b8117e9ace | |
Author: marcoow <[email protected]> | |
Date: Fri, 12 Dec 2008 02:28:19 +0800 | |
working on documentation | |
Signed-off-by: Marco Otte-Witte <[email protected]> | |
Diffstat: | |
M generators/reports_as_sparkline_mi… | 4 +--- | |
M lib/kvlr/core_extensions/date_time… | 7 ++++--- | |
M lib/kvlr/reports_as_sparkline.rb | 46 +++++++++++++++++------------… | |
M lib/kvlr/reports_as_sparkline/asse… | 16 ++++++++++++++-- | |
M lib/kvlr/reports_as_sparkline/cumu… | 14 +++++++++++++- | |
M lib/kvlr/reports_as_sparkline/grou… | 15 ++++++++++----- | |
M lib/kvlr/reports_as_sparkline/repo… | 6 +++--- | |
M lib/kvlr/reports_as_sparkline/repo… | 2 +- | |
M lib/kvlr/reports_as_sparkline/repo… | 4 ++-- | |
A rdoc/classes/Kvlr/CoreExtensions/D… | 145 +++++++++++++++++++++++++++… | |
A rdoc/classes/Kvlr/ReportsAsSparkli… | 164 +++++++++++++++++++++++++++… | |
A rdoc/classes/Kvlr/ReportsAsSparkli… | 201 +++++++++++++++++++++++++++… | |
A rdoc/classes/Kvlr/ReportsAsSparkli… | 167 +++++++++++++++++++++++++++… | |
A rdoc/classes/Kvlr/ReportsAsSparkli… | 247 +++++++++++++++++++++++++++… | |
A rdoc/classes/Kvlr/ReportsAsSparkli… | 227 +++++++++++++++++++++++++++… | |
A rdoc/classes/Kvlr/ReportsAsSparkli… | 167 +++++++++++++++++++++++++++… | |
A rdoc/classes/Kvlr/ReportsAsSparkli… | 297 +++++++++++++++++++++++++++… | |
A rdoc/created.rid | 1 + | |
A rdoc/files/README_rdoc.html | 168 +++++++++++++++++++++++++++++… | |
A rdoc/files/lib/kvlr/core_extension… | 102 +++++++++++++++++++++++++++… | |
A rdoc/files/lib/kvlr/reports_as_spa… | 102 +++++++++++++++++++++++++++… | |
A rdoc/files/lib/kvlr/reports_as_spa… | 102 +++++++++++++++++++++++++++… | |
A rdoc/files/lib/kvlr/reports_as_spa… | 102 +++++++++++++++++++++++++++… | |
A rdoc/files/lib/kvlr/reports_as_spa… | 102 +++++++++++++++++++++++++++… | |
A rdoc/files/lib/kvlr/reports_as_spa… | 102 +++++++++++++++++++++++++++… | |
A rdoc/files/lib/kvlr/reports_as_spa… | 102 +++++++++++++++++++++++++++… | |
A rdoc/files/lib/kvlr/reports_as_spa… | 102 +++++++++++++++++++++++++++… | |
A rdoc/fr_class_index.html | 35 +++++++++++++++++++++++++++++… | |
A rdoc/fr_file_index.html | 36 +++++++++++++++++++++++++++++… | |
A rdoc/fr_method_index.html | 43 ++++++++++++++++++++++++++++++ | |
A rdoc/index.html | 25 +++++++++++++++++++++++++ | |
A rdoc/rdoc-style.css | 209 +++++++++++++++++++++++++++++… | |
32 files changed, 3022 insertions(+), 40 deletions(-) | |
--- | |
diff --git a/generators/reports_as_sparkline_migration/reports_as_sparkline_mig… | |
@@ -1,7 +1,5 @@ | |
-# Generates the migration that adds the caching table | |
-class ReportsAsSparklineMigrationGenerator < Rails::Generator::NamedBase | |
+class ReportsAsSparklineMigrationGenerator < Rails::Generator::NamedBase #:nod… | |
- # Creates the generator's manifest | |
def manifest | |
record do |m| | |
m.migration_template 'migration.erb', 'db/migrate' | |
diff --git a/lib/kvlr/core_extensions/date_time.rb b/lib/kvlr/core_extensions/d… | |
@@ -1,13 +1,14 @@ | |
-module Simplabs | |
+module Kvlr #:nodoc: | |
- module CoreExtensions | |
+ module CoreExtensions #:nodoc: | |
module DateTime | |
::DateTime.class_eval do | |
+ # Converts the DateTime into a Kvlr::ReportsAsSparkline::ReportingPeri… | |
def to_reporting_period(grouping) | |
- Kvlr::ReportsAsSparkline::ReportsAsSparkline.new(grouping, self) | |
+ Kvlr::ReportsAsSparkline::ReportingPeriod.new(grouping, self) | |
end | |
end | |
diff --git a/lib/kvlr/reports_as_sparkline.rb b/lib/kvlr/reports_as_sparkline.rb | |
@@ -1,34 +1,40 @@ | |
module Kvlr #:nodoc: | |
- module ReportsAsSparkline #:nodoc: | |
+ module ReportsAsSparkline | |
def self.included(base) #:nodoc: | |
base.extend ClassMethods | |
end | |
- class InvalidGroupExpception < Exception | |
- end | |
- | |
- class InvalidOperationExpception < Exception | |
- end | |
- | |
module ClassMethods | |
+ # Generates a report on a model. The report can then be executed via <na… | |
+ # | |
+ # ==== Parameters | |
+ # | |
+ # * <tt>name</tt> - The name of the report, defines the name of the gene… | |
+ # | |
+ # ==== Options | |
+ # | |
+ # * <tt>:date_column_name</tt> - The name of the date column on that the… | |
+ # * <tt>:value_column_name</tt> - The name of the column that holds the … | |
+ # * <tt>:aggregation</tt> - The aggregation to use (either :count or :su… | |
+ # * <tt>:grouping</tt> - The period records are grouped on (:hour, :day,… | |
+ # * <tt>:limit</tt> - The number of periods to get (see :grouping) | |
+ # * <tt>:conditions</tt> - Conditions like in ActiveRecord::Base#find; o… | |
# | |
- # Examples: | |
+ # ==== Examples | |
# | |
- # class Game < ActiveRecord::Base | |
- # report_as_sparkline :games_per_day | |
- # report_as_sparkline :games_played_total, :cumulate => true | |
- # end | |
- # class User < ActiveRecord::Base | |
- # report_as_sparkline :registrations, :operation => :count | |
- # report_as_sparkline :activations, :date_column => :activated_at, :op… | |
- # report_as_sparkline :total_users_report, :cumulate => true | |
- # end | |
- # class Rake < ActiveRecord::Base | |
- # report_as_sparkline :rake, :operation => :sum | |
- # end | |
+ # class Game < ActiveRecord::Base | |
+ # report_as_sparkline :games_per_day | |
+ # report_as_sparkline :games_played_total, :cumulate => true | |
+ # end | |
+ # class User < ActiveRecord::Base | |
+ # report_as_sparkline :registrations, :operation => :count | |
+ # report_as_sparkline :activations, :date_column_name => :activated_a… | |
+ # report_as_sparkline :total_users_report, :cumulate => true | |
+ # report_as_sparkline :rake, :aggregation => :sum, :value_column_name… | |
+ # end | |
def report_as_sparkline(name, options = {}) | |
(class << self; self; end).instance_eval do | |
define_method "#{name.to_s}_report".to_sym do |*args| | |
diff --git a/lib/kvlr/reports_as_sparkline/asset_tag_helper.rb b/lib/kvlr/repor… | |
@@ -2,12 +2,24 @@ module Kvlr #:nodoc: | |
module ReportsAsSparkline #:nodoc: | |
- # View helper that provides sparkline methods | |
module AssetTagHelper | |
# Renders a sparkline with the given data. | |
+ # | |
+ # ==== Parameters | |
+ # | |
+ # *<tt>data</tt> - The data to render the sparkline for | |
+ # | |
+ # ==== Options | |
+ # | |
+ # *<tt>width</tt> - The width of the generated image | |
+ # *<tt>height</tt> - The height of the generated image | |
+ # *<tt>color</tt> - The base color of the generated image (hex code) | |
+ # | |
+ # ==== Example | |
+ # <%= sparkline_tag(User.registrations_report, :width => 200, :height =>… | |
def sparkline_tag(data, options = {}) | |
- options.reverse_merge!({:width => 300, :height => 34, :color => '0077C… | |
+ options.reverse_merge!({:width => 300, :height => 34, :color => '0077c… | |
data.collect! { |element| element[1].to_s } | |
image_tag( | |
"http://chart.apis.google.com/chart?cht=ls&chs=#{options[:width]}x#{… | |
diff --git a/lib/kvlr/reports_as_sparkline/cumulated_report.rb b/lib/kvlr/repor… | |
@@ -2,15 +2,27 @@ module Kvlr #:nodoc: | |
module ReportsAsSparkline #:nodoc: | |
+ # A special report class that cumulates all data (see Kvlr::ReportsAsSpark… | |
+ # | |
+ # ==== Examples | |
+ # | |
+ # When Kvlr::ReportsAsSparkline::Report returns | |
+ # | |
+ # [[<DateTime today>, 1], [<DateTime yesterday>, 2], etc.] | |
+ # | |
+ # Kvlr::ReportsAsSparkline::CumulatedReport returns | |
+ # | |
+ # [[<DateTime today>, 3], [<DateTime yesterday>, 2], etc.] | |
class CumulatedReport < Report | |
+ # Runs the report (see Kvlr::ReportsAsSparkline::Report#run) | |
def run(options = {}) | |
cumulate(super) | |
end | |
protected | |
- def cumulate(data) | |
+ def cumulate(data) #:nodoc: | |
acc = 0.0 | |
result = [] | |
data.reverse_each do |element| | |
diff --git a/lib/kvlr/reports_as_sparkline/grouping.rb b/lib/kvlr/reports_as_sp… | |
@@ -2,18 +2,23 @@ module Kvlr #:nodoc: | |
module ReportsAsSparkline #:nodoc: | |
+ # This is the grouping a report uses to group records in the database | |
+ # | |
+ # ==== Parameters | |
+ # * <tt>identifier</tt> - The identifier of the grouping - one of :hour, … | |
class Grouping | |
- def initialize(grouping) | |
- raise ArgumentError.new("Invalid grouping #{grouping}") unless [:hour,… | |
- @identifier = grouping | |
+ def initialize(identifier) | |
+ raise ArgumentError.new("Invalid grouping #{grouping}") unless [:hour,… | |
+ @identifier = identifier | |
end | |
+ # Returns the Grouping's identifier | |
def identifier | |
@identifier | |
end | |
- def date_parts_from_db_string(db_string) | |
+ def date_parts_from_db_string(db_string) #:nodoc: | |
if ActiveRecord::Base.connection.class.to_s == 'ActiveRecord::Connecti… | |
case @identifier | |
when :hour | |
@@ -35,7 +40,7 @@ module Kvlr #:nodoc: | |
end | |
end | |
- def to_sql(date_column_name) | |
+ def to_sql(date_column_name) #:nodoc: | |
return case ActiveRecord::Base.connection.class.to_s | |
when 'ActiveRecord::ConnectionAdapters::MysqlAdapter' | |
mysql_format(date_column_name) | |
diff --git a/lib/kvlr/reports_as_sparkline/report.rb b/lib/kvlr/reports_as_spar… | |
@@ -32,7 +32,7 @@ module Kvlr #:nodoc: | |
private | |
- def read_data(begin_at, conditions = []) | |
+ def read_data(begin_at, conditions = []) #:nodoc: | |
conditions = setup_conditions(begin_at, conditions) | |
@klass.send(@aggregation, | |
@value_column_name, | |
@@ -42,7 +42,7 @@ module Kvlr #:nodoc: | |
) | |
end | |
- def setup_conditions(begin_at, custom_conditions = []) | |
+ def setup_conditions(begin_at, custom_conditions = []) #:nodoc: | |
conditions = [''] | |
if custom_conditions.is_a?(Hash) | |
conditions = [custom_conditions.map{ |k, v| "#{k.to_s} = ?" }.join… | |
@@ -53,7 +53,7 @@ module Kvlr #:nodoc: | |
conditions << begin_at | |
end | |
- def ensure_valid_options(options, context = :initialize) | |
+ def ensure_valid_options(options, context = :initialize) #:nodoc: | |
case context | |
when :initialize | |
options.each_key do |k| | |
diff --git a/lib/kvlr/reports_as_sparkline/report_cache.rb b/lib/kvlr/reports_a… | |
@@ -2,7 +2,7 @@ module Kvlr #:nodoc: | |
module ReportsAsSparkline #:nodoc: | |
- class ReportCache < ActiveRecord::Base | |
+ class ReportCache < ActiveRecord::Base #:nodoc: | |
serialize :reporting_period, Kvlr::ReportsAsSparkline::ReportingPeriod | |
diff --git a/lib/kvlr/reports_as_sparkline/reporting_period.rb b/lib/kvlr/repor… | |
@@ -25,7 +25,7 @@ module Kvlr #:nodoc: | |
end | |
end | |
- def self.from_db_string(grouping, db_string) | |
+ def self.from_db_string(grouping, db_string) #:nodoc: | |
parts = grouping.date_parts_from_db_string(db_string) | |
result = case grouping.identifier | |
when :hour | |
@@ -53,7 +53,7 @@ module Kvlr #:nodoc: | |
end | |
end | |
- def ==(other) | |
+ def ==(other) #:nodoc: | |
if other.class == Kvlr::ReportsAsSparkline::ReportingPeriod | |
return @date_time.to_s == other.date_time.to_s && @grouping.identifi… | |
end | |
diff --git a/rdoc/classes/Kvlr/CoreExtensions/DateTime.html b/rdoc/classes/Kvlr… | |
@@ -0,0 +1,144 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Module: Kvlr::CoreExtensions::DateTime</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="classHeader"> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Module</strong></td> | |
+ <td class="class-name-in-header">Kvlr::CoreExtensions::DateTime</td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>In:</strong></td> | |
+ <td> | |
+ <a href="../../../files/lib/kvlr/core_extensions/date_time_rb.… | |
+ lib/kvlr/core_extensions/date_time.rb | |
+ </a> | |
+ <br /> | |
+ </td> | |
+ </tr> | |
+ | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ <div id="method-list"> | |
+ <h3 class="section-bar">Methods</h3> | |
+ | |
+ <div class="name-list"> | |
+ <a href="#M000016">to_reporting_period</a> | |
+ </div> | |
+ </div> | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ <div id="methods"> | |
+ <h3 class="section-bar">Public Instance methods</h3> | |
+ | |
+ <div id="method-M000016" class="method-detail"> | |
+ <a name="M000016"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000016" class="method-signature"> | |
+ <span class="method-name">to_reporting_period</span><span class="met… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p> | |
+Converts the <a href="DateTime.html">DateTime</a> into a <a | |
+href="../ReportsAsSparkline/ReportingPeriod.html">Kvlr::ReportsAsSparkline::Re… | |
+</p> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000016-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000016-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/core_extensions/date_time.r… | |
+10: <span class="ruby-keyword kw">def</span> <span class="ruby-identif… | |
+11: <span class="ruby-constant">Kvlr</span><span class="ruby-operato… | |
+12: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/AssetTagHelper.html b/rdoc/cl… | |
@@ -0,0 +1,163 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Module: Kvlr::ReportsAsSparkline::AssetTagHelper</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="classHeader"> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Module</strong></td> | |
+ <td class="class-name-in-header">Kvlr::ReportsAsSparkline::AssetTagH… | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>In:</strong></td> | |
+ <td> | |
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/asset_ta… | |
+ lib/kvlr/reports_as_sparkline/asset_tag_helper.rb | |
+ </a> | |
+ <br /> | |
+ </td> | |
+ </tr> | |
+ | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ <div id="method-list"> | |
+ <h3 class="section-bar">Methods</h3> | |
+ | |
+ <div class="name-list"> | |
+ <a href="#M000002">sparkline_tag</a> | |
+ </div> | |
+ </div> | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ <div id="methods"> | |
+ <h3 class="section-bar">Public Instance methods</h3> | |
+ | |
+ <div id="method-M000002" class="method-detail"> | |
+ <a name="M000002"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000002" class="method-signature"> | |
+ <span class="method-name">sparkline_tag</span><span class="method-ar… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p> | |
+Renders a sparkline with the given data. | |
+</p> | |
+<h4>Parameters</h4> | |
+<p> | |
+*<tt>data</tt> - The data to render the sparkline for | |
+</p> | |
+<h4>Options</h4> | |
+<p> | |
+*<tt>width</tt> - The width of the generated image *<tt>height</tt> - The | |
+height of the generated image *<tt>color</tt> - The base color of the | |
+generated image (hex code) | |
+</p> | |
+<h4>Example</h4> | |
+<p> | |
+<%= <a | |
+href="AssetTagHelper.html#M000002">sparkline_tag</a>(User.registrations_report, | |
+:width => 200, :height => 100, :color => ‘000’) %> | |
+</p> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000002-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000002-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/asset_… | |
+21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+22: <span class="ruby-identifier">options</span>.<span class="ruby-ide… | |
+23: <span class="ruby-identifier">data</span>.<span class="ruby-identi… | |
+24: <span class="ruby-identifier">image_tag</span>( | |
+25: <span class="ruby-node">"http://chart.apis.google.com/chart… | |
+26: ) | |
+27: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/ClassMethods.html b/rdoc/clas… | |
@@ -0,0 +1,200 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Module: Kvlr::ReportsAsSparkline::ClassMethods</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="classHeader"> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Module</strong></td> | |
+ <td class="class-name-in-header">Kvlr::ReportsAsSparkline::ClassMeth… | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>In:</strong></td> | |
+ <td> | |
+ <a href="../../../files/lib/kvlr/reports_as_sparkline_rb.html"> | |
+ lib/kvlr/reports_as_sparkline.rb | |
+ </a> | |
+ <br /> | |
+ </td> | |
+ </tr> | |
+ | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ <div id="method-list"> | |
+ <h3 class="section-bar">Methods</h3> | |
+ | |
+ <div class="name-list"> | |
+ <a href="#M000001">report_as_sparkline</a> | |
+ </div> | |
+ </div> | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ <div id="methods"> | |
+ <h3 class="section-bar">Public Instance methods</h3> | |
+ | |
+ <div id="method-M000001" class="method-detail"> | |
+ <a name="M000001"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000001" class="method-signature"> | |
+ <span class="method-name">report_as_sparkline</span><span class="met… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p> | |
+Generates a report on a model. The report can then be executed via | |
+<name>_report | |
+</p> | |
+<h4>Parameters</h4> | |
+<ul> | |
+<li><tt>name</tt> - The name of the report, defines the name of the generated | |
+report method (<name>_report) | |
+ | |
+</li> | |
+</ul> | |
+<h4>Options</h4> | |
+<ul> | |
+<li><tt>:date_column_name</tt> - The name of the date column on that the | |
+records are aggregated | |
+ | |
+</li> | |
+<li><tt>:value_column_name</tt> - The name of the column that holds the value | |
+to sum for aggregation :sum | |
+ | |
+</li> | |
+<li><tt>:aggregation</tt> - The aggregation to use (either :count or :sum); | |
+when using :sum, :value_column_name must also be specified | |
+ | |
+</li> | |
+<li><tt>:grouping</tt> - The period records are grouped on (:hour, :day, :week, | |
+:month) | |
+ | |
+</li> | |
+<li><tt>:limit</tt> - The number of periods to get (see :grouping) | |
+ | |
+</li> | |
+<li><tt>:conditions</tt> - Conditions like in ActiveRecord::Base#find; only | |
+records that match there conditions are reported on | |
+ | |
+</li> | |
+</ul> | |
+<h4>Examples</h4> | |
+<pre> | |
+ class Game < ActiveRecord::Base | |
+ report_as_sparkline :games_per_day | |
+ report_as_sparkline :games_played_total, :cumulate => true | |
+ end | |
+ class User < ActiveRecord::Base | |
+ report_as_sparkline :registrations, :operation => :count | |
+ report_as_sparkline :activations, :date_column_name => :activated_at, :o… | |
+ report_as_sparkline :total_users_report, :cumulate => true | |
+ report_as_sparkline :rake, :aggregation => :sum, :value_column_name =>… | |
+ end | |
+</pre> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000001-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000001-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline.rb, li… | |
+38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+39: (<span class="ruby-keyword kw">class</span> <span class="ruby-oper… | |
+40: <span class="ruby-identifier">define_method</span> <span class="… | |
+41: <span class="ruby-keyword kw">if</span> <span class="ruby-iden… | |
+42: <span class="ruby-identifier">report</span> = <span class="r… | |
+43: <span class="ruby-keyword kw">else</span> | |
+44: <span class="ruby-identifier">report</span> = <span class="r… | |
+45: <span class="ruby-keyword kw">end</span> | |
+46: <span class="ruby-identifier">raise</span> <span class="ruby-c… | |
+47: <span class="ruby-identifier">report</span>.<span class="ruby-… | |
+48: <span class="ruby-keyword kw">end</span> | |
+49: <span class="ruby-keyword kw">end</span> | |
+50: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/CumulatedReport.html b/rdoc/c… | |
@@ -0,0 +1,166 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Class: Kvlr::ReportsAsSparkline::CumulatedReport</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="classHeader"> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Class</strong></td> | |
+ <td class="class-name-in-header">Kvlr::ReportsAsSparkline::Cumulated… | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>In:</strong></td> | |
+ <td> | |
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/cumulate… | |
+ lib/kvlr/reports_as_sparkline/cumulated_report.rb | |
+ </a> | |
+ <br /> | |
+ </td> | |
+ </tr> | |
+ | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Parent:</strong></td> | |
+ <td> | |
+ <a href="Report.html"> | |
+ Report | |
+ </a> | |
+ </td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ <div id="description"> | |
+ <p> | |
+A special report class that cumulates all data (see <a | |
+href="Report.html">Kvlr::ReportsAsSparkline::Report</a>) | |
+</p> | |
+<h4>Examples</h4> | |
+<pre> | |
+ When Kvlr::ReportsAsSparkline::Report returns | |
+ [[<DateTime today>, 1], [<DateTime yesterday>, 2]] | |
+ Kvlr::ReportsAsSparkline::CumulatedReport returns | |
+ [[<DateTime today>, 3], [<DateTime yesterday>, 2]] | |
+</pre> | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ <div id="method-list"> | |
+ <h3 class="section-bar">Methods</h3> | |
+ | |
+ <div class="name-list"> | |
+ <a href="#M000003">run</a> | |
+ </div> | |
+ </div> | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ <div id="methods"> | |
+ <h3 class="section-bar">Public Instance methods</h3> | |
+ | |
+ <div id="method-M000003" class="method-detail"> | |
+ <a name="M000003"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000003" class="method-signature"> | |
+ <span class="method-name">run</span><span class="method-args">(optio… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p> | |
+Runs the report (see <a | |
+href="Report.html#M000015">Kvlr::ReportsAsSparkline::Report#run</a>) | |
+</p> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000003-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000003-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/cumula… | |
+16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+17: <span class="ruby-identifier">cumulate</span>(<span class="ruby-ke… | |
+18: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/Grouping.html b/rdoc/classes/… | |
@@ -0,0 +1,246 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Class: Kvlr::ReportsAsSparkline::Grouping</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="classHeader"> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Class</strong></td> | |
+ <td class="class-name-in-header">Kvlr::ReportsAsSparkline::Grouping<… | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>In:</strong></td> | |
+ <td> | |
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/grouping… | |
+ lib/kvlr/reports_as_sparkline/grouping.rb | |
+ </a> | |
+ <br /> | |
+ </td> | |
+ </tr> | |
+ | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Parent:</strong></td> | |
+ <td> | |
+ Object | |
+ </td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ <div id="method-list"> | |
+ <h3 class="section-bar">Methods</h3> | |
+ | |
+ <div class="name-list"> | |
+ <a href="#M000007">date_parts_from_db_string</a> | |
+ <a href="#M000006">identifier</a> | |
+ <a href="#M000005">new</a> | |
+ <a href="#M000008">to_sql</a> | |
+ </div> | |
+ </div> | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ <div id="methods"> | |
+ <h3 class="section-bar">Public Class methods</h3> | |
+ | |
+ <div id="method-M000005" class="method-detail"> | |
+ <a name="M000005"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000005" class="method-signature"> | |
+ <span class="method-name">new</span><span class="method-args">(group… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000005-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000005-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/groupi… | |
+ 7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+ 8: <span class="ruby-identifier">raise</span> <span class="ruby-const… | |
+ 9: <span class="ruby-ivar">@identifier</span> = <span class="ruby-ide… | |
+10: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ <h3 class="section-bar">Public Instance methods</h3> | |
+ | |
+ <div id="method-M000007" class="method-detail"> | |
+ <a name="M000007"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000007" class="method-signature"> | |
+ <span class="method-name">date_parts_from_db_string</span><span clas… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000007-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000007-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/groupi… | |
+16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+17: <span class="ruby-keyword kw">if</span> <span class="ruby-constant… | |
+18: <span class="ruby-keyword kw">case</span> <span class="ruby-ivar… | |
+19: <span class="ruby-keyword kw">when</span> <span class="ruby-id… | |
+20: <span class="ruby-keyword kw">return</span> (<span class="ru… | |
+21: <span class="ruby-keyword kw">when</span> <span class="ruby-id… | |
+22: <span class="ruby-keyword kw">return</span> <span class="rub… | |
+23: <span class="ruby-keyword kw">when</span> <span class="ruby-id… | |
+24: <span class="ruby-identifier">parts</span> = <span class="ru… | |
+25: <span class="ruby-identifier">date</span> = <span class="rub… | |
+26: <span class="ruby-keyword kw">return</span> [<span class="ru… | |
+27: <span class="ruby-keyword kw">when</span> <span class="ruby-id… | |
+28: <span class="ruby-keyword kw">return</span> <span class="rub… | |
+29: <span class="ruby-keyword kw">end</span> | |
+30: <span class="ruby-keyword kw">else</span> | |
+31: <span class="ruby-identifier">parts</span> = <span class="ruby-i… | |
+32: <span class="ruby-keyword kw">return</span> <span class="ruby-id… | |
+33: <span class="ruby-identifier">parts</span>[<span class="ruby-val… | |
+34: <span class="ruby-identifier">parts</span> | |
+35: <span class="ruby-keyword kw">end</span> | |
+36: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ <div id="method-M000006" class="method-detail"> | |
+ <a name="M000006"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000006" class="method-signature"> | |
+ <span class="method-name">identifier</span><span class="method-args"… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000006-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000006-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/groupi… | |
+12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+13: <span class="ruby-ivar">@identifier</span> | |
+14: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ <div id="method-M000008" class="method-detail"> | |
+ <a name="M000008"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000008" class="method-signature"> | |
+ <span class="method-name">to_sql</span><span class="method-args">(da… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000008-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000008-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/groupi… | |
+38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+39: <span class="ruby-keyword kw">return</span> <span class="ruby-keyw… | |
+40: <span class="ruby-keyword kw">when</span> <span class="ruby-valu… | |
+41: <span class="ruby-identifier">mysql_format</span>(<span class=… | |
+42: <span class="ruby-keyword kw">when</span> <span class="ruby-valu… | |
+43: <span class="ruby-identifier">sqlite_format</span>(<span class… | |
+44: <span class="ruby-keyword kw">when</span> <span class="ruby-valu… | |
+45: <span class="ruby-identifier">postgresql_format</span>(<span c… | |
+46: <span class="ruby-keyword kw">end</span> | |
+47: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/Report.html b/rdoc/classes/Kv… | |
@@ -0,0 +1,226 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Class: Kvlr::ReportsAsSparkline::Report</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="classHeader"> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Class</strong></td> | |
+ <td class="class-name-in-header">Kvlr::ReportsAsSparkline::Report</t… | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>In:</strong></td> | |
+ <td> | |
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/report_r… | |
+ lib/kvlr/reports_as_sparkline/report.rb | |
+ </a> | |
+ <br /> | |
+ </td> | |
+ </tr> | |
+ | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Parent:</strong></td> | |
+ <td> | |
+ Object | |
+ </td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ <div id="method-list"> | |
+ <h3 class="section-bar">Methods</h3> | |
+ | |
+ <div class="name-list"> | |
+ <a href="#M000014">new</a> | |
+ <a href="#M000015">run</a> | |
+ </div> | |
+ </div> | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <div id="attribute-list"> | |
+ <h3 class="section-bar">Attributes</h3> | |
+ | |
+ <div class="name-list"> | |
+ <table> | |
+ <tr class="top-aligned-row context-row"> | |
+ <td class="context-item-name">aggregation</td> | |
+ <td class="context-item-value"> [R] </td> | |
+ <td class="context-item-desc"></td> | |
+ </tr> | |
+ <tr class="top-aligned-row context-row"> | |
+ <td class="context-item-name">date_column_name</td> | |
+ <td class="context-item-value"> [R] </td> | |
+ <td class="context-item-desc"></td> | |
+ </tr> | |
+ <tr class="top-aligned-row context-row"> | |
+ <td class="context-item-name">grouping</td> | |
+ <td class="context-item-value"> [R] </td> | |
+ <td class="context-item-desc"></td> | |
+ </tr> | |
+ <tr class="top-aligned-row context-row"> | |
+ <td class="context-item-name">klass</td> | |
+ <td class="context-item-value"> [R] </td> | |
+ <td class="context-item-desc"></td> | |
+ </tr> | |
+ <tr class="top-aligned-row context-row"> | |
+ <td class="context-item-name">name</td> | |
+ <td class="context-item-value"> [R] </td> | |
+ <td class="context-item-desc"></td> | |
+ </tr> | |
+ <tr class="top-aligned-row context-row"> | |
+ <td class="context-item-name">value_column_name</td> | |
+ <td class="context-item-value"> [R] </td> | |
+ <td class="context-item-desc"></td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ <div id="methods"> | |
+ <h3 class="section-bar">Public Class methods</h3> | |
+ | |
+ <div id="method-M000014" class="method-detail"> | |
+ <a name="M000014"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000014" class="method-signature"> | |
+ <span class="method-name">new</span><span class="method-args">(klass… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000014-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000014-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report… | |
+ 9: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+10: <span class="ruby-identifier">ensure_valid_options</span>(<span cl… | |
+11: <span class="ruby-ivar">@klass</span> = <span class="r… | |
+12: <span class="ruby-ivar">@name</span> = <span class="r… | |
+13: <span class="ruby-ivar">@date_column_name</span> = (<span class="… | |
+14: <span class="ruby-ivar">@value_column_name</span> = (<span class="… | |
+15: <span class="ruby-ivar">@aggregation</span> = <span class="r… | |
+16: <span class="ruby-ivar">@grouping</span> = <span class="r… | |
+17: <span class="ruby-ivar">@options</span> = { | |
+18: <span class="ruby-identifier">:limit</span> =<span c… | |
+19: <span class="ruby-identifier">:conditions</span> =<span c… | |
+20: } | |
+21: <span class="ruby-ivar">@options</span>.<span class="ruby-identifi… | |
+22: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ <h3 class="section-bar">Public Instance methods</h3> | |
+ | |
+ <div id="method-M000015" class="method-detail"> | |
+ <a name="M000015"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000015" class="method-signature"> | |
+ <span class="method-name">run</span><span class="method-args">(optio… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000015-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000015-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report… | |
+24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+25: <span class="ruby-identifier">ensure_valid_options</span>(<span cl… | |
+26: <span class="ruby-identifier">custom_conditions</span> = <span cla… | |
+27: <span class="ruby-identifier">options</span>.<span class="ruby-ide… | |
+28: <span class="ruby-constant">ReportCache</span>.<span class="ruby-i… | |
+29: <span class="ruby-identifier">read_data</span>(<span class="ruby… | |
+30: <span class="ruby-keyword kw">end</span> | |
+31: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/ReportCache.html b/rdoc/class… | |
@@ -0,0 +1,166 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Class: Kvlr::ReportsAsSparkline::ReportCache</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="classHeader"> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Class</strong></td> | |
+ <td class="class-name-in-header">Kvlr::ReportsAsSparkline::ReportCac… | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>In:</strong></td> | |
+ <td> | |
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/report_c… | |
+ lib/kvlr/reports_as_sparkline/report_cache.rb | |
+ </a> | |
+ <br /> | |
+ </td> | |
+ </tr> | |
+ | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Parent:</strong></td> | |
+ <td> | |
+ ActiveRecord::Base | |
+ </td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ <div id="method-list"> | |
+ <h3 class="section-bar">Methods</h3> | |
+ | |
+ <div class="name-list"> | |
+ <a href="#M000004">process</a> | |
+ </div> | |
+ </div> | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ <div id="methods"> | |
+ <h3 class="section-bar">Public Class methods</h3> | |
+ | |
+ <div id="method-M000004" class="method-detail"> | |
+ <a name="M000004"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000004" class="method-signature"> | |
+ <span class="method-name">process</span><span class="method-args">(r… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000004-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000004-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report… | |
+ 9: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword k… | |
+10: <span class="ruby-identifier">raise</span> <span class="ruby-const… | |
+11: <span class="ruby-keyword kw">self</span>.<span class="ruby-identi… | |
+12: <span class="ruby-identifier">cached_data</span> = [] | |
+13: <span class="ruby-identifier">last_reporting_period_to_read</spa… | |
+14: <span class="ruby-keyword kw">unless</span> <span class="ruby-id… | |
+15: <span class="ruby-identifier">cached_data</span> = <span class… | |
+16: <span class="ruby-identifier">:all</span>, | |
+17: <span class="ruby-identifier">:conditions</span> =<span clas… | |
+18: <span class="ruby-identifier">:model_name</span> =<span c… | |
+19: <span class="ruby-identifier">:report_name</span> =<span c… | |
+20: <span class="ruby-identifier">:grouping</span> =<span c… | |
+21: <span class="ruby-identifier">:aggregation</span> =<span c… | |
+22: }, | |
+23: <span class="ruby-identifier">:limit</span> =<span class="ru… | |
+24: <span class="ruby-identifier">:order</span> =<span class="ru… | |
+25: ) | |
+26: <span class="ruby-identifier">last_reporting_period_to_read</s… | |
+27: <span class="ruby-keyword kw">end</span> | |
+28: <span class="ruby-identifier">new_data</span> = <span class="rub… | |
+29: <span class="ruby-identifier">prepare_result</span>(<span class=… | |
+30: <span class="ruby-keyword kw">end</span> | |
+31: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html b/rdoc/c… | |
@@ -0,0 +1,296 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Class: Kvlr::ReportsAsSparkline::ReportingPeriod</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="classHeader"> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Class</strong></td> | |
+ <td class="class-name-in-header">Kvlr::ReportsAsSparkline::Reporting… | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>In:</strong></td> | |
+ <td> | |
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/reportin… | |
+ lib/kvlr/reports_as_sparkline/reporting_period.rb | |
+ </a> | |
+ <br /> | |
+ </td> | |
+ </tr> | |
+ | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Parent:</strong></td> | |
+ <td> | |
+ Object | |
+ </td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ <div id="method-list"> | |
+ <h3 class="section-bar">Methods</h3> | |
+ | |
+ <div class="name-list"> | |
+ <a href="#M000013">==</a> | |
+ <a href="#M000010">first</a> | |
+ <a href="#M000011">from_db_string</a> | |
+ <a href="#M000009">new</a> | |
+ <a href="#M000012">previous</a> | |
+ </div> | |
+ </div> | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <div id="attribute-list"> | |
+ <h3 class="section-bar">Attributes</h3> | |
+ | |
+ <div class="name-list"> | |
+ <table> | |
+ <tr class="top-aligned-row context-row"> | |
+ <td class="context-item-name">date_time</td> | |
+ <td class="context-item-value"> [R] </td> | |
+ <td class="context-item-desc"></td> | |
+ </tr> | |
+ <tr class="top-aligned-row context-row"> | |
+ <td class="context-item-name">grouping</td> | |
+ <td class="context-item-value"> [R] </td> | |
+ <td class="context-item-desc"></td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ <div id="methods"> | |
+ <h3 class="section-bar">Public Class methods</h3> | |
+ | |
+ <div id="method-M000010" class="method-detail"> | |
+ <a name="M000010"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000010" class="method-signature"> | |
+ <span class="method-name">first</span><span class="method-args">(gro… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000010-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000010-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report… | |
+14: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword k… | |
+15: <span class="ruby-keyword kw">return</span> <span class="ruby-keyw… | |
+16: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+17: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+18: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+19: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+20: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+21: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+22: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+23: <span class="ruby-identifier">date</span> = <span class="ruby-… | |
+24: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+25: <span class="ruby-keyword kw">end</span> | |
+26: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ <div id="method-M000011" class="method-detail"> | |
+ <a name="M000011"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000011" class="method-signature"> | |
+ <span class="method-name">from_db_string</span><span class="method-a… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000011-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000011-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report… | |
+28: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword k… | |
+29: <span class="ruby-identifier">parts</span> = <span class="ruby-ide… | |
+30: <span class="ruby-identifier">result</span> = <span class="ruby-ke… | |
+31: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+32: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+33: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+34: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+35: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+36: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+37: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+38: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+39: <span class="ruby-keyword kw">end</span> | |
+40: <span class="ruby-identifier">result</span> | |
+41: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ <div id="method-M000009" class="method-detail"> | |
+ <a name="M000009"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000009" class="method-signature"> | |
+ <span class="method-name">new</span><span class="method-args">(group… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000009-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000009-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report… | |
+ 9: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+10: <span class="ruby-ivar">@grouping</span> = <span class="ruby-iden… | |
+11: <span class="ruby-ivar">@date_time</span> = <span class="ruby-iden… | |
+12: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ <h3 class="section-bar">Public Instance methods</h3> | |
+ | |
+ <div id="method-M000013" class="method-detail"> | |
+ <a name="M000013"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000013" class="method-signature"> | |
+ <span class="method-name">==</span><span class="method-args">(other)… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000013-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000013-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report… | |
+56: <span class="ruby-keyword kw">def</span> <span class="ruby-operator"… | |
+57: <span class="ruby-keyword kw">if</span> <span class="ruby-identifi… | |
+58: <span class="ruby-keyword kw">return</span> <span class="ruby-iv… | |
+59: <span class="ruby-keyword kw">end</span> | |
+60: <span class="ruby-keyword kw">false</span> | |
+61: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ <div id="method-M000012" class="method-detail"> | |
+ <a name="M000012"></a> | |
+ | |
+ <div class="method-heading"> | |
+ <a href="#M000012" class="method-signature"> | |
+ <span class="method-name">previous</span><span class="method-args">(… | |
+ </a> | |
+ </div> | |
+ | |
+ <div class="method-description"> | |
+ <p><a class="source-toggle" href="#" | |
+ onclick="toggleCode('M000012-source');return false;">[Source]</a><… | |
+ <div class="method-source-code" id="M000012-source"> | |
+<pre> | |
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report… | |
+43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifie… | |
+44: <span class="ruby-keyword kw">return</span> <span class="ruby-keyw… | |
+45: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+46: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+47: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+48: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+49: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+50: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+51: <span class="ruby-keyword kw">when</span> <span class="ruby-iden… | |
+52: <span class="ruby-keyword kw">self</span>.<span class="ruby-id… | |
+53: <span class="ruby-keyword kw">end</span> | |
+54: <span class="ruby-keyword kw">end</span> | |
+</pre> | |
+ </div> | |
+ </div> | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/created.rid b/rdoc/created.rid | |
@@ -0,0 +1 @@ | |
+Thu, 11 Dec 2008 19:24:20 +0100 | |
diff --git a/rdoc/files/README_rdoc.html b/rdoc/files/README_rdoc.html | |
@@ -0,0 +1,167 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: README.rdoc</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="scr… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>README.rdoc</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>README.rdoc | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Thu Dec 04 14:58:12 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ <div id="description"> | |
+ <h1>ReportsAsSparkline</h1> | |
+<p> | |
+ReportsAsSparkline enables you to generate reports and sparklines from your | |
+database with very little effort. | |
+</p> | |
+<p> | |
+### Example | |
+</p> | |
+<p> | |
+This shows the first basic usage. Consider the following user model, | |
+including <b>created_at</b> and <b>activated_at</b> timestamp fields. | |
+</p> | |
+<pre> | |
+ class User < ActiveRecord::Base | |
+ report_as_sparkline :registrations | |
+ report_as_sparkline :activations, :date_column => :activated_at | |
+ report_as_sparkline :total_users, :cumulate => :registrations | |
+ end | |
+</pre> | |
+<p> | |
+Using <b>report_as_sparkline</b> like this will add the following class | |
+methods to your User model: | |
+</p> | |
+<pre> | |
+ # Generates a sparkline from the google chart api | |
+ # so you see the registrations per day | |
+ User.registrations_graph | |
+ | |
+ # Gets an array of the data to use in numerical display | |
+ User.registrations_report | |
+</pre> | |
+<p> | |
+### Implemented features | |
+</p> | |
+<ul> | |
+<li>cumulate option that depends on other report | |
+ | |
+</li> | |
+</ul> | |
+<h2>TODOs/ future plans</h2> | |
+<ul> | |
+<li>support for Oracle and DB2 (and others?) missing | |
+ | |
+</li> | |
+<li>Implement data ranges in arguments | |
+ | |
+</li> | |
+<li>Limit number of data points to maximum that the google chart api allows | |
+ | |
+</li> | |
+<li>Make graph styling configurable | |
+ | |
+</li> | |
+</ul> | |
+<p> | |
+If you want ot suggest any new features or report bugs, do so at <a | |
+href="http://simplabs.lighthouseapp.com/projects/21060-reportsassparkline/over… | |
+</p> | |
+<p> | |
+&copy; 2008 Martin Kavalar, Marco Otte-Witte (<a | |
+href="http://simplabs.com/#projects">simplabs.com/#projects</a>), released | |
+under the MIT license | |
+</p> | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/files/lib/kvlr/core_extensions/date_time_rb.html b/rdoc/files… | |
@@ -0,0 +1,101 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: date_time.rb</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" m… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>date_time.rb</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>lib/kvlr/core_extensions/date_time.rb | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Thu Dec 11 19:09:52 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/asset_tag_helper_rb.html … | |
@@ -0,0 +1,101 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: asset_tag_helper.rb</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" m… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>asset_tag_helper.rb</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>lib/kvlr/reports_as_sparkline/asset_tag_helper.rb | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Thu Dec 11 19:17:16 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/cumulated_report_rb.html … | |
@@ -0,0 +1,101 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: cumulated_report.rb</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" m… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>cumulated_report.rb</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>lib/kvlr/reports_as_sparkline/cumulated_report.rb | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Thu Dec 11 19:24:13 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/grouping_rb.html b/rdoc/f… | |
@@ -0,0 +1,101 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: grouping.rb</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" m… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>grouping.rb</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>lib/kvlr/reports_as_sparkline/grouping.rb | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Thu Dec 11 18:45:43 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/report_cache_rb.html b/rd… | |
@@ -0,0 +1,101 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: report_cache.rb</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" m… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>report_cache.rb</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>lib/kvlr/reports_as_sparkline/report_cache.rb | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Thu Dec 11 17:45:37 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/report_rb.html b/rdoc/fil… | |
@@ -0,0 +1,101 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: report.rb</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" m… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>report.rb</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>lib/kvlr/reports_as_sparkline/report.rb | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Thu Dec 11 19:19:10 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/reporting_period_rb.html … | |
@@ -0,0 +1,101 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: reporting_period.rb</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" m… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>reporting_period.rb</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>lib/kvlr/reports_as_sparkline/reporting_period.rb | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Wed Dec 10 15:35:51 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline_rb.html b/rdoc/files/lib/… | |
@@ -0,0 +1,101 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>File: reports_as_sparkline.rb</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <meta http-equiv="Content-Script-Type" content="text/javascript" /> | |
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" medi… | |
+ <script type="text/javascript"> | |
+ // <![CDATA[ | |
+ | |
+ function popupCode( url ) { | |
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=n… | |
+ } | |
+ | |
+ function toggleCode( id ) { | |
+ if ( document.getElementById ) | |
+ elem = document.getElementById( id ); | |
+ else if ( document.all ) | |
+ elem = eval( "document.all." + id ); | |
+ else | |
+ return false; | |
+ | |
+ elemStyle = elem.style; | |
+ | |
+ if ( elemStyle.display != "block" ) { | |
+ elemStyle.display = "block" | |
+ } else { | |
+ elemStyle.display = "none" | |
+ } | |
+ | |
+ return true; | |
+ } | |
+ | |
+ // Make codeblocks hidden by default | |
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display… | |
+ | |
+ // ]]> | |
+ </script> | |
+ | |
+</head> | |
+<body> | |
+ | |
+ | |
+ | |
+ <div id="fileHeader"> | |
+ <h1>reports_as_sparkline.rb</h1> | |
+ <table class="header-table"> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Path:</strong></td> | |
+ <td>lib/kvlr/reports_as_sparkline.rb | |
+ </td> | |
+ </tr> | |
+ <tr class="top-aligned-row"> | |
+ <td><strong>Last Update:</strong></td> | |
+ <td>Thu Dec 11 19:07:54 +0100 2008</td> | |
+ </tr> | |
+ </table> | |
+ </div> | |
+ <!-- banner header --> | |
+ | |
+ <div id="bodyContent"> | |
+ | |
+ | |
+ | |
+ <div id="contextContent"> | |
+ | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+ <!-- if includes --> | |
+ | |
+ <div id="section"> | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ <!-- if method_list --> | |
+ | |
+ | |
+ </div> | |
+ | |
+ | |
+<div id="validator-badges"> | |
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></sm… | |
+</div> | |
+ | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/fr_class_index.html b/rdoc/fr_class_index.html | |
@@ -0,0 +1,34 @@ | |
+ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<!-- | |
+ | |
+ Classes | |
+ | |
+ --> | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Classes</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" /> | |
+ <base target="docwin" /> | |
+</head> | |
+<body> | |
+<div id="index"> | |
+ <h1 class="section-bar">Classes</h1> | |
+ <div id="index-entries"> | |
+ <a href="classes/Kvlr/CoreExtensions/DateTime.html">Kvlr::CoreExtensions::… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/AssetTagHelper.html">Kvlr::Report… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ClassMethods.html">Kvlr::ReportsA… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/CumulatedReport.html">Kvlr::Repor… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html">Kvlr::ReportsAsSpa… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/Report.html">Kvlr::ReportsAsSpark… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportCache.html">Kvlr::ReportsAs… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html">Kvlr::Repor… | |
+ </div> | |
+</div> | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/fr_file_index.html b/rdoc/fr_file_index.html | |
@@ -0,0 +1,35 @@ | |
+ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<!-- | |
+ | |
+ Files | |
+ | |
+ --> | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Files</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" /> | |
+ <base target="docwin" /> | |
+</head> | |
+<body> | |
+<div id="index"> | |
+ <h1 class="section-bar">Files</h1> | |
+ <div id="index-entries"> | |
+ <a href="files/README_rdoc.html">README.rdoc</a><br /> | |
+ <a href="files/lib/kvlr/core_extensions/date_time_rb.html">lib/kvlr/core_e… | |
+ <a href="files/lib/kvlr/reports_as_sparkline_rb.html">lib/kvlr/reports_as_… | |
+ <a href="files/lib/kvlr/reports_as_sparkline/asset_tag_helper_rb.html">lib… | |
+ <a href="files/lib/kvlr/reports_as_sparkline/cumulated_report_rb.html">lib… | |
+ <a href="files/lib/kvlr/reports_as_sparkline/grouping_rb.html">lib/kvlr/re… | |
+ <a href="files/lib/kvlr/reports_as_sparkline/report_rb.html">lib/kvlr/repo… | |
+ <a href="files/lib/kvlr/reports_as_sparkline/report_cache_rb.html">lib/kvl… | |
+ <a href="files/lib/kvlr/reports_as_sparkline/reporting_period_rb.html">lib… | |
+ </div> | |
+</div> | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/fr_method_index.html b/rdoc/fr_method_index.html | |
@@ -0,0 +1,42 @@ | |
+ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
+ | |
+<!-- | |
+ | |
+ Methods | |
+ | |
+ --> | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>Methods</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+ <link rel="stylesheet" href="rdoc-style.css" type="text/css" /> | |
+ <base target="docwin" /> | |
+</head> | |
+<body> | |
+<div id="index"> | |
+ <h1 class="section-bar">Methods</h1> | |
+ <div id="index-entries"> | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000013">== … | |
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html#M000007">date_parts… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000010">fir… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000011">fro… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html#M000006">identifier… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html#M000005">new (Kvlr:… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/Report.html#M000014">new (Kvlr::R… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000009">new… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000012">pre… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportCache.html#M000004">process… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/ClassMethods.html#M000001">report… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/Report.html#M000015">run (Kvlr::R… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/CumulatedReport.html#M000003">run… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/AssetTagHelper.html#M000002">spar… | |
+ <a href="classes/Kvlr/CoreExtensions/DateTime.html#M000016">to_reporting_p… | |
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html#M000008">to_sql (Kv… | |
+ </div> | |
+</div> | |
+</body> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/index.html b/rdoc/index.html | |
@@ -0,0 +1,24 @@ | |
+<?xml version="1.0" encoding="iso-8859-1"?> | |
+<!DOCTYPE html | |
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" | |
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> | |
+ | |
+<!-- | |
+ | |
+ ReportsAsSparkline | |
+ | |
+ --> | |
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
+<head> | |
+ <title>ReportsAsSparkline</title> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
+</head> | |
+<frameset rows="20%, 80%"> | |
+ <frameset cols="25%,35%,45%"> | |
+ <frame src="fr_file_index.html" title="Files" name="Files" /> | |
+ <frame src="fr_class_index.html" name="Classes" /> | |
+ <frame src="fr_method_index.html" name="Methods" /> | |
+ </frameset> | |
+ <frame src="files/README_rdoc.html" name="docwin" /> | |
+</frameset> | |
+</html> | |
+\ No newline at end of file | |
diff --git a/rdoc/rdoc-style.css b/rdoc/rdoc-style.css | |
@@ -0,0 +1,208 @@ | |
+ | |
+body { | |
+ font-family: Verdana,Arial,Helvetica,sans-serif; | |
+ font-size: 90%; | |
+ margin: 0; | |
+ margin-left: 40px; | |
+ padding: 0; | |
+ background: white; | |
+} | |
+ | |
+h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; } | |
+h1 { font-size: 150%; } | |
+h2,h3,h4 { margin-top: 1em; } | |
+ | |
+a { background: #eef; color: #039; text-decoration: none; } | |
+a:hover { background: #039; color: #eef; } | |
+ | |
+/* Override the base stylesheet's Anchor inside a table cell */ | |
+td > a { | |
+ background: transparent; | |
+ color: #039; | |
+ text-decoration: none; | |
+} | |
+ | |
+/* and inside a section title */ | |
+.section-title > a { | |
+ background: transparent; | |
+ color: #eee; | |
+ text-decoration: none; | |
+} | |
+ | |
+/* === Structural elements =================================== */ | |
+ | |
+div#index { | |
+ margin: 0; | |
+ margin-left: -40px; | |
+ padding: 0; | |
+ font-size: 90%; | |
+} | |
+ | |
+ | |
+div#index a { | |
+ margin-left: 0.7em; | |
+} | |
+ | |
+div#index .section-bar { | |
+ margin-left: 0px; | |
+ padding-left: 0.7em; | |
+ background: #ccc; | |
+ font-size: small; | |
+} | |
+ | |
+ | |
+div#classHeader, div#fileHeader { | |
+ width: auto; | |
+ color: white; | |
+ padding: 0.5em 1.5em 0.5em 1.5em; | |
+ margin: 0; | |
+ margin-left: -40px; | |
+ border-bottom: 3px solid #006; | |
+} | |
+ | |
+div#classHeader a, div#fileHeader a { | |
+ background: inherit; | |
+ color: white; | |
+} | |
+ | |
+div#classHeader td, div#fileHeader td { | |
+ background: inherit; | |
+ color: white; | |
+} | |
+ | |
+ | |
+div#fileHeader { | |
+ background: #057; | |
+} | |
+ | |
+div#classHeader { | |
+ background: #048; | |
+} | |
+ | |
+ | |
+.class-name-in-header { | |
+ font-size: 180%; | |
+ font-weight: bold; | |
+} | |
+ | |
+ | |
+div#bodyContent { | |
+ padding: 0 1.5em 0 1.5em; | |
+} | |
+ | |
+div#description { | |
+ padding: 0.5em 1.5em; | |
+ background: #efefef; | |
+ border: 1px dotted #999; | |
+} | |
+ | |
+div#description h1,h2,h3,h4,h5,h6 { | |
+ color: #125;; | |
+ background: transparent; | |
+} | |
+ | |
+div#validator-badges { | |
+ text-align: center; | |
+} | |
+div#validator-badges img { border: 0; } | |
+ | |
+div#copyright { | |
+ color: #333; | |
+ background: #efefef; | |
+ font: 0.75em sans-serif; | |
+ margin-top: 5em; | |
+ margin-bottom: 0; | |
+ padding: 0.5em 2em; | |
+} | |
+ | |
+ | |
+/* === Classes =================================== */ | |
+ | |
+table.header-table { | |
+ color: white; | |
+ font-size: small; | |
+} | |
+ | |
+.type-note { | |
+ font-size: small; | |
+ color: #DEDEDE; | |
+} | |
+ | |
+.xxsection-bar { | |
+ background: #eee; | |
+ color: #333; | |
+ padding: 3px; | |
+} | |
+ | |
+.section-bar { | |
+ color: #333; | |
+ border-bottom: 1px solid #999; | |
+ margin-left: -20px; | |
+} | |
+ | |
+ | |
+.section-title { | |
+ background: #79a; | |
+ color: #eee; | |
+ padding: 3px; | |
+ margin-top: 2em; | |
+ margin-left: -30px; | |
+ border: 1px solid #999; | |
+} | |
+ | |
+.top-aligned-row { vertical-align: top } | |
+.bottom-aligned-row { vertical-align: bottom } | |
+ | |
+/* --- Context section classes ----------------------- */ | |
+ | |
+.context-row { } | |
+.context-item-name { font-family: monospace; font-weight: bold; color: black; } | |
+.context-item-value { font-size: small; color: #448; } | |
+.context-item-desc { color: #333; padding-left: 2em; } | |
+ | |
+/* --- Method classes -------------------------- */ | |
+.method-detail { | |
+ background: #efefef; | |
+ padding: 0; | |
+ margin-top: 0.5em; | |
+ margin-bottom: 1em; | |
+ border: 1px dotted #ccc; | |
+} | |
+.method-heading { | |
+ color: black; | |
+ background: #ccc; | |
+ border-bottom: 1px solid #666; | |
+ padding: 0.2em 0.5em 0 0.5em; | |
+} | |
+.method-signature { color: black; background: inherit; } | |
+.method-name { font-weight: bold; } | |
+.method-args { font-style: italic; } | |
+.method-description { padding: 0 0.5em 0 0.5em; } | |
+ | |
+/* --- Source code sections -------------------- */ | |
+ | |
+a.source-toggle { font-size: 90%; } | |
+div.method-source-code { | |
+ background: #262626; | |
+ color: #ffdead; | |
+ margin: 1em; | |
+ padding: 0.5em; | |
+ border: 1px dashed #999; | |
+ overflow: hidden; | |
+} | |
+ | |
+div.method-source-code pre { color: #ffdead; overflow: hidden; } | |
+ | |
+/* --- Ruby keyword styles --------------------- */ | |
+ | |
+.standalone-code { background: #221111; color: #ffdead; overflow: hidden; } | |
+ | |
+.ruby-constant { color: #7fffd4; background: transparent; } | |
+.ruby-keyword { color: #00ffff; background: transparent; } | |
+.ruby-ivar { color: #eedd82; background: transparent; } | |
+.ruby-operator { color: #00ffee; background: transparent; } | |
+.ruby-identifier { color: #ffdead; background: transparent; } | |
+.ruby-node { color: #ffa07a; background: transparent; } | |
+.ruby-comment { color: #b22222; font-weight: bold; background: transparent; } | |
+.ruby-regexp { color: #ffa07a; background: transparent; } | |
+.ruby-value { color: #7fffd4; background: transparent; } | |
+\ No newline at end of file |