class BBCode::Tag
Attributes
parent[RW]
Public Class Methods
block()
click to toggle source
# File lib/bbcode-rails/tag.rb, line 90 def self.block @block end
block_options(*args)
click to toggle source
# File lib/bbcode-rails/tag.rb, line 78 def self.block_options *args @options = args end
inherited(subclass)
click to toggle source
# File lib/bbcode-rails/tag.rb, line 72 def self.inherited subclass # In case we autoreload, remove earlier instances BBCode.tags.delete_if {|c| c.to_s == subclass.to_s } BBCode.tags[subclass.to_s.downcase] = subclass end
new(parent)
click to toggle source
# File lib/bbcode-rails/tag.rb, line 23 def initialize parent @parent = parent @content = [] @argument = "" end
on_layout(&b)
click to toggle source
# File lib/bbcode-rails/tag.rb, line 82 def self.on_layout &b @block = b end
options()
click to toggle source
# File lib/bbcode-rails/tag.rb, line 86 def self.options @options ||= [] end
Public Instance Methods
<<(c)
click to toggle source
# File lib/bbcode-rails/tag.rb, line 45 def << c if !has_option :content raise BBCode::ParseError, "Tried to assign content to a tag which takes none, #{name}" else @content << c end end
argument=(arg)
click to toggle source
# File lib/bbcode-rails/tag.rb, line 37 def argument= arg if !has_option :argument raise BBCode::ParseError, "Tried to assign an argument to a tag which takes none, #{name}" else @argument = arg end end
get_block()
click to toggle source
# File lib/bbcode-rails/tag.rb, line 33 def get_block self.class.block end
has_option(opt)
click to toggle source
# File lib/bbcode-rails/tag.rb, line 29 def has_option opt self.class.options.include?(opt) end
name()
click to toggle source
# File lib/bbcode-rails/tag.rb, line 68 def name self.class.to_s.downcase.gsub(/tag$/i,'') end
to_s()
click to toggle source
# File lib/bbcode-rails/tag.rb, line 53 def to_s if has_option :content result = @content.map(&:to_s).join('') end if has_option(:content) and has_option(:argument) self.instance_exec(@argument, result, &get_block) elsif has_option :content self.instance_exec(result, &get_block) elsif has_option :argument self.instance_exec(@argument, &get_block) else self.instance_exec(&get_block) end end