Class: RbbCode::TagNode

Inherits:
Node
  • Object
show all
Defined in:
lib/rbbcode/tree_maker.rb

Instance Attribute Summary collapse

Attributes inherited from Node

#children, #parent

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Node

#<<

Constructor Details

#initialize(parent, tag_name, value = nil) ⇒ TagNode

Returns a new instance of TagNode.



69
70
71
72
73
# File 'lib/rbbcode/tree_maker.rb', line 69

def initialize(parent, tag_name, value = nil)
	super(parent)
	@tag_name = tag_name
	@value = value
end

Instance Attribute Details

#tag_nameObject (readonly)

Returns the value of attribute tag_name.



90
91
92
# File 'lib/rbbcode/tree_maker.rb', line 90

def tag_name
  @tag_name
end

#valueObject (readonly)

Returns the value of attribute value.



92
93
94
# File 'lib/rbbcode/tree_maker.rb', line 92

def value
  @value
end

Class Method Details

.from_opening_bb_code(parent, bb_code) ⇒ Object



58
59
60
61
62
63
64
65
66
67
# File 'lib/rbbcode/tree_maker.rb', line 58

def self.from_opening_bb_code(parent, bb_code)
	if equal_index = bb_code.index('=')
		tag_name = bb_code[1, equal_index - 1]
		value = bb_code[(equal_index + 1)..-2]
	else
		tag_name = bb_code[1..-2]
		value = nil
	end
	new(parent, tag_name, value)
end

Instance Method Details

#inner_bb_codeObject



75
76
77
78
79
# File 'lib/rbbcode/tree_maker.rb', line 75

def inner_bb_code
	@children.inject('') do |output, child|
		output << child.to_bb_code
	end
end

#to_bb_codeObject



81
82
83
84
85
86
87
88
# File 'lib/rbbcode/tree_maker.rb', line 81

def to_bb_code
	if @value.nil?
		output = "[#{@tag_name}]"
	else
		output = "[#{@tag_name}=#{@value}]"
	end
	output << inner_bb_code << "[/#{@tag_name}]"
end