Module: RubyBBCode

Includes:
BBCode::Tags
Defined in:
lib/ruby-bbcode.rb

Constant Summary collapse

@@to_sentence_bbcode_tags =
{:words_connector => "], [", 
:two_words_connector => "] and [", 
:last_word_connector => "] and ["}

Class Method Summary collapse

Class Method Details

.is_valid?(text, additional_tags = {}) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/ruby-bbcode.rb', line 36

def self.is_valid?(text, additional_tags = {})
  parse(text, @@tags.merge(additional_tags));
end

.tag_listObject



40
41
42
# File 'lib/ruby-bbcode.rb', line 40

def self.tag_list
  @@tags
end

.to_html(text, escape_html = true, additional_tags = {}, method = :disable, *tags) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ruby-bbcode.rb', line 10

def self.to_html(text, escape_html = true, additional_tags = {}, method = :disable, *tags)
  # We cannot convert to HTML if the BBCode is not valid!
  text = text.clone
  use_tags = @@tags.merge(additional_tags)

  if method == :disable then
    tags.each { |t| use_tags.delete(t) }
  else
    new_use_tags = {}
    tags.each { |t| new_use_tags[t] = use_tags[t] if use_tags.key?(t) }
    use_tags = new_use_tags
  end

  if escape_html
    text.gsub!('<', '&lt;')
    text.gsub!('>', '&gt;')
  end
  text.gsub!("\r\n", "\n")
  text.gsub!("\n", "<br />\n")

  valid = parse(text, use_tags)
  raise valid.join(', ') if valid != true

  bbtree_to_html(@bbtree[:nodes], use_tags)
end