Module: Ember

Defined in:
lib/ember.rb,
lib/ember/inochi.rb,
lib/ember/template.rb

Defined Under Namespace

Classes: Template

Constant Summary collapse

PROJECT =

Official name of this project.

"Ember"
TAGLINE =

Short single-line description of this project.

"eRuby template processor"
WEBSITE =

Address of this project’s official home page.

"http://snk.tuxfamily.org/lib/ember/"
VERSION =

Number of this release of this project.

"0.2.0"
RELDATE =

Date of this release of this project.

"2010-04-25"
INSTDIR =

Location of this release of this project.

File.expand_path('../../..', __FILE__)
RUNTIME =

RubyGems required by this project during runtime.

Examples:


RUNTIME = {
  # this project needs exactly version 1.2.3 of the "an_example" gem
  "an_example" => [ "1.2.3" ],

  # this project needs at least version 1.2 (but not
  # version 1.2.4 or newer) of the "another_example" gem
  "another_example" => [ ">= 1.2" , "< 1.2.4" ],

  # this project needs any version of the "yet_another_example" gem
  "yet_another_example" => [],
}
{}
DEVTIME =

RubyGems required by this project during development.

Examples:


DEVTIME = {
  # this project needs exactly version 1.2.3 of the "an_example" gem
  "an_example" => [ "1.2.3" ],

  # this project needs at least version 1.2 (but not
  # version 1.2.4 or newer) of the "another_example" gem
  "another_example" => [ ">= 1.2" , "< 1.2.4" ],

  # this project needs any version of the "yet_another_example" gem
  "yet_another_example" => [],
}
{
  "inochi" => [ "~> 2" ], # for managing this project
  "dfect"  => [ "~> 2" ], # for unit testing
}

Class Method Summary collapse

Class Method Details

.inspectObject

Description of this release of this project.



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

def self.inspect
  "#{PROJECT} #{VERSION} (#{RELDATE})"
end

.require(gem_name_or_library) ⇒ Object

Loads the correct version (as defined by the RUNTIME or DEVTIME constant in this module) of the given gem or the gem that contains the given library.



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/ember/inochi.rb', line 86

def self.require gem_name_or_library
  # prepare the correct version of the gem for loading
  if respond_to? :gem
    gem_name = gem_name_or_library.to_s.sub(%r{/.*$}, '')
    if gem_version = RUNTIME[gem_name] || DEVTIME[gem_name]
      begin
        gem gem_name, *gem_version
      rescue LoadError => error
        warn "#{self.inspect}: #{error}"
      end
    end
  end

  # do the loading
  super
end