Module: Coloration::Readers::TextMateThemeReader
- Included in:
- Converters::Textmate2JEditConverter, Converters::Textmate2KatePartConverter, Converters::Textmate2VimConverter
- Defined in:
- lib/coloration/readers/textmate_theme_reader.rb
Defined Under Namespace
Classes: InvalidThemeError
Instance Method Summary collapse
Instance Method Details
#parse_input ⇒ Object
9 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/coloration/readers/textmate_theme_reader.rb', line 9 def parse_input begin tm_theme = Plist.parse_xml(input.gsub("ustring", "string")) rescue raise InvalidThemeError end raise InvalidThemeError if tm_theme.nil? self.name = tm_theme["name"] settings = tm_theme["settings"] self.ui = settings.delete_at(0)["settings"] bg = Color::RGB.from_html(ui["background"][0..6]) ui.each do |key, value| ui[key] = Color::RGBA.from_html(value, bg) end ui["background"] = bg items = {} settings.each do |rule| selectors = rule["scope"] style = rule["settings"] if font_style = style.delete("fontStyle") if font_style.include?("bold") style[:bold] = true end if font_style.include?("italic") style[:italic] = true end if font_style.include?("underline") style[:underline] = true end end style = Style.new(style, bg) unless selectors.blank? || style.blank? selectors.split(",").each do |selector| items[selector.strip] = style end end end self.items = ItemsLookup.new(items) end |