diff --git a/Rakefile b/Rakefile
index e7608da0..71945350 100644
--- a/Rakefile
+++ b/Rakefile
@@ -99,6 +99,7 @@ unless ARGV[0] == 'benchmark'
rdoc.rdoc_files.include('REFERENCE')
rdoc.rdoc_files.include('lib/**/*.rb')
rdoc.rdoc_files.exclude('lib/haml/buffer.rb')
+ rdoc.rdoc_files.exclude('lib/sass/tree/*')
end
Rake::RDocTask.new do |rdoc|
@@ -111,8 +112,11 @@ unless ARGV[0] == 'benchmark'
rdoc.rdoc_dir = 'rdoc_devel'
rdoc.options << '--all'
rdoc.rdoc_files.include('test/*.rb')
+
+ # Get rid of exclusion rules
rdoc.rdoc_files = Rake::FileList.new(*rdoc.rdoc_files.to_a)
rdoc.rdoc_files.include('lib/haml/buffer.rb')
+ rdoc.rdoc_files.include('lib/sass/tree/*')
end
# ----- Coverage -----
diff --git a/lib/haml/engine.rb b/lib/haml/engine.rb
index fe02a346..9f550cc6 100644
--- a/lib/haml/engine.rb
+++ b/lib/haml/engine.rb
@@ -3,9 +3,9 @@ require 'haml/helpers'
require 'haml/buffer'
module Haml
- # This is the class where all the parsing and processing of the haml
+ # This is the class where all the parsing and processing of the Haml
# template is done. It can be directly used by the user by creating a
- # new instance and calling to_html to render the template. For example:
+ # new instance and calling to_html to render the template. For example:
#
# template = File.load('templates/really_cool_template.haml')
# haml_engine = Haml::Engine.new(template)
@@ -202,7 +202,7 @@ module Haml
end
end
- # Processes a single line of haml.
+ # Processes a single line of Haml.
#
# This method doesn't return anything; it simply processes the line and
# adds the appropriate code to @precompiled.
diff --git a/lib/sass/engine.rb b/lib/sass/engine.rb
index 57d4fab1..c8f954ae 100644
--- a/lib/sass/engine.rb
+++ b/lib/sass/engine.rb
@@ -4,6 +4,14 @@ require 'sass/tree/value_node'
require 'sass/tree/rule_node'
module Sass
+ # This is the class where all the parsing and processing of the Sass
+ # template is done. It can be directly used by the user by creating a
+ # new instance and calling render to render the template. For example:
+ #
+ # template = File.load('stylesheets/sassy.sass')
+ # sass_engine = Sass::Engine.new(template)
+ # output = sass_engine.render
+ # puts output
class Engine
# The character that begins a CSS attribute.
ATTRIBUTE_CHAR = ':'[0]
@@ -11,12 +19,25 @@ module Sass
# The string that begins one-line comments.
COMMENT_STRING = '//'
+ # Creates a new instace of Sass::Engine that will compile the given
+ # template string when render is called.
+ # See REFERENCE for available options.
+ #
+ #--
+ #
+ # TODO: Add current options to REFRENCE.
+ #
+ # When adding options, remember to add information about them
+ # to REFERENCE!
+ #++
+ #
def initialize(template, options={})
@template = template.split("\n")
@options = options
@index = 0
end
+ # Processes the template and returns the result as a string.
def render
root = Tree::Node.new
first_line, first_tabs = next_line
diff --git a/lib/sass/plugin.rb b/lib/sass/plugin.rb
index 19bcd6d8..9ae046a4 100644
--- a/lib/sass/plugin.rb
+++ b/lib/sass/plugin.rb
@@ -5,7 +5,9 @@ require 'rubygems'
require 'action_controller'
module Sass
- #Rails plugin stuff. For use with ActionView.
+ # This module contains methods that ActionController calls
+ # to automatically update Sass templates that need updating.
+ # It wasn't designed to be used outside of the context of ActionController.
module Plugin
class << self
@@options = {
@@ -16,7 +18,7 @@ module Sass
:style => :nested
}
- # Gets various options for Sass.
+ # Gets various options for Sass. See REFERENCE for details.
#--
# TODO: *DOCUMENT OPTIONS*
#++
@@ -29,6 +31,11 @@ module Sass
@@options.merge!(value)
end
+ # Checks each stylesheet in options[:css_location]
+ # to see if it needs updating,
+ # and updates it using the corresponding template
+ # from options[:templates]
+ # if it does.
def update_stylesheets
Dir[options[:template_location] + '/*.sass'].each do |file|
name = File.basename(file)[0...-5]
@@ -65,8 +72,13 @@ module Sass
end
end
+# This module refers to the ActionController module that's part of Ruby on Rails.
+# Sass can be used as an alternate templating engine for Rails,
+# and includes some modifications to make this more doable.
+# The documentation can be found
+# here[http://rubyonrails.org/api/classes/ActionController/Base.html].
module ActionController
- class Base
+ class Base # :nodoc:
alias_method :sass_old_process, :process
def process(*args)
Sass::Plugin.update_stylesheets if Sass::Plugin.options[:always_update] || Sass::Plugin.options[:always_check]