Module: AxTags
- Defined in:
- lib/axtags/ax_parser.rb,
lib/axtags.rb,
lib/axtags/ax_context.rb,
lib/axtags/tag_library.rb
Overview
AX TAGS Flexible, extensible custom tag and template-parsing framework built around the Radius templating framework.
TagLibrary - Composed of an AxContext and an AxParser, each library
class provides the direct interface for defining tags in a given context,
passing local variables to the parser, and managing the parsing process. Best
use calls for the application to create any number of descendant classes of
this class in which they define tags and call parsing actions upon. For
example:
class MyTagLibrary < AxTags::TagLibrary
tag "myanchor" do |t|
"<a class='awesome_anchor' href='http://awesometown.com/'>I am Awesome!</a>"
end
end
MyTagLibrary.parse("Here is an awesome link: <ax:myanchor/>")
=> "Here is an awesome link: <a class='awesome_anchor' href='http://awesometown.com/'>I am awesome!</a>"
Because tags are defined at a class level, it's not generally recommended to
use the parent class as your API to tag definition and parsing, though it is
possible to access the context and parsers directly and define tags and call
parsing on them. That would look some like this:
AxTags::TagLibrary.context.with do |c|
c.define_tag "myanchor" do |t|
"<a class='awesome_anchor' href='http://awesometown.com/'>I am Awesome!</a>"
end
end
AxTags::TagLibrary.parse("Here is an awesome link: <ax:myanchor/>")
=> "Here is an awesome link: <a class='awesome_anchor' href='http://awesometown.com/'>I am awesome!</a>"
This introduces the complication of having only one global tag library in which all tags in your system would exist, which is why the first example is the preferred method for optimal extensibility and namespacing.
Defined Under Namespace
Classes: AxContext, AxParser, TagLibrary
Class Method Summary collapse
Class Method Details
.version ⇒ Object
15 16 17 |
# File 'lib/axtags.rb', line 15 def self.version Gem.loaded_specs["axtags"].version.to_s end |