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 |