lib/flannel/base_block.rb in flannel-0.2.13 vs lib/flannel/base_block.rb in flannel-0.2.14
- old
+ new
@@ -1,53 +1,59 @@
+# encoding: UTF-8
+require 'flannel/html_formatter'
+
module Flannel
class BaseBlock
attr_reader :type, :id, :text, :parent_id, :attributes
-
+
def initialize block
form = block[0]
-
+
if form == :block
create_from_list block[1]
else
@text = block[1]
@type = :paragraph
end
-
- strip_text
+
+ strip_and_encode_text
end
-
+
def create_from_list list
header = list.shift
@type = header.shift[1]
@id = header.shift[1]
@attributes = {}
-
+
next_item = header.shift
while next_item
case next_item[0]
when :parent_id then
@parent_id = next_item[1]
when :attribute_list then
next_item.shift
next_item.each do |attribute|
@attributes[attribute[0]] = attribute[1]
end
- end
+ end
next_item = header.shift
end
-
+
@text = list.shift
end
-
+
def to_h
html_formatter = Flannel::HtmlFormatter.new
html_formatter.do(@text, @type, @id)
end
-
- def strip_text
+
+ def strip_and_encode_text
+ return unless @text
+ @text.force_encoding("UTF-8")
+
return if @type == :preformatted
return unless @text
-
+
@text = @text.strip
end
end
end
\ No newline at end of file