Module: Webby

Defined in:
lib/webby/stelan/mktemp.rb,
lib/webby.rb,
lib/webby/builder.rb,
lib/webby/filters.rb,
lib/webby/helpers.rb,
lib/webby/journal.rb,
lib/webby/renderer.rb,
lib/webby/auto_builder.rb,
lib/webby/filters/tidy.rb,
lib/webby/filters/slides.rb,
lib/webby/link_validator.rb,
lib/webby/filters/outline.rb,
lib/webby/filters/basepath.rb,
lib/webby/stelan/paginator.rb

Overview

:stopdoc: Skeleton module for the ‘mktemp’ routine.

Ideally, one would do this in their code to import the “mktemp” call directly into their current namespace:

require 'mktemp'
include MkTemp
# do something with mktemp()

It is recommended that you look at the documentation for the mktemp() call directly for specific usage.

The compilation of software known as mktemp.rb is distributed under the following terms: Copyright © 2005-2006 Erik Hollensbe. All rights reserved.

Redistribution and use in source form, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright

notice, this list of conditions and the following disclaimer.

THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

++

Defined Under Namespace

Modules: Apps, Filters, Helpers, MkTemp, Resources Classes: AutoBuilder, Builder, Error, Journal, LinkValidator, Paginator, Renderer

Constant Summary collapse

VERSION =

:stopdoc:

'0.9.4'
LIBPATH =

:nodoc:

::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
PATH =
::File.dirname(LIBPATH) + ::File::SEPARATOR
YAML_SEP =
'---'

Class Method Summary collapse

Class Method Details

.cairnObject

call-seq:

cairn    => filename

The Webby cairn file is used to mark the last time the content was built into the output directory. It is an empty file; only the modification time of the file is important.



71
72
73
# File 'lib/webby.rb', line 71

def self.cairn
  @cairn ||= ::File.join(site.output_dir, '.cairn')
end

.deprecated(method, message = nil) ⇒ Object

Prints a deprecation warning using the logger. The message states that the given method is being deprecated. An optional message can be give to – somthing nice and fuzzy about a new method or why this one has to go away; sniff, we’ll miss you little buddy.



112
113
114
115
116
# File 'lib/webby.rb', line 112

def self.deprecated( method, message = nil )
  msg = "'#{method}' has been deprecated"
  msg << "\n\t#{message}" unless message.nil?
  Logging::Logger['Webby'].warn msg
end

.excludeObject

call-seq

Webby.exclude    => regexp

Returns a regular expression used to exclude resources from the content directory from being processed by Webby. This same regular expression is also used to exclude layouts.



42
43
44
# File 'lib/webby.rb', line 42

def self.exclude
  @exclude ||= Regexp.new(site.exclude.join('|'))
end

.exec_editor(*args) ⇒ Object

call-seq:

Webby.exec_editor( *args )

Calls the editor set in the Sitefile or in the environment variables WEBBY_EDITOR or EDITOR (in that order). This method will do nothing if the editor has not been set.



53
54
55
56
57
58
59
60
61
62
# File 'lib/webby.rb', line 53

def self.exec_editor( *args )
  unless defined? @editor
    @editor = (site.editor.nil? or site.editor.empty?) ? nil : site.editor
    @editor = @editor.split if @editor
  end
  return if @editor.nil?

  args = [@editor, args].flatten
  exec(*args)
end

.libpath(*args) ⇒ Object

Returns the library path for Webby. If any arguments are given, they will be joined to the end of the libray path using File.join.



79
80
81
# File 'lib/webby.rb', line 79

def self.libpath( *args )
  args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten)
end

.load_filesObject

Scan the layouts/ folder and the content/ folder and create a new Resource object for each file found there.



121
122
123
124
125
126
127
# File 'lib/webby.rb', line 121

def self.load_files
  ::Find.find(site.layout_dir, site.content_dir) do |path|
    next unless test ?f, path
    next if path =~ ::Webby.exclude
    Resources.new path
  end
end

.path(*args) ⇒ Object

Returns the path for Webby. If any arguments are given, they will be joined to the end of the path using File.join.



87
88
89
# File 'lib/webby.rb', line 87

def self.path( *args )
  args.empty? ? PATH : ::File.join(PATH, args.flatten)
end

.require_all_libs_relative_to(fname, dir = nil) ⇒ Object

call-seq:

Webby.require_all_libs_relative_to( filename, directory = nil )

Utility method used to rquire all files ending in .rb that lie in the directory below this file that has the same name as the filename passed in. Optionally, a specific directory name can be passed in such that the filename does not have to be equivalent to the directory.



99
100
101
102
103
104
105
# File 'lib/webby.rb', line 99

def self.require_all_libs_relative_to( fname, dir = nil )
  dir ||= ::File.basename(fname, '.*')
  search_me = ::File.expand_path(
      ::File.join(::File.dirname(fname), dir, '*.rb'))

  Dir.glob(search_me).sort.each {|rb| require rb}
end

.siteObject

call-seq:

Webby.site    => configuration

Returns the configuration parameters for the Webby site. These defaults should be overridden as needed in the site specific Rakefile.



31
32
33
# File 'lib/webby.rb', line 31

def self.site
  Loquacious.configuration_for :webby
end