source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/irb/ext/save-history.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 1.7 KB
Line 
1#!/usr/local/bin/ruby
2#
3# save-history.rb -
4# $Release Version: 0.9.5$
5# $Revision: 11708 $
6# $Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
7# by Keiju [email protected])
8#
9# --
10#
11#
12#
13
14require "readline"
15
16module IRB
17 module HistorySavingAbility
18 @RCS_ID='-$Id: save-history.rb 11708 2007-02-12 23:01:19Z shyouhei $-'
19 end
20
21 class Context
22 def init_save_history
23 unless (class<<@io;self;end).include?(HistorySavingAbility)
24 @io.extend(HistorySavingAbility)
25 end
26 end
27
28 def save_history
29 IRB.conf[:SAVE_HISTORY]
30 end
31
32 def save_history=(val)
33 IRB.conf[:SAVE_HISTORY] = val
34 if val
35 main_context = IRB.conf[:MAIN_CONTEXT]
36 main_context = self unless main_context
37 main_context.init_save_history
38 end
39 end
40
41 def history_file
42 IRB.conf[:HISTORY_FILE]
43 end
44
45 def history_file=(hist)
46 IRB.conf[:HISTORY_FILE] = hist
47 end
48 end
49
50 module HistorySavingAbility
51 include Readline
52
53 def HistorySavingAbility.create_finalizer
54 proc do
55 if num = IRB.conf[:SAVE_HISTORY] and (num = num.to_i) > 0
56 if hf = IRB.conf[:HISTORY_FILE]
57 file = File.expand_path(hf)
58 end
59 file = IRB.rc_file("_history") unless file
60 open(file, 'w' ) do |f|
61 hist = HISTORY.to_a
62 f.puts(hist[-num..-1] || hist)
63 end
64 end
65 end
66 end
67
68 def HistorySavingAbility.extended(obj)
69 ObjectSpace.define_finalizer(obj, HistorySavingAbility.create_finalizer)
70 obj.load_history
71 obj
72 end
73
74 def load_history
75 hist = IRB.conf[:HISTORY_FILE]
76 hist = IRB.rc_file("_history") unless hist
77 if File.exist?(hist)
78 open(hist) do |f|
79 f.each {|l| HISTORY << l.chomp}
80 end
81 end
82 end
83 end
84end
85
Note: See TracBrowser for help on using the repository browser.