Sha256: 522f9314e0cc70a23a3a6f5d9923ed9139902979ebc36364a013de405c92d0bb

Contents?: true

Size: 929 Bytes

Versions: 1

Compression:

Stored size: 929 Bytes

Contents

require "gtksourceview3"

module Mireru
  module Widget
    class Text
      class << self
        def create(file)
          buffer = buffer_from_file(file)
          view = GtkSource::View.new(buffer)
          view.show_line_numbers = true
          lang = GtkSource::LanguageManager.new.get_language("ruby")
          view.buffer.language = lang
          view.buffer.highlight_syntax = true
          view.buffer.highlight_matching_brackets = true
          view.editable = false
          view.override_font(Pango::FontDescription.new("Monospace"))
        end

        private
        def buffer_from_file(file)
          text = File.open(file).read
          buffer_from_text(text)
        end

        def buffer_from_text(text)
          text.encode!("utf-8") unless text.encoding == "utf-8"
          buffer = GtkSource::Buffer.new
          buffer.text = text
          buffer
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mireru-0.2.1 lib/mireru/widget/text.rb