working on documentation - reportable - Fork of reportable required by WarVox, from hdm/reportable.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 793ccc345c8f37fa8cbfc3eb8579779d1c248ffa
(DIR) parent e6ea4a8f5cae154c3ef76132a449d0b8117e9ace
(HTM) Author: marcoow <marco.otte-witte@simplabs.com>
Date: Fri, 12 Dec 2008 02:28:19 +0800
working on documentation
Signed-off-by: Marco Otte-Witte <marco.otte-witte@simplabs.com>
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(-)
---
(DIR) diff --git a/generators/reports_as_sparkline_migration/reports_as_sparkline_migration_generator.rb b/generators/reports_as_sparkline_migration/reports_as_sparkline_migration_generator.rb
@@ -1,7 +1,5 @@
-# Generates the migration that adds the caching table
-class ReportsAsSparklineMigrationGenerator < Rails::Generator::NamedBase
+class ReportsAsSparklineMigrationGenerator < Rails::Generator::NamedBase #:nodoc:
- # Creates the generator's manifest
def manifest
record do |m|
m.migration_template 'migration.erb', 'db/migrate'
(DIR) diff --git a/lib/kvlr/core_extensions/date_time.rb b/lib/kvlr/core_extensions/date_time.rb
@@ -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::ReportingPeriod
def to_reporting_period(grouping)
- Kvlr::ReportsAsSparkline::ReportsAsSparkline.new(grouping, self)
+ Kvlr::ReportsAsSparkline::ReportingPeriod.new(grouping, self)
end
end
(DIR) 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 <name>_report
+ #
+ # ==== Parameters
+ #
+ # * <tt>name</tt> - The name of the report, defines the name of the generated report method (<name>_report)
+ #
+ # ==== Options
+ #
+ # * <tt>:date_column_name</tt> - The name of the date column on that the records are aggregated
+ # * <tt>:value_column_name</tt> - The name of the column that holds the value to sum for aggregation :sum
+ # * <tt>:aggregation</tt> - The aggregation to use (either :count or :sum); when using :sum, :value_column_name must also be specified
+ # * <tt>:grouping</tt> - The period records are grouped on (:hour, :day, :week, :month)
+ # * <tt>:limit</tt> - The number of periods to get (see :grouping)
+ # * <tt>:conditions</tt> - Conditions like in ActiveRecord::Base#find; only records that match there conditions are reported on
#
- # 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, :operation => :count
- # 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_at, :operation => :count
+ # report_as_sparkline :total_users_report, :cumulate => true
+ # report_as_sparkline :rake, :aggregation => :sum, :value_column_name => :profile_visits
+ # end
def report_as_sparkline(name, options = {})
(class << self; self; end).instance_eval do
define_method "#{name.to_s}_report".to_sym do |*args|
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/asset_tag_helper.rb b/lib/kvlr/reports_as_sparkline/asset_tag_helper.rb
@@ -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 => 100, :color => '000') %>
def sparkline_tag(data, options = {})
- options.reverse_merge!({:width => 300, :height => 34, :color => '0077CC'})
+ options.reverse_merge!({:width => 300, :height => 34, :color => '0077cc'})
data.collect! { |element| element[1].to_s }
image_tag(
"http://chart.apis.google.com/chart?cht=ls&chs=#{options[:width]}x#{options[:height]}&chd=t:#{data.join(',')}&chco=#{options[:color]}&chm=B,E6F2FA,0,0,0&chls=1,0,0&chds=#{data.min},#{data.max}"
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/cumulated_report.rb b/lib/kvlr/reports_as_sparkline/cumulated_report.rb
@@ -2,15 +2,27 @@ module Kvlr #:nodoc:
module ReportsAsSparkline #:nodoc:
+ # A special report class that cumulates all data (see Kvlr::ReportsAsSparkline::Report)
+ #
+ # ==== 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|
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/grouping.rb b/lib/kvlr/reports_as_sparkline/grouping.rb
@@ -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, :day, :week or :month
class Grouping
- def initialize(grouping)
- raise ArgumentError.new("Invalid grouping #{grouping}") unless [:hour, :day, :week, :month].include?(grouping)
- @identifier = grouping
+ def initialize(identifier)
+ raise ArgumentError.new("Invalid grouping #{grouping}") unless [:hour, :day, :week, :month].include?(identifier)
+ @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::ConnectionAdapters::PostgreSQLAdapter'
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)
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/report.rb b/lib/kvlr/reports_as_sparkline/report.rb
@@ -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(' AND '), *custom_conditions.map{ |k, v| v }]
@@ -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|
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/report_cache.rb b/lib/kvlr/reports_as_sparkline/report_cache.rb
@@ -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
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/reporting_period.rb b/lib/kvlr/reports_as_sparkline/reporting_period.rb
@@ -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.identifier.to_s == other.grouping.identifier.to_s
end
(DIR) diff --git a/rdoc/classes/Kvlr/CoreExtensions/DateTime.html b/rdoc/classes/Kvlr/CoreExtensions/DateTime.html
@@ -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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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.html">
+ 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="method-args">(grouping)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p>
+Converts the <a href="DateTime.html">DateTime</a> into a <a
+href="../ReportsAsSparkline/ReportingPeriod.html">Kvlr::ReportsAsSparkline::ReportingPeriod</a>
+</p>
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000016-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/core_extensions/date_time.rb, line 10</span>
+10: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_reporting_period</span>(<span class="ruby-identifier">grouping</span>)
+11: <span class="ruby-constant">Kvlr</span><span class="ruby-operator">::</span><span class="ruby-constant">ReportsAsSparkline</span><span class="ruby-operator">::</span><span class="ruby-constant">ReportingPeriod</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-keyword kw">self</span>)
+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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/AssetTagHelper.html b/rdoc/classes/Kvlr/ReportsAsSparkline/AssetTagHelper.html
@@ -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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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::AssetTagHelper</td>
+ </tr>
+ <tr class="top-aligned-row">
+ <td><strong>In:</strong></td>
+ <td>
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/asset_tag_helper_rb.html">
+ 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-args">(data, options = {})</span>
+ </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></p>
+ <div class="method-source-code" id="M000002-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/asset_tag_helper.rb, line 21</span>
+21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sparkline_tag</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">options</span> = {})
+22: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>({<span class="ruby-identifier">:width</span> =<span class="ruby-operator">></span> <span class="ruby-value">300</span>, <span class="ruby-identifier">:height</span> =<span class="ruby-operator">></span> <span class="ruby-value">34</span>, <span class="ruby-identifier">:color</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'0077cc'</span>})
+23: <span class="ruby-identifier">data</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span> <span class="ruby-identifier">element</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">to_s</span> }
+24: <span class="ruby-identifier">image_tag</span>(
+25: <span class="ruby-node">"http://chart.apis.google.com/chart?cht=ls&chs=#{options[:width]}x#{options[:height]}&chd=t:#{data.join(',')}&chco=#{options[:color]}&chm=B,E6F2FA,0,0,0&chls=1,0,0&chds=#{data.min},#{data.max}"</span>
+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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/ClassMethods.html b/rdoc/classes/Kvlr/ReportsAsSparkline/ClassMethods.html
@@ -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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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::ClassMethods</td>
+ </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="method-args">(name, options = {})</span>
+ </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, :operation => :count
+ report_as_sparkline :total_users_report, :cumulate => true
+ report_as_sparkline :rake, :aggregation => :sum, :value_column_name => :profile_visits
+ end
+</pre>
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000001-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline.rb, line 38</span>
+38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">report_as_sparkline</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span> = {})
+39: (<span class="ruby-keyword kw">class</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">end</span>).<span class="ruby-identifier">instance_eval</span> <span class="ruby-keyword kw">do</span>
+40: <span class="ruby-identifier">define_method</span> <span class="ruby-node">"#{name.to_s}_report"</span>.<span class="ruby-identifier">to_sym</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
+41: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">:cumulate</span>)
+42: <span class="ruby-identifier">report</span> = <span class="ruby-constant">Kvlr</span><span class="ruby-operator">::</span><span class="ruby-constant">ReportsAsSparkline</span><span class="ruby-operator">::</span><span class="ruby-constant">CumulatedReport</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span>)
+43: <span class="ruby-keyword kw">else</span>
+44: <span class="ruby-identifier">report</span> = <span class="ruby-constant">Kvlr</span><span class="ruby-operator">::</span><span class="ruby-constant">ReportsAsSparkline</span><span class="ruby-operator">::</span><span class="ruby-constant">Report</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span>)
+45: <span class="ruby-keyword kw">end</span>
+46: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">||</span> (<span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>))
+47: <span class="ruby-identifier">report</span>.<span class="ruby-identifier">run</span>(<span class="ruby-identifier">args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> {} <span class="ruby-operator">:</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>])
+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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/CumulatedReport.html b/rdoc/classes/Kvlr/ReportsAsSparkline/CumulatedReport.html
@@ -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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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::CumulatedReport</td>
+ </tr>
+ <tr class="top-aligned-row">
+ <td><strong>In:</strong></td>
+ <td>
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/cumulated_report_rb.html">
+ 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">(options = {})</span>
+ </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></p>
+ <div class="method-source-code" id="M000003-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/cumulated_report.rb, line 16</span>
+16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>(<span class="ruby-identifier">options</span> = {})
+17: <span class="ruby-identifier">cumulate</span>(<span class="ruby-keyword kw">super</span>)
+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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/Grouping.html b/rdoc/classes/Kvlr/ReportsAsSparkline/Grouping.html
@@ -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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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</td>
+ </tr>
+ <tr class="top-aligned-row">
+ <td><strong>In:</strong></td>
+ <td>
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/grouping_rb.html">
+ 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">(grouping)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000005-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/grouping.rb, line 7</span>
+ 7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">grouping</span>)
+ 8: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Invalid grouping #{grouping}"</span>) <span class="ruby-keyword kw">unless</span> [<span class="ruby-identifier">:hour</span>, <span class="ruby-identifier">:day</span>, <span class="ruby-identifier">:week</span>, <span class="ruby-identifier">:month</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">grouping</span>)
+ 9: <span class="ruby-ivar">@identifier</span> = <span class="ruby-identifier">grouping</span>
+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 class="method-args">(db_string)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000007-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/grouping.rb, line 16</span>
+16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">date_parts_from_db_string</span>(<span class="ruby-identifier">db_string</span>)
+17: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">connection</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter'</span>
+18: <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@identifier</span>
+19: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:hour</span>
+20: <span class="ruby-keyword kw">return</span> (<span class="ruby-identifier">db_string</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">9</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">'-'</span>) <span class="ruby-operator">+</span> [<span class="ruby-identifier">db_string</span>[<span class="ruby-value">11</span><span class="ruby-operator">..</span><span class="ruby-value">12</span>]]).<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">:to_i</span>)
+21: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:day</span>
+22: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">db_string</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">9</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">'-'</span>).<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">:to_i</span>)
+23: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:week</span>
+24: <span class="ruby-identifier">parts</span> = <span class="ruby-identifier">db_string</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">9</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">'-'</span>).<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">:to_i</span>)
+25: <span class="ruby-identifier">date</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">parts</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">2</span>])
+26: <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">date</span>.<span class="ruby-identifier">year</span>, <span class="ruby-identifier">date</span>.<span class="ruby-identifier">cweek</span>]
+27: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:month</span>
+28: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">db_string</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">6</span>].<span class="ruby-identifier">split</span>(<span class="ruby-value str">'-'</span>)[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>].<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">:to_i</span>)
+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-identifier">db_string</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">map</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">:to_i</span>)
+32: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">parts</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">connection</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'ActiveRecord::ConnectionAdapters::MysqlAdapter'</span>
+33: <span class="ruby-identifier">parts</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@identifier</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:week</span>
+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">()</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000006-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/grouping.rb, line 12</span>
+12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">identifier</span>
+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">(date_column_name)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000008-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/grouping.rb, line 38</span>
+38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_sql</span>(<span class="ruby-identifier">date_column_name</span>)
+39: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">case</span> <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">connection</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>
+40: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'ActiveRecord::ConnectionAdapters::MysqlAdapter'</span>
+41: <span class="ruby-identifier">mysql_format</span>(<span class="ruby-identifier">date_column_name</span>)
+42: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'ActiveRecord::ConnectionAdapters::SQLite3Adapter'</span>
+43: <span class="ruby-identifier">sqlite_format</span>(<span class="ruby-identifier">date_column_name</span>)
+44: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter'</span>
+45: <span class="ruby-identifier">postgresql_format</span>(<span class="ruby-identifier">date_column_name</span>)
+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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/Report.html b/rdoc/classes/Kvlr/ReportsAsSparkline/Report.html
@@ -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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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</td>
+ </tr>
+ <tr class="top-aligned-row">
+ <td><strong>In:</strong></td>
+ <td>
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/report_rb.html">
+ 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, name, options = {})</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000014-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report.rb, line 9</span>
+ 9: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span> = {})
+10: <span class="ruby-identifier">ensure_valid_options</span>(<span class="ruby-identifier">options</span>)
+11: <span class="ruby-ivar">@klass</span> = <span class="ruby-identifier">klass</span>
+12: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
+13: <span class="ruby-ivar">@date_column_name</span> = (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:date_column_name</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'created_at'</span>).<span class="ruby-identifier">to_s</span>
+14: <span class="ruby-ivar">@value_column_name</span> = (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:value_column_name</span>] <span class="ruby-operator">||</span> (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:aggregation</span>] <span class="ruby-operator">!=</span> <span class="ruby-identifier">:sum</span> <span class="ruby-operator">?</span> <span class="ruby-value str">'id'</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">name</span>)).<span class="ruby-identifier">to_s</span>
+15: <span class="ruby-ivar">@aggregation</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:aggregation</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">:count</span>
+16: <span class="ruby-ivar">@grouping</span> = <span class="ruby-constant">Grouping</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:grouping</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">:day</span>)
+17: <span class="ruby-ivar">@options</span> = {
+18: <span class="ruby-identifier">:limit</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:limit</span>] <span class="ruby-operator">||</span> <span class="ruby-value">100</span>,
+19: <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:conditions</span>] <span class="ruby-operator">||</span> []
+20: }
+21: <span class="ruby-ivar">@options</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">options</span>)
+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">(options = {})</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000015-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report.rb, line 24</span>
+24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>(<span class="ruby-identifier">options</span> = {})
+25: <span class="ruby-identifier">ensure_valid_options</span>(<span class="ruby-identifier">options</span>, <span class="ruby-identifier">:run</span>)
+26: <span class="ruby-identifier">custom_conditions</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">:conditions</span>)
+27: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-ivar">@options</span>)
+28: <span class="ruby-constant">ReportCache</span>.<span class="ruby-identifier">process</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:limit</span>], <span class="ruby-identifier">custom_conditions</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">begin_at</span><span class="ruby-operator">|</span>
+29: <span class="ruby-identifier">read_data</span>(<span class="ruby-identifier">begin_at</span>, <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:conditions</span>])
+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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/ReportCache.html b/rdoc/classes/Kvlr/ReportsAsSparkline/ReportCache.html
@@ -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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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::ReportCache</td>
+ </tr>
+ <tr class="top-aligned-row">
+ <td><strong>In:</strong></td>
+ <td>
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/report_cache_rb.html">
+ 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">(report, limit, no_cache = false) {|last_reporting_period_to_read.date_time| ...}</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000004-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/report_cache.rb, line 9</span>
+ 9: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">process</span>(<span class="ruby-identifier">report</span>, <span class="ruby-identifier">limit</span>, <span class="ruby-identifier">no_cache</span> = <span class="ruby-keyword kw">false</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
+10: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'A block must be given'</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">block_given?</span>
+11: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transaction</span> <span class="ruby-keyword kw">do</span>
+12: <span class="ruby-identifier">cached_data</span> = []
+13: <span class="ruby-identifier">last_reporting_period_to_read</span> = <span class="ruby-constant">ReportingPeriod</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">report</span>.<span class="ruby-identifier">grouping</span>, <span class="ruby-identifier">limit</span>)
+14: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">no_cache</span>
+15: <span class="ruby-identifier">cached_data</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">find</span>(
+16: <span class="ruby-identifier">:all</span>,
+17: <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">></span> {
+18: <span class="ruby-identifier">:model_name</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">klass</span>.<span class="ruby-identifier">to_s</span>,
+19: <span class="ruby-identifier">:report_name</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>,
+20: <span class="ruby-identifier">:grouping</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">grouping</span>.<span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">to_s</span>,
+21: <span class="ruby-identifier">:aggregation</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">report</span>.<span class="ruby-identifier">aggregation</span>.<span class="ruby-identifier">to_s</span>
+22: },
+23: <span class="ruby-identifier">:limit</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">limit</span>,
+24: <span class="ruby-identifier">:order</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'reporting_period DESC'</span>
+25: )
+26: <span class="ruby-identifier">last_reporting_period_to_read</span> = <span class="ruby-identifier">cached_data</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">reporting_period</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">cached_data</span>.<span class="ruby-identifier">empty?</span>
+27: <span class="ruby-keyword kw">end</span>
+28: <span class="ruby-identifier">new_data</span> = <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">last_reporting_period_to_read</span>.<span class="ruby-identifier">date_time</span>)
+29: <span class="ruby-identifier">prepare_result</span>(<span class="ruby-identifier">new_data</span>, <span class="ruby-identifier">cached_data</span>, <span class="ruby-identifier">last_reporting_period_to_read</span>, <span class="ruby-identifier">report</span>, <span class="ruby-identifier">no_cache</span>)
+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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html b/rdoc/classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html
@@ -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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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::ReportingPeriod</td>
+ </tr>
+ <tr class="top-aligned-row">
+ <td><strong>In:</strong></td>
+ <td>
+ <a href="../../../files/lib/kvlr/reports_as_sparkline/reporting_period_rb.html">
+ 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">(grouping, limit)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000010-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/reporting_period.rb, line 14</span>
+14: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-identifier">limit</span>)
+15: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">grouping</span>.<span class="ruby-identifier">identifier</span>
+16: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:hour</span>
+17: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">hours</span>)
+18: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:day</span>
+19: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">days</span>)
+20: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:week</span>
+21: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">weeks</span>)
+22: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:month</span>
+23: <span class="ruby-identifier">date</span> = <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">now</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">limit</span>.<span class="ruby-identifier">months</span>
+24: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">date</span>.<span class="ruby-identifier">year</span>, <span class="ruby-identifier">date</span>.<span class="ruby-identifier">month</span>, <span class="ruby-value">1</span>))
+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-args">(grouping, db_string)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000011-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/reporting_period.rb, line 28</span>
+28: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">from_db_string</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-identifier">db_string</span>)
+29: <span class="ruby-identifier">parts</span> = <span class="ruby-identifier">grouping</span>.<span class="ruby-identifier">date_parts_from_db_string</span>(<span class="ruby-identifier">db_string</span>)
+30: <span class="ruby-identifier">result</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">grouping</span>.<span class="ruby-identifier">identifier</span>
+31: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:hour</span>
+32: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">parts</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">2</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">3</span>], <span class="ruby-value">0</span>, <span class="ruby-value">0</span>))
+33: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:day</span>
+34: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">parts</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">2</span>]))
+35: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:week</span>
+36: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-constant">Date</span>.<span class="ruby-identifier">commercial</span>(<span class="ruby-identifier">parts</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">1</span>]))
+37: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:month</span>
+38: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">parts</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">parts</span>[<span class="ruby-value">1</span>], <span class="ruby-value">1</span>))
+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">(grouping, date_time = DateTime.now)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000009-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/reporting_period.rb, line 9</span>
+ 9: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">grouping</span>, <span class="ruby-identifier">date_time</span> = <span class="ruby-constant">DateTime</span>.<span class="ruby-identifier">now</span>)
+10: <span class="ruby-ivar">@grouping</span> = <span class="ruby-identifier">grouping</span>
+11: <span class="ruby-ivar">@date_time</span> = <span class="ruby-identifier">parse_date_time</span>(<span class="ruby-identifier">date_time</span>)
+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)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000013-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/reporting_period.rb, line 56</span>
+56: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">==</span>(<span class="ruby-identifier">other</span>)
+57: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Kvlr</span><span class="ruby-operator">::</span><span class="ruby-constant">ReportsAsSparkline</span><span class="ruby-operator">::</span><span class="ruby-constant">ReportingPeriod</span>
+58: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@date_time</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">date_time</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">&&</span> <span class="ruby-ivar">@grouping</span>.<span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">grouping</span>.<span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">to_s</span>
+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">()</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000012-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/kvlr/reports_as_sparkline/reporting_period.rb, line 43</span>
+43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">previous</span>
+44: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@grouping</span>.<span class="ruby-identifier">identifier</span>
+45: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:hour</span>
+46: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@grouping</span>, <span class="ruby-ivar">@date_time</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>.<span class="ruby-identifier">hour</span>)
+47: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:day</span>
+48: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@grouping</span>, <span class="ruby-ivar">@date_time</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>.<span class="ruby-identifier">day</span>)
+49: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:week</span>
+50: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@grouping</span>, <span class="ruby-ivar">@date_time</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>.<span class="ruby-identifier">week</span>)
+51: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:month</span>
+52: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@grouping</span>, <span class="ruby-ivar">@date_time</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>.<span class="ruby-identifier">month</span>)
+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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/created.rid b/rdoc/created.rid
@@ -0,0 +1 @@
+Thu, 11 Dec 2008 19:24:20 +0100
(DIR) 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="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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/overview">simplabs.lighthouseapp.com/projects/21060-reportsassparkline/overview</a>.
+</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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/files/lib/kvlr/core_extensions/date_time_rb.html b/rdoc/files/lib/kvlr/core_extensions/date_time_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: 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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/asset_tag_helper_rb.html b/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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/cumulated_report_rb.html b/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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/grouping_rb.html b/rdoc/files/lib/kvlr/reports_as_sparkline/grouping_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: 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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/report_cache_rb.html b/rdoc/files/lib/kvlr/reports_as_sparkline/report_cache_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: 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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/report_rb.html b/rdoc/files/lib/kvlr/reports_as_sparkline/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: 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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline/reporting_period_rb.html b/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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) diff --git a/rdoc/files/lib/kvlr/reports_as_sparkline_rb.html b/rdoc/files/lib/kvlr/reports_as_sparkline_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: 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" media="screen" />
+ <script type="text/javascript">
+ // <![CDATA[
+
+ function popupCode( url ) {
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+ }
+
+ 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: none }</style>" )
+
+ // ]]>
+ </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></small></p>
+</div>
+
+</body>
+</html>
+\ No newline at end of file
(DIR) 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::DateTime</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/AssetTagHelper.html">Kvlr::ReportsAsSparkline::AssetTagHelper</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ClassMethods.html">Kvlr::ReportsAsSparkline::ClassMethods</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/CumulatedReport.html">Kvlr::ReportsAsSparkline::CumulatedReport</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html">Kvlr::ReportsAsSparkline::Grouping</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/Report.html">Kvlr::ReportsAsSparkline::Report</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportCache.html">Kvlr::ReportsAsSparkline::ReportCache</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html">Kvlr::ReportsAsSparkline::ReportingPeriod</a><br />
+ </div>
+</div>
+</body>
+</html>
+\ No newline at end of file
(DIR) 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_extensions/date_time.rb</a><br />
+ <a href="files/lib/kvlr/reports_as_sparkline_rb.html">lib/kvlr/reports_as_sparkline.rb</a><br />
+ <a href="files/lib/kvlr/reports_as_sparkline/asset_tag_helper_rb.html">lib/kvlr/reports_as_sparkline/asset_tag_helper.rb</a><br />
+ <a href="files/lib/kvlr/reports_as_sparkline/cumulated_report_rb.html">lib/kvlr/reports_as_sparkline/cumulated_report.rb</a><br />
+ <a href="files/lib/kvlr/reports_as_sparkline/grouping_rb.html">lib/kvlr/reports_as_sparkline/grouping.rb</a><br />
+ <a href="files/lib/kvlr/reports_as_sparkline/report_rb.html">lib/kvlr/reports_as_sparkline/report.rb</a><br />
+ <a href="files/lib/kvlr/reports_as_sparkline/report_cache_rb.html">lib/kvlr/reports_as_sparkline/report_cache.rb</a><br />
+ <a href="files/lib/kvlr/reports_as_sparkline/reporting_period_rb.html">lib/kvlr/reports_as_sparkline/reporting_period.rb</a><br />
+ </div>
+</div>
+</body>
+</html>
+\ No newline at end of file
(DIR) 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">== (Kvlr::ReportsAsSparkline::ReportingPeriod)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html#M000007">date_parts_from_db_string (Kvlr::ReportsAsSparkline::Grouping)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000010">first (Kvlr::ReportsAsSparkline::ReportingPeriod)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000011">from_db_string (Kvlr::ReportsAsSparkline::ReportingPeriod)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html#M000006">identifier (Kvlr::ReportsAsSparkline::Grouping)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html#M000005">new (Kvlr::ReportsAsSparkline::Grouping)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/Report.html#M000014">new (Kvlr::ReportsAsSparkline::Report)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000009">new (Kvlr::ReportsAsSparkline::ReportingPeriod)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportingPeriod.html#M000012">previous (Kvlr::ReportsAsSparkline::ReportingPeriod)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ReportCache.html#M000004">process (Kvlr::ReportsAsSparkline::ReportCache)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/ClassMethods.html#M000001">report_as_sparkline (Kvlr::ReportsAsSparkline::ClassMethods)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/Report.html#M000015">run (Kvlr::ReportsAsSparkline::Report)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/CumulatedReport.html#M000003">run (Kvlr::ReportsAsSparkline::CumulatedReport)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/AssetTagHelper.html#M000002">sparkline_tag (Kvlr::ReportsAsSparkline::AssetTagHelper)</a><br />
+ <a href="classes/Kvlr/CoreExtensions/DateTime.html#M000016">to_reporting_period (Kvlr::CoreExtensions::DateTime)</a><br />
+ <a href="classes/Kvlr/ReportsAsSparkline/Grouping.html#M000008">to_sql (Kvlr::ReportsAsSparkline::Grouping)</a><br />
+ </div>
+</div>
+</body>
+</html>
+\ No newline at end of file
(DIR) 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
(DIR) 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