class Mireru::Widget::Text
Public Class Methods
new(file)
click to toggle source
Calls superclass method
# File lib/mireru/widget/text.rb, line 22 def initialize(file) buffer = buffer_from_file(file) super(buffer) self.show_line_numbers = true lang = GtkSource::LanguageManager.new.get_language("ruby") self.buffer.language = lang self.buffer.highlight_syntax = true self.buffer.highlight_matching_brackets = true self.editable = false override_font(Pango::FontDescription.new("Monospace")) end
Private Instance Methods
buffer_from_file(file)
click to toggle source
# File lib/mireru/widget/text.rb, line 35 def buffer_from_file(file) text = File.open(file).read buffer_from_text(text) end
buffer_from_text(text)
click to toggle source
# File lib/mireru/widget/text.rb, line 40 def buffer_from_text(text) to = Encoding::UTF_8 from = guess_encoding(text) if to != from text.encode!(to, from, { :invalid => :replace, :undef => :replace, }) end buffer = GtkSource::Buffer.new buffer.text = text buffer end
guess_encoding(text)
click to toggle source
# File lib/mireru/widget/text.rb, line 56 def guess_encoding(text) return Encoding::UTF_8 if utf8?(text) require "nkf" NKF.guess(text) end
utf8?(text)
click to toggle source
# File lib/mireru/widget/text.rb, line 62 def utf8?(text) text.dup.force_encoding(Encoding::UTF_8).valid_encoding? end