Module: Uv

Defined in:
lib/uv.rb,
lib/uv/html_processor.rb

Defined Under Namespace

Classes: HtmlProcessor

Class Method Summary collapse

Class Method Details

.debug(text, syntax_name) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
# File 'lib/uv.rb', line 72

def Uv.debug text, syntax_name
   unless @syntaxes
      @syntaxes = {}
      Dir.glob( File.join(File.dirname(__FILE__), '..', 'syntax', '*.syntax') ).each do |f| 
         @syntaxes[File.basename(f, '.syntax')] = Textpow::SyntaxNode.load( f )
      end
   end
   processor = Textpow::DebugProcessor.new

   @syntaxes[syntax_name].parse( text, processor )
end

.init_syntaxesObject



12
13
14
15
16
17
# File 'lib/uv.rb', line 12

def Uv.init_syntaxes
   @syntaxes = {}
   Dir.glob( File.join(File.dirname(__FILE__), '..', 'syntax', '*.syntax') ).each do |f| 
      @syntaxes[File.basename(f, '.syntax')] = Textpow::SyntaxNode.load( f )
   end
end

.parse(text, output = "xhtml", syntax_name = nil, line_numbers = false, render_style = "classic") ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/uv.rb', line 58

def Uv.parse text, output = "xhtml", syntax_name = nil, line_numbers = false, render_style = "classic"
   init_syntaxes unless @syntaxes
   renderer = File.join( File.dirname(__FILE__), '..',"render", output,"#{render_style}.render")
   css_class = render_style
   render_options = YAML.load( File.open(  renderer ) )
   if output == "xhtml"
      render_processor = HtmlProcessor.new( render_options, line_numbers )
      @syntaxes[syntax_name].parse( text,  render_processor )
      "<pre class =\"#{css_class}\">#{render_processor.string}</pre>"
   else
      raise( ArgumentError, "Output for #{output} is not yet implemented" )
   end
end

.pathObject



7
8
9
10
# File 'lib/uv.rb', line 7

def Uv.path
   result = []
   result << File.join(File.dirname(__FILE__), ".." )   
end

.syntax_for_file(file_name) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/uv.rb', line 31

def Uv.syntax_for_file file_name
   init_syntaxes unless @syntaxes
   first_line = ""
   File.open( file_name, 'r' ) { |f|
      while (first_line = f.readline).strip.size == 0; end
   }
   result = []
   @syntaxes.each do |key, value|
      assigned = false
      if value.fileTypes
         value.fileTypes.each do |t|
            if t == File.basename( file_name ) || t == File.extname( file_name )[1..-1]
               result << [key, value] 
               assigned = true
               break
            end
         end
      end
      unless assigned
         if value.firstLineMatch && value.firstLineMatch =~ first_line
            result << [key, value] 
         end
      end
   end
   result
end

.syntaxesObject



19
20
21
22
23
# File 'lib/uv.rb', line 19

def Uv.syntaxes
   Dir.glob( File.join(File.dirname(__FILE__), '..', 'syntax', '*.syntax') ).collect do |f| 
      File.basename(f, '.syntax')
   end
end

.themesObject



25
26
27
28
29
# File 'lib/uv.rb', line 25

def Uv.themes
   Dir.glob( File.join(File.dirname(__FILE__), '..', 'render', 'xhtml', 'files', 'css', '*.css') ).collect do |f| 
      File.basename(f, '.css')
   end
end