Class: Tb::Cmd::SVNLOGListener

Inherits:
Object
  • Object
show all
Defined in:
lib/tb/cmd_svn.rb

Instance Method Summary collapse

Constructor Details

#initialize(y) ⇒ SVNLOGListener

Returns a new instance of SVNLOGListener.

[View source]

55
56
57
58
59
60
61
# File 'lib/tb/cmd_svn.rb', line 55

def initialize(y)
  @y = y
  @header = nil
  @elt_stack = []
  @att_stack = []
  @log = nil
end

Instance Method Details

#attlistdecl(element_name, attributes, raw_content) ⇒ Object

[View source]

137
138
# File 'lib/tb/cmd_svn.rb', line 137

def attlistdecl(element_name, attributes, raw_content)
end

#cdata(content) ⇒ Object

[View source]

152
153
154
# File 'lib/tb/cmd_svn.rb', line 152

def cdata(content)
  # I guess svn doesn't use CDATA...
end

#comment(comment) ⇒ Object

[View source]

128
129
# File 'lib/tb/cmd_svn.rb', line 128

def comment(comment)
end

#doctype(name, pub_sys, long_name, uri) ⇒ Object

[View source]

131
132
# File 'lib/tb/cmd_svn.rb', line 131

def doctype(name, pub_sys, long_name, uri)
end

#doctype_endObject

[View source]

134
135
# File 'lib/tb/cmd_svn.rb', line 134

def doctype_end
end

#elementdecl(content) ⇒ Object

[View source]

140
141
# File 'lib/tb/cmd_svn.rb', line 140

def elementdecl(content)
end

#entity(content) ⇒ Object

[View source]

149
150
# File 'lib/tb/cmd_svn.rb', line 149

def entity(content)
end

#entitydecl(content) ⇒ Object

[View source]

143
144
# File 'lib/tb/cmd_svn.rb', line 143

def entitydecl(content)
end

#instruction(name, instruction) ⇒ Object

[View source]

125
126
# File 'lib/tb/cmd_svn.rb', line 125

def instruction(name, instruction)
end

#notationdecl(content) ⇒ Object

[View source]

146
147
# File 'lib/tb/cmd_svn.rb', line 146

def notationdecl(content)
end

#tag_end(name) ⇒ Object

[View source]

89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tb/cmd_svn.rb', line 89

def tag_end(name)
  case @elt_stack
  when %w[log logentry]
    if !@header
      if @log['paths']
        @header = %w[rev author date msg kind action path]
      else
        @header = %w[rev author date msg]
      end
      @y.set_header @header
    end
    assoc = @log.to_a.reject {|f, v| !%w[rev author date msg].include?(f) }
    if !assoc.assoc('author')
      assoc << ['author', '(no author)']
    end
    if !assoc.assoc('date')
      assoc << ['date', '(no date)']
    end
    if !assoc.assoc('msg')
      assoc << ['msg', '']
    end
    if @log['paths']
      @log['paths'].each {|h|
        assoc2 = assoc.dup
        assoc2.concat(h.to_a.reject {|f, v| !%w[kind action path].include?(f) })
        @y.yield Hash[assoc2]
      }
    else
      @y.yield Hash[assoc]
    end
    @log = nil
  end
  @elt_stack.pop
  @att_stack.pop
end

#tag_start(name, attrs) ⇒ Object

[View source]

63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/tb/cmd_svn.rb', line 63

def tag_start(name, attrs)
  @elt_stack.push name
  @att_stack.push attrs
  case @elt_stack
  when %w[log logentry]
    @log = { 'rev' => attrs['revision'] }
  when %w[log logentry paths]
    @log['paths'] = []
  when %w[log logentry paths path]
    @log['paths'] << { 'kind' => attrs['kind'], 'action' => attrs['action'] }
  end
end

#text(text) ⇒ Object

[View source]

76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/tb/cmd_svn.rb', line 76

def text(text)
  case @elt_stack
  when %w[log logentry author]
    @log['author'] = text
  when %w[log logentry date]
    @log['date'] = text
  when %w[log logentry paths path]
    @log['paths'].last['path'] = text
  when %w[log logentry msg]
    @log['msg'] = text
  end
end

#xmldecl(version, encoding, standalone) ⇒ Object

[View source]

156
157
# File 'lib/tb/cmd_svn.rb', line 156

def xmldecl(version, encoding, standalone)
end