Method: Reline::Config#handle_directive

Defined in:
lib/reline/config.rb

#handle_directive(directive, file, no) ⇒ Object



187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# File 'lib/reline/config.rb', line 187

def handle_directive(directive, file, no)
  directive, args = directive.split(' ')
  case directive
  when 'if'
    condition = false
    case args
    when 'mode'
    when 'term'
    when 'version'
    else # application name
      condition = true if args == 'Ruby'
      condition = true if args == 'Reline'
    end
    @if_stack << [file, no, @skip_section]
    @skip_section = !condition
  when 'else'
    if @if_stack.empty?
      raise InvalidInputrc, "#{file}:#{no}: unmatched else"
    end
    @skip_section = !@skip_section
  when 'endif'
    if @if_stack.empty?
      raise InvalidInputrc, "#{file}:#{no}: unmatched endif"
    end
    @skip_section = @if_stack.pop
  when 'include'
    read(args)
  end
end