rum 0.0.1-universal-darwin-10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +3 -0
 - data/README +30 -0
 - data/Rakefile +134 -0
 - data/bin/rum-client +124 -0
 - data/doc/basic.rb +10 -0
 - data/doc/doc.html +602 -0
 - data/doc/example.rb +59 -0
 - data/doc/reference.rb +415 -0
 - data/doc/resources/bg.png +0 -0
 - data/doc/resources/bottom.png +0 -0
 - data/doc/resources/build.rb +235 -0
 - data/doc/resources/doc.haml +167 -0
 - data/doc/resources/emacs-auto-completion.png +0 -0
 - data/doc/resources/flash.png +0 -0
 - data/doc/resources/highlight.css +94 -0
 - data/doc/resources/intro.rb +17 -0
 - data/doc/resources/left.png +0 -0
 - data/doc/resources/logo.png +0 -0
 - data/doc/resources/screen.css +420 -0
 - data/doc/resources/screenshot.png +0 -0
 - data/doc/resources/top.png +0 -0
 - data/ext/mac/keyboard_hook/English.lproj/InfoPlist.strings +0 -0
 - data/ext/mac/keyboard_hook/Event.h +17 -0
 - data/ext/mac/keyboard_hook/Event.m +18 -0
 - data/ext/mac/keyboard_hook/EventTap.h +11 -0
 - data/ext/mac/keyboard_hook/EventTap.m +77 -0
 - data/ext/mac/keyboard_hook/Info.plist +26 -0
 - data/ext/mac/keyboard_hook/KeyboardHook.xcodeproj/TemplateIcon.icns +0 -0
 - data/ext/mac/keyboard_hook/KeyboardHook.xcodeproj/project.pbxproj +323 -0
 - data/ext/mac/keyboard_hook/KeyboardHook_Prefix.pch +7 -0
 - data/ext/mac/keyboard_hook/version.plist +16 -0
 - data/ext/windows/keyboard_hook/extconf.rb +2 -0
 - data/ext/windows/keyboard_hook/keyboard_hook.c +126 -0
 - data/ext/windows/system/autohotkey_stuff.c +255 -0
 - data/ext/windows/system/autohotkey_stuff.h +2 -0
 - data/ext/windows/system/clipboard_watcher.c +58 -0
 - data/ext/windows/system/clipboard_watcher.h +2 -0
 - data/ext/windows/system/extconf.rb +3 -0
 - data/ext/windows/system/input_box.c +239 -0
 - data/ext/windows/system/input_box.h +4 -0
 - data/ext/windows/system/system.c +273 -0
 - data/lib/rum.rb +4 -0
 - data/lib/rum/apps.rb +4 -0
 - data/lib/rum/barrel.rb +157 -0
 - data/lib/rum/barrel/emacs.rb +44 -0
 - data/lib/rum/barrel/emacs_client.rb +74 -0
 - data/lib/rum/core.rb +125 -0
 - data/lib/rum/dsl.rb +109 -0
 - data/lib/rum/gui.rb +93 -0
 - data/lib/rum/help.rb +128 -0
 - data/lib/rum/hotkey_core.rb +479 -0
 - data/lib/rum/mac.rb +18 -0
 - data/lib/rum/mac/app.rb +4 -0
 - data/lib/rum/mac/apps.rb +19 -0
 - data/lib/rum/mac/gui.rb +26 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Info.plist +28 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/MacOS/CocoaDialog +0 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Info.plist +28 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/InfoPlist.strings +0 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/classes.nib +51 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/info.nib +16 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/keyedobjects.nib +0 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/classes.nib +7 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/info.nib +21 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/info.nib.orig +21 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/objects.nib +0 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/objects.nib.orig +0 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/classes.nib +27 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/info.nib +16 -0
 - data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/keyedobjects.nib +0 -0
 - data/lib/rum/mac/gui/Growl.framework/Growl +0 -0
 - data/lib/rum/mac/gui/Growl.framework/Versions/A/Growl +0 -0
 - data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/Growl.h +6 -0
 - data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h +780 -0
 - data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h +575 -0
 - data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlDefines.h +348 -0
 - data/lib/rum/mac/gui/Growl.framework/Versions/A/Resources/Info.plist +24 -0
 - data/lib/rum/mac/gui/growl.rb +54 -0
 - data/lib/rum/mac/irb/completion.rb +207 -0
 - data/lib/rum/mac/keyboard_hook.rb +73 -0
 - data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/KeyboardHook +0 -0
 - data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/KeyboardHook +0 -0
 - data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
 - data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/Resources/Info.plist +22 -0
 - data/lib/rum/mac/layouts.rb +146 -0
 - data/lib/rum/mac/system.rb +45 -0
 - data/lib/rum/remote.rb +48 -0
 - data/lib/rum/server.rb +92 -0
 - data/lib/rum/windows.rb +23 -0
 - data/lib/rum/windows/app.rb +72 -0
 - data/lib/rum/windows/apps.rb +25 -0
 - data/lib/rum/windows/gui.rb +116 -0
 - data/lib/rum/windows/keyboard.rb +80 -0
 - data/lib/rum/windows/keyboard_hook.rb +20 -0
 - data/lib/rum/windows/layouts.rb +232 -0
 - data/lib/rum/windows/system.rb +310 -0
 - data/lib/rum/windows/system_foreign_functions.rb +129 -0
 - data/rum.gemspec +14 -0
 - metadata +166 -0
 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -0,0 +1,235 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'haml'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class Doc
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Pygmentize
         
     | 
| 
      
 5 
     | 
    
         
            +
                Bin = if RUBY_PLATFORM =~ /mswin|mingw/ and ENV['USER'] == 'nonsequitur'
         
     | 
| 
      
 6 
     | 
    
         
            +
                        'C:/Programme/Python26/Scripts/pygmentize.exe'
         
     | 
| 
      
 7 
     | 
    
         
            +
                      else
         
     | 
| 
      
 8 
     | 
    
         
            +
                        'pygmentize'
         
     | 
| 
      
 9 
     | 
    
         
            +
                      end
         
     | 
| 
      
 10 
     | 
    
         
            +
                Cmd = "#{Bin} -O encoding=utf-8 -l ruby -f html"
         
     | 
| 
      
 11 
     | 
    
         
            +
                
         
     | 
| 
      
 12 
     | 
    
         
            +
                def self.file file
         
     | 
| 
      
 13 
     | 
    
         
            +
                  fix_pygments_output(`#{Cmd} #{file}`)
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def self.string str
         
     | 
| 
      
 17 
     | 
    
         
            +
                  IO.popen(Cmd, 'w+') do |pygmentize|
         
     | 
| 
      
 18 
     | 
    
         
            +
                    pygmentize.write str
         
     | 
| 
      
 19 
     | 
    
         
            +
                    pygmentize.close_write
         
     | 
| 
      
 20 
     | 
    
         
            +
                    fix_pygments_output(pygmentize.read)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                def self.fix_pygments_output str
         
     | 
| 
      
 25 
     | 
    
         
            +
                  # Bug in Pygments 1.3.1: 'type' is no Ruby builtin
         
     | 
| 
      
 26 
     | 
    
         
            +
                  str.gsub('<span class="nb">type</span>', 'type')\
         
     | 
| 
      
 27 
     | 
    
         
            +
                     .gsub('<span class="nb">require</span>', 'require')
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                class Snippets
         
     | 
| 
      
 31 
     | 
    
         
            +
                  def initialize
         
     | 
| 
      
 32 
     | 
    
         
            +
                    @snippets = []
         
     | 
| 
      
 33 
     | 
    
         
            +
                    @highlighted = []
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  def add str
         
     | 
| 
      
 37 
     | 
    
         
            +
                    @snippets << str
         
     | 
| 
      
 38 
     | 
    
         
            +
                    result = ''
         
     | 
| 
      
 39 
     | 
    
         
            +
                    @highlighted << result
         
     | 
| 
      
 40 
     | 
    
         
            +
                    result
         
     | 
| 
      
 41 
     | 
    
         
            +
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  def pygmentize!
         
     | 
| 
      
 44 
     | 
    
         
            +
                    highlighted = Pygmentize.string(@snippets.join("\n")).lines.to_a
         
     | 
| 
      
 45 
     | 
    
         
            +
                    highlighted.first.sub! /<div.*?pre>/, ''
         
     | 
| 
      
 46 
     | 
    
         
            +
                    @snippets.each_with_index do |snippet, i|
         
     | 
| 
      
 47 
     | 
    
         
            +
                      length = snippet.lines.to_a.length
         
     | 
| 
      
 48 
     | 
    
         
            +
                      str  = '<pre class="highlight">'
         
     | 
| 
      
 49 
     | 
    
         
            +
                      str << highlighted.slice!(0, length).join.chomp
         
     | 
| 
      
 50 
     | 
    
         
            +
                      str << '</pre>'
         
     | 
| 
      
 51 
     | 
    
         
            +
                      @highlighted[i].replace str
         
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
              end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
              class Code
         
     | 
| 
      
 58 
     | 
    
         
            +
                def initialize(file)
         
     | 
| 
      
 59 
     | 
    
         
            +
                  @lines = File.read(file).split /\n/
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                def render
         
     | 
| 
      
 63 
     | 
    
         
            +
                  parse
         
     | 
| 
      
 64 
     | 
    
         
            +
                  to_html
         
     | 
| 
      
 65 
     | 
    
         
            +
                end
         
     | 
| 
      
 66 
     | 
    
         
            +
                
         
     | 
| 
      
 67 
     | 
    
         
            +
                def parse
         
     | 
| 
      
 68 
     | 
    
         
            +
                  @result = []
         
     | 
| 
      
 69 
     | 
    
         
            +
                  @last_type = nil
         
     | 
| 
      
 70 
     | 
    
         
            +
                  @lines.each { |line| compose_doc(*classify_and_extract(line)) }
         
     | 
| 
      
 71 
     | 
    
         
            +
                  @result
         
     | 
| 
      
 72 
     | 
    
         
            +
                end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                def classify_and_extract line
         
     | 
| 
      
 75 
     | 
    
         
            +
                  case line
         
     | 
| 
      
 76 
     | 
    
         
            +
                  when /^#?\s*$/      then [:empty,   nil]
         
     | 
| 
      
 77 
     | 
    
         
            +
                  when /^####\s+(.*)/ then [:chapter, $1.rstrip]
         
     | 
| 
      
 78 
     | 
    
         
            +
                  when /^###\s+(.*)/  then [:h2,      $1.rstrip]
         
     | 
| 
      
 79 
     | 
    
         
            +
                  when /^##\s+(.*)/   then [:h3,      $1.rstrip]
         
     | 
| 
      
 80 
     | 
    
         
            +
                  when /^#\s*(.*)/    then [:text,    $1.rstrip]
         
     | 
| 
      
 81 
     | 
    
         
            +
                  else [:code, line]
         
     | 
| 
      
 82 
     | 
    
         
            +
                  end
         
     | 
| 
      
 83 
     | 
    
         
            +
                end
         
     | 
| 
      
 84 
     | 
    
         
            +
                
         
     | 
| 
      
 85 
     | 
    
         
            +
                EmptyAllowed = { code: true, text: true }
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                def compose_doc type, line
         
     | 
| 
      
 88 
     | 
    
         
            +
                  if type == :empty
         
     | 
| 
      
 89 
     | 
    
         
            +
                    @result.last << '' if EmptyAllowed[@last_type]
         
     | 
| 
      
 90 
     | 
    
         
            +
                  elsif type == @last_type
         
     | 
| 
      
 91 
     | 
    
         
            +
                    @result.last << line
         
     | 
| 
      
 92 
     | 
    
         
            +
                  else
         
     | 
| 
      
 93 
     | 
    
         
            +
                    @result << [type, line]
         
     | 
| 
      
 94 
     | 
    
         
            +
                    @last_type = type
         
     | 
| 
      
 95 
     | 
    
         
            +
                  end
         
     | 
| 
      
 96 
     | 
    
         
            +
                end
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
                class TableOfContents
         
     | 
| 
      
 99 
     | 
    
         
            +
                  Heading = Struct.new(:text, :anchor_name)
         
     | 
| 
      
 100 
     | 
    
         
            +
                  
         
     | 
| 
      
 101 
     | 
    
         
            +
                  def initialize
         
     | 
| 
      
 102 
     | 
    
         
            +
                    @headings = []
         
     | 
| 
      
 103 
     | 
    
         
            +
                  end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
                  def add_heading heading
         
     | 
| 
      
 106 
     | 
    
         
            +
                    chapter_number = @headings.count + 1
         
     | 
| 
      
 107 
     | 
    
         
            +
                    @headings << Heading.new(heading, "chapter_#{chapter_number}")
         
     | 
| 
      
 108 
     | 
    
         
            +
                  end
         
     | 
| 
      
 109 
     | 
    
         
            +
                
         
     | 
| 
      
 110 
     | 
    
         
            +
                  def heading_html
         
     | 
| 
      
 111 
     | 
    
         
            +
                    heading = @headings.last
         
     | 
| 
      
 112 
     | 
    
         
            +
                    "<a name=\"#{heading.anchor_name}\"><h1>#{heading.text}</h1></a>"
         
     | 
| 
      
 113 
     | 
    
         
            +
                  end
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                  def heading_list_items
         
     | 
| 
      
 116 
     | 
    
         
            +
                    @headings.map do |heading|
         
     | 
| 
      
 117 
     | 
    
         
            +
                      "<li><a href=\"##{heading.anchor_name}\">#{heading.text}</a></li>"
         
     | 
| 
      
 118 
     | 
    
         
            +
                    end.join
         
     | 
| 
      
 119 
     | 
    
         
            +
                  end
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                  def to_html
         
     | 
| 
      
 122 
     | 
    
         
            +
                    html  = "<div id=\"table_of_contents\"><h1>Chapters</h1>"
         
     | 
| 
      
 123 
     | 
    
         
            +
                    html << "<ul>"
         
     | 
| 
      
 124 
     | 
    
         
            +
                    html << heading_list_items
         
     | 
| 
      
 125 
     | 
    
         
            +
                    html << "</ul>"
         
     | 
| 
      
 126 
     | 
    
         
            +
                    html << "</div>"
         
     | 
| 
      
 127 
     | 
    
         
            +
                  end
         
     | 
| 
      
 128 
     | 
    
         
            +
                end
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
                ChapterEnd = "</div>\n"
         
     | 
| 
      
 131 
     | 
    
         
            +
                ChapterBeginning = "<div class=\"chapter\">\n"
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
                def to_html
         
     | 
| 
      
 134 
     | 
    
         
            +
                  snippets = Pygmentize::Snippets.new
         
     | 
| 
      
 135 
     | 
    
         
            +
                  table_of_contents = TableOfContents.new
         
     | 
| 
      
 136 
     | 
    
         
            +
                  
         
     | 
| 
      
 137 
     | 
    
         
            +
                  sections = @result.map do |type, *lines|
         
     | 
| 
      
 138 
     | 
    
         
            +
                    case type
         
     | 
| 
      
 139 
     | 
    
         
            +
                    when :chapter
         
     | 
| 
      
 140 
     | 
    
         
            +
                      table_of_contents.add_heading lines.first
         
     | 
| 
      
 141 
     | 
    
         
            +
                      chapter  = ChapterEnd.dup
         
     | 
| 
      
 142 
     | 
    
         
            +
                      chapter << ChapterBeginning
         
     | 
| 
      
 143 
     | 
    
         
            +
                      chapter << table_of_contents.heading_html << "\n"
         
     | 
| 
      
 144 
     | 
    
         
            +
                    when :h2
         
     | 
| 
      
 145 
     | 
    
         
            +
                      "<h2>#{lines.first}</h2>"
         
     | 
| 
      
 146 
     | 
    
         
            +
                    when :h3
         
     | 
| 
      
 147 
     | 
    
         
            +
                      "<h3>#{lines.first}</h3>"
         
     | 
| 
      
 148 
     | 
    
         
            +
                    when :text
         
     | 
| 
      
 149 
     | 
    
         
            +
                      "<p>#{join_text(lines)}</p>"
         
     | 
| 
      
 150 
     | 
    
         
            +
                    when :code
         
     | 
| 
      
 151 
     | 
    
         
            +
                      snippets.add(lines.join("\n").rstrip)
         
     | 
| 
      
 152 
     | 
    
         
            +
                    end
         
     | 
| 
      
 153 
     | 
    
         
            +
                  end
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
                  sections.first.sub! ChapterEnd, ''
         
     | 
| 
      
 156 
     | 
    
         
            +
                  sections << ChapterEnd
         
     | 
| 
      
 157 
     | 
    
         
            +
                  sections.unshift table_of_contents.to_html
         
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
      
 159 
     | 
    
         
            +
                  snippets.pygmentize!
         
     | 
| 
      
 160 
     | 
    
         
            +
                  sections.join("\n")
         
     | 
| 
      
 161 
     | 
    
         
            +
                end
         
     | 
| 
      
 162 
     | 
    
         
            +
             
     | 
| 
      
 163 
     | 
    
         
            +
                def join_text(lines)
         
     | 
| 
      
 164 
     | 
    
         
            +
                  paragraphs = []
         
     | 
| 
      
 165 
     | 
    
         
            +
                  paragraphs << lines.first.dup
         
     | 
| 
      
 166 
     | 
    
         
            +
                  lines.each_cons(2) do |a, b|
         
     | 
| 
      
 167 
     | 
    
         
            +
                    if (a.empty? or b.empty? or
         
     | 
| 
      
 168 
     | 
    
         
            +
                        a.chars.to_a.last =~ /[.:!?)>]/ or a.length < 8)
         
     | 
| 
      
 169 
     | 
    
         
            +
                      paragraphs << b
         
     | 
| 
      
 170 
     | 
    
         
            +
                    else
         
     | 
| 
      
 171 
     | 
    
         
            +
                      paragraphs.last << ' ' <<  b
         
     | 
| 
      
 172 
     | 
    
         
            +
                    end
         
     | 
| 
      
 173 
     | 
    
         
            +
                  end
         
     | 
| 
      
 174 
     | 
    
         
            +
                  paragraphs.pop while paragraphs.last.empty?
         
     | 
| 
      
 175 
     | 
    
         
            +
                  paragraphs.join('<br />')
         
     | 
| 
      
 176 
     | 
    
         
            +
                end
         
     | 
| 
      
 177 
     | 
    
         
            +
              end
         
     | 
| 
      
 178 
     | 
    
         
            +
             
     | 
| 
      
 179 
     | 
    
         
            +
              def initialize(index, intro, basic, example, reference, args)
         
     | 
| 
      
 180 
     | 
    
         
            +
                @dir = args[:dir] || ''
         
     | 
| 
      
 181 
     | 
    
         
            +
                @output    = File.join(@dir, args[:output])
         
     | 
| 
      
 182 
     | 
    
         
            +
                @index     = File.join(@dir, index)
         
     | 
| 
      
 183 
     | 
    
         
            +
                @intro     = File.join(@dir, intro)
         
     | 
| 
      
 184 
     | 
    
         
            +
                @basic     = File.join(@dir, basic)
         
     | 
| 
      
 185 
     | 
    
         
            +
                @example   = File.join(@dir, example)
         
     | 
| 
      
 186 
     | 
    
         
            +
                @reference = File.join(@dir, reference)
         
     | 
| 
      
 187 
     | 
    
         
            +
              end
         
     | 
| 
      
 188 
     | 
    
         
            +
             
     | 
| 
      
 189 
     | 
    
         
            +
              def current_version
         
     | 
| 
      
 190 
     | 
    
         
            +
                gemspec = eval(IO.read('rum.gemspec'))
         
     | 
| 
      
 191 
     | 
    
         
            +
                gemspec.version
         
     | 
| 
      
 192 
     | 
    
         
            +
              end
         
     | 
| 
      
 193 
     | 
    
         
            +
             
     | 
| 
      
 194 
     | 
    
         
            +
              def intro
         
     | 
| 
      
 195 
     | 
    
         
            +
                Pygmentize.file @intro
         
     | 
| 
      
 196 
     | 
    
         
            +
              end
         
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
      
 198 
     | 
    
         
            +
              def inf_ruby_setup
         
     | 
| 
      
 199 
     | 
    
         
            +
                <<EOF
         
     | 
| 
      
 200 
     | 
    
         
            +
            (add-to-list 'inf-ruby-implementations
         
     | 
| 
      
 201 
     | 
    
         
            +
              '("rum-client" . "rum-client -i --inf-ruby-mode")
         
     | 
| 
      
 202 
     | 
    
         
            +
            (defun rum-client ()
         
     | 
| 
      
 203 
     | 
    
         
            +
              (interactive)
         
     | 
| 
      
 204 
     | 
    
         
            +
              (inf-ruby "rum-client")))
         
     | 
| 
      
 205 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 206 
     | 
    
         
            +
              end
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
              def basic
         
     | 
| 
      
 209 
     | 
    
         
            +
                Pygmentize.file(@basic)
         
     | 
| 
      
 210 
     | 
    
         
            +
              end
         
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
      
 212 
     | 
    
         
            +
              def example
         
     | 
| 
      
 213 
     | 
    
         
            +
                Pygmentize.file @example
         
     | 
| 
      
 214 
     | 
    
         
            +
              end
         
     | 
| 
      
 215 
     | 
    
         
            +
             
     | 
| 
      
 216 
     | 
    
         
            +
              def reference
         
     | 
| 
      
 217 
     | 
    
         
            +
                Doc::Code.new(@reference).render
         
     | 
| 
      
 218 
     | 
    
         
            +
              end
         
     | 
| 
      
 219 
     | 
    
         
            +
             
     | 
| 
      
 220 
     | 
    
         
            +
              def render
         
     | 
| 
      
 221 
     | 
    
         
            +
                doc = File.read(@index)
         
     | 
| 
      
 222 
     | 
    
         
            +
                # Ugly is needed for Pygments-formatted code
         
     | 
| 
      
 223 
     | 
    
         
            +
                haml = Haml::Engine.new(doc, ugly: true)
         
     | 
| 
      
 224 
     | 
    
         
            +
                @doc = haml.render(self)
         
     | 
| 
      
 225 
     | 
    
         
            +
              end
         
     | 
| 
      
 226 
     | 
    
         
            +
             
     | 
| 
      
 227 
     | 
    
         
            +
              def save
         
     | 
| 
      
 228 
     | 
    
         
            +
                File.open(@output, 'w') { |f| f.write @doc }
         
     | 
| 
      
 229 
     | 
    
         
            +
              end
         
     | 
| 
      
 230 
     | 
    
         
            +
             
     | 
| 
      
 231 
     | 
    
         
            +
              def build
         
     | 
| 
      
 232 
     | 
    
         
            +
                render
         
     | 
| 
      
 233 
     | 
    
         
            +
                save
         
     | 
| 
      
 234 
     | 
    
         
            +
              end
         
     | 
| 
      
 235 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,167 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            %html(xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en")
         
     | 
| 
      
 2 
     | 
    
         
            +
              %head
         
     | 
| 
      
 3 
     | 
    
         
            +
                %title Rum
         
     | 
| 
      
 4 
     | 
    
         
            +
                %meta(http-equiv="Content-Type" content="text/html;charset=utf-8")
         
     | 
| 
      
 5 
     | 
    
         
            +
                %link(rel="stylesheet" href="resources/screen.css" type="text/css" media="screen")
         
     | 
| 
      
 6 
     | 
    
         
            +
                %link(rel="stylesheet" href="resources/highlight.css" type="text/css" media="screen")
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              %body
         
     | 
| 
      
 9 
     | 
    
         
            +
                %img{id: "logo", src: "resources/logo.png"}
         
     | 
| 
      
 10 
     | 
    
         
            +
                #nav
         
     | 
| 
      
 11 
     | 
    
         
            +
                  %ul
         
     | 
| 
      
 12 
     | 
    
         
            +
                    %li
         
     | 
| 
      
 13 
     | 
    
         
            +
                      %a{href: "#"} Intro
         
     | 
| 
      
 14 
     | 
    
         
            +
                    %li
         
     | 
| 
      
 15 
     | 
    
         
            +
                      %a{href: "#installation"} Installation
         
     | 
| 
      
 16 
     | 
    
         
            +
                    %li
         
     | 
| 
      
 17 
     | 
    
         
            +
                      %a{href: "#coding"} Coding
         
     | 
| 
      
 18 
     | 
    
         
            +
                    %li
         
     | 
| 
      
 19 
     | 
    
         
            +
                      %a{href: "#example"} Example
         
     | 
| 
      
 20 
     | 
    
         
            +
                    %li
         
     | 
| 
      
 21 
     | 
    
         
            +
                      %a{href: "#reference"} Reference
         
     | 
| 
      
 22 
     | 
    
         
            +
                    %li
         
     | 
| 
      
 23 
     | 
    
         
            +
                      %a{href: "#development"} Development
         
     | 
| 
      
 24 
     | 
    
         
            +
                #wrapper
         
     | 
| 
      
 25 
     | 
    
         
            +
                  #intro Rum is a cross-platform Hotkey and Macro utility, built in Ruby.<br />Not yet running on Linux, it’s progressing steadily on the Mac (MacRuby) and is fully supported on Windows.
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  %img{src: "resources/screenshot.png"}
         
     | 
| 
      
 28 
     | 
    
         
            +
                  #screenshot-sub
         
     | 
| 
      
 29 
     | 
    
         
            +
                  #intro-code
         
     | 
| 
      
 30 
     | 
    
         
            +
                    #top
         
     | 
| 
      
 31 
     | 
    
         
            +
                    #content
         
     | 
| 
      
 32 
     | 
    
         
            +
                      %img{id: "flash", src: "resources/flash.png"}
         
     | 
| 
      
 33 
     | 
    
         
            +
                      #sshot-sub This snippet powers the above screenshot.
         
     | 
| 
      
 34 
     | 
    
         
            +
                      -# #sshot-sub The above screenshot is powered by this snippet.
         
     | 
| 
      
 35 
     | 
    
         
            +
                      = intro
         
     | 
| 
      
 36 
     | 
    
         
            +
                    #bottom
         
     | 
| 
      
 37 
     | 
    
         
            +
                    #intro-code-sub Rum configuration files are regular Ruby scripts, like the above.<br /> Running Rum is as easy as calling <span class="code">ruby my_rum_config_file.rb</span> from the command line.<br />(Or <span class="code">macruby -rubygems my_rum_config_file.rb</span> on the Mac.)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  #guide
         
     | 
| 
      
 39 
     | 
    
         
            +
                    #installation
         
     | 
| 
      
 40 
     | 
    
         
            +
                      %a{name: "installation"}
         
     | 
| 
      
 41 
     | 
    
         
            +
                        %h1 Installation
         
     | 
| 
      
 42 
     | 
    
         
            +
                      #gem
         
     | 
| 
      
 43 
     | 
    
         
            +
                        #regulargem
         
     | 
| 
      
 44 
     | 
    
         
            +
                          %span{class: "code"} gem install rum
         
     | 
| 
      
 45 
     | 
    
         
            +
                        #macgem
         
     | 
| 
      
 46 
     | 
    
         
            +
                          %span{class: "code"} macgem install rum
         
     | 
| 
      
 47 
     | 
    
         
            +
                          %div
         
     | 
| 
      
 48 
     | 
    
         
            +
                            -# %span{class: "onthemac"} On the Mac
         
     | 
| 
      
 49 
     | 
    
         
            +
                        .clear
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                      %p{id: "current_version"}
         
     | 
| 
      
 52 
     | 
    
         
            +
                        Current version:
         
     | 
| 
      
 53 
     | 
    
         
            +
                        = current_version
         
     | 
| 
      
 54 
     | 
    
         
            +
                        %span{id: "changelog"} (<a href="https://github.com/nonsequitur/rum/blob/master/CHANGELOG">Changelog</a>)
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                      #platforms
         
     | 
| 
      
 57 
     | 
    
         
            +
                        %h3 Supported platforms
         
     | 
| 
      
 58 
     | 
    
         
            +
                        %ul
         
     | 
| 
      
 59 
     | 
    
         
            +
                          %li Mac OS X – MacRuby >=0.10
         
     | 
| 
      
 60 
     | 
    
         
            +
                          %li
         
     | 
| 
      
 61 
     | 
    
         
            +
                            32-bit Windows XP/Vista/7 – Ruby >=1.9.1p378.<br />
         
     | 
| 
      
 62 
     | 
    
         
            +
                      #growl
         
     | 
| 
      
 63 
     | 
    
         
            +
                        %h2 Recommended: Growl
         
     | 
| 
      
 64 
     | 
    
         
            +
                        %ul
         
     | 
| 
      
 65 
     | 
    
         
            +
                          %li Get Growl: <a href="http://growl.info/">Mac</a>, <a href="http://www.growlforwindows.com/gfw/">Windows</a>
         
     | 
| 
      
 66 
     | 
    
         
            +
                          %li To use Growl in Rum: Add <span class="code">Gui.use Gui::Growl</span> to your Rum config.
         
     | 
| 
      
 67 
     | 
    
         
            +
                        #growl-explanation
         
     | 
| 
      
 68 
     | 
    
         
            +
                          %h3 Why Growl?
         
     | 
| 
      
 69 
     | 
    
         
            +
                          Notification bubbles are a convenient alternative to focus-stealing message boxes.
         
     | 
| 
      
 70 
     | 
    
         
            +
                          Some higher level Rum methods only work smoothly with Growl-style notifications.
         
     | 
| 
      
 71 
     | 
    
         
            +
                          Currently, Growl is the only notification system supported by Rum.
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                    #coding
         
     | 
| 
      
 74 
     | 
    
         
            +
                      %a{name: "coding"}
         
     | 
| 
      
 75 
     | 
    
         
            +
                        %h1 Coding in Rum
         
     | 
| 
      
 76 
     | 
    
         
            +
                      Rum encourages an interactive approach to coding and a fast code-and-feedback cycle.
         
     | 
| 
      
 77 
     | 
    
         
            +
                      %h2 Core techniques
         
     | 
| 
      
 78 
     | 
    
         
            +
                      %ul{id: "core-techniques"}
         
     | 
| 
      
 79 
     | 
    
         
            +
                        %li
         
     | 
| 
      
 80 
     | 
    
         
            +
                          %h3 rum-client REPL
         
     | 
| 
      
 81 
     | 
    
         
            +
                          %p Add <span class="code">Rum::Server.start</span> to your Rum config.
         
     | 
| 
      
 82 
     | 
    
         
            +
                          %p Call <span class="code">rum-client -i</span> from the command line to start an IRB-session inside a running Rum instance. IRB Completion is fully supported.
         
     | 
| 
      
 83 
     | 
    
         
            +
                          %p Nearly all snippets in this guide can be evaluated interactively.
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                          %p Set the environment variable <span class="code">RUM_PORT</span> to change the port on which client and server connect.
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                          %p
         
     | 
| 
      
 88 
     | 
    
         
            +
                            %h3 rum-client in emacs:
         
     | 
| 
      
 89 
     | 
    
         
            +
                            %ul
         
     | 
| 
      
 90 
     | 
    
         
            +
                              %li Get the latest Inf-Ruby via <a href="http://marmalade-repo.org/packages/inf-ruby">ELPA</a>
         
     | 
| 
      
 91 
     | 
    
         
            +
                              %li
         
     | 
| 
      
 92 
     | 
    
         
            +
                                Add the following to your Emacs config:
         
     | 
| 
      
 93 
     | 
    
         
            +
                                %pre{id: "inf_ruby_setup"}= inf_ruby_setup
         
     | 
| 
      
 94 
     | 
    
         
            +
                              %li
         
     | 
| 
      
 95 
     | 
    
         
            +
                                Run <span class="code">M-x rum-client</span>
         
     | 
| 
      
 96 
     | 
    
         
            +
                            #auto-completion
         
     | 
| 
      
 97 
     | 
    
         
            +
                              %h4 Auto-completion
         
     | 
| 
      
 98 
     | 
    
         
            +
                              %img{id: "auto-completion",
         
     | 
| 
      
 99 
     | 
    
         
            +
                                   src: "resources/emacs-auto-completion.png"}
         
     | 
| 
      
 100 
     | 
    
         
            +
                              -# %p The Inf-Ruby backend for Company-Mode offers auto-completion for Inf-Ruby buffers.
         
     | 
| 
      
 101 
     | 
    
         
            +
                              %p
         
     | 
| 
      
 102 
     | 
    
         
            +
                                Company-Mode features auto-completion for IRB sessions.<br />
         
     | 
| 
      
 103 
     | 
    
         
            +
                                <a href="http://www.emacswiki.org/emacs/InfRubyCompany">See here for installation instructions</a>.
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
                        %li
         
     | 
| 
      
 106 
     | 
    
         
            +
                          %%h3 Rum.restart
         
     | 
| 
      
 107 
     | 
    
         
            +
                          Restarts Rum.
         
     | 
| 
      
 108 
     | 
    
         
            +
                          Bind it to a key, like <span class="code">'shift f1'.do { Rum.restart }</span>
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
                      Run Rum with this basic, REPL-enabled setup to get started:
         
     | 
| 
      
 111 
     | 
    
         
            +
                      #basic= basic
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                      #example
         
     | 
| 
      
 114 
     | 
    
         
            +
                        %a{name: "example"}
         
     | 
| 
      
 115 
     | 
    
         
            +
                          %h1 Extended Example
         
     | 
| 
      
 116 
     | 
    
         
            +
                        = example
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                      -# #example-configs
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                      %a{name: "reference"}
         
     | 
| 
      
 122 
     | 
    
         
            +
                        %h1 Reference
         
     | 
| 
      
 123 
     | 
    
         
            +
                      %p
         
     | 
| 
      
 124 
     | 
    
         
            +
                        This section is also available as a Ruby source file and can be
         
     | 
| 
      
 125 
     | 
    
         
            +
                        conveniently viewed in a text editor.<br />
         
     | 
| 
      
 126 
     | 
    
         
            +
                        Call <span class="code">Rum.reference</span> or manually open
         
     | 
| 
      
 127 
     | 
    
         
            +
                        <span class="code">rum_dir/doc/reference.rb</span>.
         
     | 
| 
      
 128 
     | 
    
         
            +
                  #reference_wrapper= reference
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
                  #development
         
     | 
| 
      
 131 
     | 
    
         
            +
                    %a{name: "development"}
         
     | 
| 
      
 132 
     | 
    
         
            +
                      %h1 Development
         
     | 
| 
      
 133 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 134 
     | 
    
         
            +
                      Patches and suggestions are most appreciated.
         
     | 
| 
      
 135 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 136 
     | 
    
         
            +
                      There's a <a href="https://github.com/nonsequitur/rum-dev/blob/master/rum-development.org">low-ceremony
         
     | 
| 
      
 137 
     | 
    
         
            +
                      to-do list</a> to coordinate the development
         
     | 
| 
      
 138 
     | 
    
         
            +
                      of larger-scale features.<br />
         
     | 
| 
      
 139 
     | 
    
         
            +
                      -# Please check this out if you're interested in contributing.
         
     | 
| 
      
 140 
     | 
    
         
            +
                      Feel free to have a look if you're interested in contributing.
         
     | 
| 
      
 141 
     | 
    
         
            +
                      -# Instructions on how to contribute can be found inside the list.
         
     | 
| 
      
 142 
     | 
    
         
            +
                    %h2 Building
         
     | 
| 
      
 143 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 144 
     | 
    
         
            +
                      %span{class: "code"} rake build
         
     | 
| 
      
 145 
     | 
    
         
            +
                      builds the extension and the document.
         
     | 
| 
      
 146 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 147 
     | 
    
         
            +
                      %span{class: "code"} rake ext
         
     | 
| 
      
 148 
     | 
    
         
            +
                      builds just the extension.
         
     | 
| 
      
 149 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 150 
     | 
    
         
            +
                      %span{class: "code"} rake doc
         
     | 
| 
      
 151 
     | 
    
         
            +
                      builds this document. Requires Pygments.
         
     | 
| 
      
 152 
     | 
    
         
            +
                    %h3 Mac specifics:
         
     | 
| 
      
 153 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 154 
     | 
    
         
            +
                      XCode required.
         
     | 
| 
      
 155 
     | 
    
         
            +
                    %h3 Windows specifics:
         
     | 
| 
      
 156 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 157 
     | 
    
         
            +
                      Visual Studio required. (Out-of-the-box MinGW support coming soon.)
         
     | 
| 
      
 158 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 159 
     | 
    
         
            +
                      You need to setup the Visual Studio build environment before running the rake commands.<br />Call <span class="code">"%programfiles%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86</span> from your Windows terminal.
         
     | 
| 
      
 160 
     | 
    
         
            +
                    %p
         
     | 
| 
      
 161 
     | 
    
         
            +
                      You might have to delete the following lines from <span class="code">ruby_dir/include/ruby-1.9.x/i386-mswin32/ruby/config.h</span> to work around a compiler error:
         
     | 
| 
      
 162 
     | 
    
         
            +
                      %pre
         
     | 
| 
      
 163 
     | 
    
         
            +
                        \#if _MSC_VER != 1200
         
     | 
| 
      
 164 
     | 
    
         
            +
                        \#error MSC version unmatch: _MSC_VER: 1200 is expected.
         
     | 
| 
      
 165 
     | 
    
         
            +
                        \#endif
         
     | 
| 
      
 166 
     | 
    
         
            +
                    #footer
         
     | 
| 
      
 167 
     | 
    
         
            +
                  
         
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         @@ -0,0 +1,94 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            .chapter .highlight { background-color: #F4F4F4; }
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            /* .chapter .highlight { color: #F7F7F7; background-color: #27262F; } */
         
     | 
| 
      
 5 
     | 
    
         
            +
            /* .chapter .c1 { color: #8b8b8b; font-style: italic } /\* Comment.Single *\/ */
         
     | 
| 
      
 6 
     | 
    
         
            +
            /* .chapter .nb { color: #c13a3a } /\* Name.Builtin *\/ */
         
     | 
| 
      
 7 
     | 
    
         
            +
            /* .chapter .k { color: #c13a3a; font-weight: bold } /\* Keyword *\/ */
         
     | 
| 
      
 8 
     | 
    
         
            +
            /* .chapter .kp { color: #c13a3a } /\* Keyword.Pseudo *\/ */
         
     | 
| 
      
 9 
     | 
    
         
            +
            /* .chapter .no { color: #FF4530 } /\* Name.Constant *\/ */
         
     | 
| 
      
 10 
     | 
    
         
            +
            /* /\* .no { color: #664312 } /\\* Name.Constant *\\/ *\/ */
         
     | 
| 
      
 11 
     | 
    
         
            +
            /* .chapter .s1 { color: #13E618 } /\* Literal.String.Single *\/ */
         
     | 
| 
      
 12 
     | 
    
         
            +
            /* /\* .s1 { color: #68b800 } /\\* Literal.String.Single *\\/ *\/ */
         
     | 
| 
      
 13 
     | 
    
         
            +
            /* /\* #content .s1 { color: #68b800 } *\/ */
         
     | 
| 
      
 14 
     | 
    
         
            +
            /* .chapter .ss { color: #FF9E21 } /\* Literal.String.Symbol *\/ */
         
     | 
| 
      
 15 
     | 
    
         
            +
            /* .chapter .sr { color: #BB6688 } /\* Literal.String.Regex *\/ */
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            .c1 { color: #717171; font-style: italic } /* Comment.Single */
         
     | 
| 
      
 20 
     | 
    
         
            +
            .nb { color: #c13a3a } /* Name.Builtin */
         
     | 
| 
      
 21 
     | 
    
         
            +
            .k { color: #c13a3a; font-weight: bold } /* Keyword */
         
     | 
| 
      
 22 
     | 
    
         
            +
            .kp { color: #c13a3a } /* Keyword.Pseudo */
         
     | 
| 
      
 23 
     | 
    
         
            +
            /* .no { color: #661A12 } /\* Name.Constant */
         
     | 
| 
      
 24 
     | 
    
         
            +
            .no { color: #B42313 } /* Name.Constant */
         
     | 
| 
      
 25 
     | 
    
         
            +
            /* .no { color: ##FF3300 } /\* Name.Constant *\/ */
         
     | 
| 
      
 26 
     | 
    
         
            +
            /* .no { color: #664312 } /\* Name.Constant *\/ */
         
     | 
| 
      
 27 
     | 
    
         
            +
            /* .s1 { color: #58920e } /\* Literal.String.Single *\/ */
         
     | 
| 
      
 28 
     | 
    
         
            +
            .s1 { color: #39BF06 } /* Literal.String.Single */
         
     | 
| 
      
 29 
     | 
    
         
            +
            .s1 { color: #34AD06 } /* Literal.String.Single */39BF06
         
     | 
| 
      
 30 
     | 
    
         
            +
            /* .s1 { color: #68b800 } /\* Literal.String.Single *\/ */
         
     | 
| 
      
 31 
     | 
    
         
            +
            /* #content .s1 { color: #68b800 } */
         
     | 
| 
      
 32 
     | 
    
         
            +
            .ss { color: #58920e } /* Literal.String.Symbol */
         
     | 
| 
      
 33 
     | 
    
         
            +
            .sr { color: #BB6688 } /* Literal.String.Regex */
         
     | 
| 
      
 34 
     | 
    
         
            +
            /* .mi { color: #666666 } /\* Literal.Number.Integer *\/ */
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            .hll { background-color: #ffffcc }
         
     | 
| 
      
 39 
     | 
    
         
            +
            .c { color: #408080; font-style: italic } /* Comment */
         
     | 
| 
      
 40 
     | 
    
         
            +
            .err { border: 1px solid #FF0000 } /* Error */
         
     | 
| 
      
 41 
     | 
    
         
            +
            /* .o { color: #666666 } /\* Operator *\/ */
         
     | 
| 
      
 42 
     | 
    
         
            +
            .cm { color: #408080; font-style: italic } /* Comment.Multiline */
         
     | 
| 
      
 43 
     | 
    
         
            +
            .cp { color: #BC7A00 } /* Comment.Preproc */
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            .cs { color: #408080; font-style: italic } /* Comment.Special */
         
     | 
| 
      
 47 
     | 
    
         
            +
            .gd { color: #A00000 } /* Generic.Deleted */
         
     | 
| 
      
 48 
     | 
    
         
            +
            .ge { font-style: italic } /* Generic.Emph */
         
     | 
| 
      
 49 
     | 
    
         
            +
            .gr { color: #FF0000 } /* Generic.Error */
         
     | 
| 
      
 50 
     | 
    
         
            +
            .gh { color: #000080; font-weight: bold } /* Generic.Heading */
         
     | 
| 
      
 51 
     | 
    
         
            +
            .gi { color: #00A000 } /* Generic.Inserted */
         
     | 
| 
      
 52 
     | 
    
         
            +
            .go { color: #808080 } /* Generic.Output */
         
     | 
| 
      
 53 
     | 
    
         
            +
            .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
         
     | 
| 
      
 54 
     | 
    
         
            +
            .gs { font-weight: bold } /* Generic.Strong */
         
     | 
| 
      
 55 
     | 
    
         
            +
            .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
         
     | 
| 
      
 56 
     | 
    
         
            +
            .gt { color: #0040D0 } /* Generic.Traceback */
         
     | 
| 
      
 57 
     | 
    
         
            +
            .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
         
     | 
| 
      
 58 
     | 
    
         
            +
            .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
         
     | 
| 
      
 59 
     | 
    
         
            +
            .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
         
     | 
| 
      
 60 
     | 
    
         
            +
            .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
         
     | 
| 
      
 61 
     | 
    
         
            +
            .kt { color: #B00040 } /* Keyword.Type */
         
     | 
| 
      
 62 
     | 
    
         
            +
            .m { color: #666666 } /* Literal.Number */
         
     | 
| 
      
 63 
     | 
    
         
            +
            .s { color: #BA2121 } /* Literal.String */
         
     | 
| 
      
 64 
     | 
    
         
            +
            .na { color: #7D9029 } /* Name.Attribute */
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            .nc { color: #0000FF; font-weight: bold } /* Name.Class */
         
     | 
| 
      
 67 
     | 
    
         
            +
            .nd { color: #AA22FF } /* Name.Decorator */
         
     | 
| 
      
 68 
     | 
    
         
            +
            .ni { color: #999999; font-weight: bold } /* Name.Entity */
         
     | 
| 
      
 69 
     | 
    
         
            +
            .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
         
     | 
| 
      
 70 
     | 
    
         
            +
            .nf { color: #0000FF } /* Name.Function */
         
     | 
| 
      
 71 
     | 
    
         
            +
            .nl { color: #A0A000 } /* Name.Label */
         
     | 
| 
      
 72 
     | 
    
         
            +
            .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
         
     | 
| 
      
 73 
     | 
    
         
            +
            .nt { color: #008000; font-weight: bold } /* Name.Tag */
         
     | 
| 
      
 74 
     | 
    
         
            +
            .nv { color: #19177C } /* Name.Variable */
         
     | 
| 
      
 75 
     | 
    
         
            +
            .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
         
     | 
| 
      
 76 
     | 
    
         
            +
            .w { color: #bbbbbb } /* Text.Whitespace */
         
     | 
| 
      
 77 
     | 
    
         
            +
            .mf { color: #666666 } /* Literal.Number.Float */
         
     | 
| 
      
 78 
     | 
    
         
            +
            .mh { color: #666666 } /* Literal.Number.Hex */
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            .mo { color: #666666 } /* Literal.Number.Oct */
         
     | 
| 
      
 81 
     | 
    
         
            +
            .sb { color: #BA2121 } /* Literal.String.Backtick */
         
     | 
| 
      
 82 
     | 
    
         
            +
            .sc { color: #BA2121 } /* Literal.String.Char */
         
     | 
| 
      
 83 
     | 
    
         
            +
            .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
         
     | 
| 
      
 84 
     | 
    
         
            +
            .s2 { color: #BA2121 } /* Literal.String.Double */
         
     | 
| 
      
 85 
     | 
    
         
            +
            .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
         
     | 
| 
      
 86 
     | 
    
         
            +
            .sh { color: #BA2121 } /* Literal.String.Heredoc */
         
     | 
| 
      
 87 
     | 
    
         
            +
            .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
         
     | 
| 
      
 88 
     | 
    
         
            +
            .sx { color: #008000 } /* Literal.String.Other */
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            .bp { color: #008000 } /* Name.Builtin.Pseudo */
         
     | 
| 
      
 91 
     | 
    
         
            +
            .vc { color: #19177C } /* Name.Variable.Class */
         
     | 
| 
      
 92 
     | 
    
         
            +
            .vg { color: #19177C } /* Name.Variable.Global */
         
     | 
| 
      
 93 
     | 
    
         
            +
            .vi { color: #19177C } /* Name.Variable.Instance */
         
     | 
| 
      
 94 
     | 
    
         
            +
            .il { color: #666666 } /* Literal.Number.Integer.Long */
         
     |