linecache 0.43 → 0.45

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,317 +0,0 @@
1
- 2008-04-10 20:06 Rocky Bernstein
2
-
3
- * NEWS: What's new for 0.41.
4
-
5
- 2008-04-10 20:02 Rocky Bernstein
6
-
7
- * ChangeLog, Rakefile, VERSION: Forgot to add test/data to the gem.
8
-
9
- 2008-04-10 02:15 Rocky Bernstein
10
-
11
- * NEWS:
12
-
13
- 2008-03-28 15:04 Rocky Bernstein
14
-
15
- * test/data/if6.rb, test/data/if7.rb: More if tests
16
-
17
- 2008-03-09 23:24 Rocky Bernstein
18
-
19
- * ChangeLog, Rakefile, VERSION, lib/linecache.rb: Deal with
20
- Depricated win32.
21
-
22
- 2008-03-05 02:01 Rocky Bernstein
23
-
24
- * Rakefile: Add rubyforge_upload task -- code from
25
- ruby-memory-profiler.
26
-
27
- 2008-03-04 22:47 Rocky Bernstein
28
-
29
- * README: Ooops - forgot to credit Ryan Davis and ParseTree.
30
-
31
- 2008-02-10 13:59 Rocky Bernstein
32
-
33
- * ChangeLog, Rakefile, ext/trace_nums.c, ext/win32, svn2cl_usermap:
34
- Go over Rakefile and doc for 0.3 release.
35
-
36
- 2008-01-29 21:51 Rocky Bernstein
37
-
38
- * test/test-linecache.rb: Interface change. Don't know why this
39
- didn't get updated before.
40
-
41
- 2008-01-28 15:35 Rocky Bernstein
42
-
43
- * ChangeLog, lib/linecache.rb: Change line number return from a Set
44
- to an Array.
45
-
46
- 2008-01-27 11:24 Rocky Bernstein
47
-
48
- * ext/trace_nums.c, ext/trace_nums.h, test/data/if5.rb: Handle
49
- defined? node. Add "if" weirdness test.
50
-
51
- 2008-01-27 04:26 Rocky Bernstein
52
-
53
- * test/data/case5.rb: Verify that the 'else' doesn't appear in a
54
- trace.
55
-
56
- 2008-01-27 04:21 Rocky Bernstein
57
-
58
- * ext/trace_nums.c, test/data/block1.rb, test/data/block2.rb,
59
- test/data/case1.rb, test/data/case2.rb, test/data/case3.rb,
60
- test/data/case4.rb, test/data/case5.rb, test/data/def1.rb,
61
- test/data/each1.rb, test/data/for1.rb, test/data/if3.rb,
62
- test/data/if4.rb, test/data/match3.rb, test/data/match3a.rb,
63
- test/data/not-lit.rb: Was not showing blocks after when's.
64
-
65
- 2008-01-27 04:03 Rocky Bernstein
66
-
67
- * ext/trace_nums.c, test/data/block1.rb, test/data/block2.rb,
68
- test/data/if4.rb, test/lnum-diag.rb: trace_nums.c, block1.c,
69
- block2.c: bug in handling blocks
70
- lnum-diag.rb: more graceful about not finding the source.
71
- if4.rb: note weirdness in the way comparison works.
72
-
73
- 2008-01-27 02:11 Rocky Bernstein
74
-
75
- * ext/trace_nums.c, ext/trace_nums.h, test/data/case4.rb,
76
- test/data/def1.rb, test/data/if3.rb, test/lnum-diag.rb: Finish
77
- adding all tree nodes. Work on case nodes some more.
78
- lnum-diag.rb: add options to turn on and off various parts.
79
-
80
- 2008-01-26 11:12 Rocky Bernstein
81
-
82
- * test/data/comments1.rb: Add comment test and situation where no
83
- lines traced.
84
-
85
- 2008-01-26 11:08 Rocky Bernstein
86
-
87
- * ext/trace_nums.c, test/data/class1.rb: Add class, scope and
88
- module nodes.
89
-
90
- 2008-01-26 10:18 Rocky Bernstein
91
-
92
- * ext/trace_nums.c, test/rcov-bug.rb, test/test-linecache.rb,
93
- test/test-tracelines.rb: Add more tree nodes.
94
-
95
- 2008-01-26 02:09 Rocky Bernstein
96
-
97
- * test/data/each1.rb, test/data/for1.rb, test/data/if1.rb,
98
- test/data/if2.rb, test/test-lnum.rb: Add Debugger.init which
99
- intializes things that rdebug does. This
100
- allows a restart even though rdebug wasn't called initially.
101
-
102
- 2008-01-25 03:50 Rocky Bernstein
103
-
104
- * ext/trace_nums.c: Some code cleanup.
105
-
106
- 2008-01-25 02:50 Rocky Bernstein
107
-
108
- * ext/trace_nums.c, test/data/case1.rb, test/data/case2.rb,
109
- test/data/case3.rb, test/data/match3.rb, test/data/match3a.rb:
110
- Work over case, when and match3.
111
-
112
- 2008-01-25 00:17 Rocky Bernstein
113
-
114
- * ext/trace_nums.c, test/data, test/lnum-data, test/lnum-diag.rb,
115
- test/test-lnum.rb, test/test-tracelines.rb: Trace just line
116
- numbers for now until we get a better handle on things.
117
-
118
- 2008-01-24 13:36 Rocky Bernstein
119
-
120
- * test/lnum-diag.rb, test/rcov-bug.rb, test/test-linecache.rb,
121
- test/test-tracelines.rb: Need recursion in more places because of
122
- block continuation nodes.
123
- Add nodes needed so we don't complain about rcov-bug.rb:
124
- NODE_MATCH3, NODE_LASN, and NODE_STR (and those similar to that).
125
-
126
- 2008-01-24 04:09 Rocky Bernstein
127
-
128
- * test/lnum-diag.rb: Fix bug if print_file == false
129
-
130
- 2008-01-24 04:04 Rocky Bernstein
131
-
132
- * ext/trace_nums.c, test/lnum-data/begin3.rb,
133
- test/lnum-data/end.rb, test/lnum-data/match.rb,
134
- test/lnum-data/not-lit.rb, test/lnum-diag.rb: Add more
135
- operatiors. Go over existing ones and add more tests of them.
136
-
137
- 2008-01-23 19:17 Rocky Bernstein
138
-
139
- * NEWS: What's up.
140
-
141
- 2008-01-23 19:12 Rocky Bernstein
142
-
143
- * test/lnum-diag.rb: Don't assume we have expected line numbers.
144
-
145
- 2008-01-23 19:05 Rocky Bernstein
146
-
147
- * test/lnum-diag.rb: A conversion-error bug.
148
-
149
- 2008-01-23 19:04 Rocky Bernstein
150
-
151
- * test/lnum-diag.rb: variable name typo.
152
-
153
- 2008-01-23 19:03 Rocky Bernstein
154
-
155
- * ext, ext/trace_nums.c, test/lnum-diag.rb, test/parse-show.rb:
156
- lnum-diag.rb and parse-show.rb - some diagnostic tools.
157
-
158
- 2008-01-23 16:06 Rocky Bernstein
159
-
160
- * ChangeLog, ext/trace_nums.c: Show add_lines level, nicer
161
- formatting including \n for end.
162
-
163
- 2008-01-23 15:32 Rocky Bernstein
164
-
165
- * test/test-lnum.rb: Generalized routine to test everything in
166
- lnum-data
167
-
168
- 2008-01-23 12:07 Rocky Bernstein
169
-
170
- * Rakefile, ext, ext/extconf.rb, ext/trace_nums.c,
171
- ext/trace_nums.h, lib/linecache.rb, lib/tracelines.rb,
172
- test/lnum-data, test/lnum-data/begin1.rb,
173
- test/lnum-data/begin2.rb, test/lnum-data/begin3.rb,
174
- test/test-tracelines.rb: ParseTree is broken for our purposes.
175
- Having custom code for getting
176
- the trace line numbers is going remove a lot of headaches down
177
- the line.
178
-
179
- 2008-01-20 21:37 Rocky Bernstein
180
-
181
- * Rakefile, lib/linecache.rb, test/test-linecache.rb: Add
182
- trace_line_numbers to save/get line numbers which we can set
183
- breakpoints
184
- on.
185
-
186
- 2008-01-20 16:31 Rocky Bernstein
187
-
188
- * ChangeLog, Rakefile, lib/linecache.rb, lib/tracelines.rb,
189
- test/rcov-bug.rb, test/test-tracelines.rb: Add module
190
- TraceLineNumbers for extracting the stoppable lines in a
191
- Ruby program.
192
-
193
- 2008-01-19 15:55 Rocky Bernstein
194
-
195
- * lib/linecache.rb, test/test-linecache.rb: Allow nil to mean the
196
- same file. More tests.
197
-
198
- 2008-01-19 15:45 Rocky Bernstein
199
-
200
- * lib/linecache.rb, test/test-linecache.rb: Start remap_file_lines:
201
- ability to remap file ranges.
202
-
203
- 2008-01-17 22:25 Rocky Bernstein
204
-
205
- * lib/linecache.rb, test/test-linecache.rb: lines -> size. Add
206
- empty? Add remap_file.
207
-
208
- 2008-01-17 20:05 Rocky Bernstein
209
-
210
- * lib/linecache.rb, test/test-linecache.rb: Add method to get the
211
- number of lines in a cached file.
212
-
213
- 2008-01-17 19:42 Rocky Bernstein
214
-
215
- * lib/linecache.rb, test/short-file, test/test-linecache.rb: Add
216
- convenience method for testing presence in SCRIPT_LINES__.
217
-
218
- 2008-01-17 07:30 Rocky Bernstein
219
-
220
- * lib/linecache.rb, test/test-linecache.rb: Add path method and
221
- test.
222
-
223
- 2008-01-17 06:54 Rocky Bernstein
224
-
225
- * VERSION, lib/linecache.rb, test/test-linecache.rb: Add
226
- @@full2file_cache_key. getlines wasn't returning the right value
227
- sometimes.
228
- Make return from checkcache meaningful. Change return value of
229
- upate_cache().
230
- test-linecache.rb: was testing for buggy behavior!
231
- VERSION: now in 0.3 - hope we get it right this time.
232
-
233
- 2008-01-16 12:51 Rocky Bernstein
234
-
235
- * lib/linecache.rb: Add cached_files.
236
-
237
- 2008-01-16 01:30 Rocky Bernstein
238
-
239
- * NEWS: Update news for 0.2 release.
240
-
241
- 2008-01-15 22:43 Rocky Bernstein
242
-
243
- * test/test-linecache.rb: Remove debug line.
244
-
245
- 2008-01-15 22:42 Rocky Bernstein
246
-
247
- * lib/linecache.rb: Fix some syntax errors.
248
-
249
- 2008-01-15 22:40 Rocky Bernstein
250
-
251
- * Rakefile, lib/linecache.rb, test/short-file,
252
- test/test-linecache.rb: Add routine to save and get SHA1.
253
-
254
- 2008-01-15 22:16 Rocky Bernstein
255
-
256
- * lib/linecache.rb, test/test-linecache.rb: Add cached? and stat
257
- methods to determine in a file is cached and get
258
- File.stat from it.
259
-
260
- 2008-01-15 08:49 Rocky Bernstein
261
-
262
- * lib/linecache.rb: Don't ever modify SCRIPT_LINES__. And until
263
- SCRIPT_LINES__ is fixed,
264
- don't read from it. Corrections to comments.
265
-
266
- 2008-01-14 12:27 Rocky Bernstein
267
-
268
- * ChangeLog, VERSION, lib/linecache.rb: Add parameter to getline
269
- and getlines to reload file on change. Add
270
- option on clear_file_cache to clear out SCRIPT_LINES__ as well.
271
- TESTS ARE NEEDED.
272
- Update to version 0.2.
273
-
274
- 2008-01-14 03:41 Rocky Bernstein
275
-
276
- * lib/linecache.rb: Use SCRIPT_LINES__ if we can.
277
-
278
- 2007-12-10 16:24 Rocky Bernstein
279
-
280
- * : release 0.1
281
-
282
- 2007-12-09 17:47 Rocky Bernstein
283
-
284
- * : Make Ruby 1.9 compatible.
285
-
286
- 2007-12-09 17:17 Rocky Bernstein
287
-
288
- * : Better tests mean more bugs found. "rake" defaults now to
289
- "test".
290
-
291
- 2007-12-09 14:10 Rocky Bernstein
292
-
293
- * : Add VERSION to gem.
294
-
295
- 2007-12-09 14:09 Rocky Bernstein
296
-
297
- * : Change classname to something more appropriate.
298
-
299
- 2007-12-09 13:41 Rocky Bernstein
300
-
301
- * : . : ignore doc and pkg
302
- Rakefile: clean now does clobber_rdoc and clobber_package, i.e.
303
- removes
304
- the doc and pkg directories.
305
-
306
- 2007-12-09 13:15 Rocky Bernstein
307
-
308
- * : NEWS, README, linecache.rb: Add $Id$ line
309
- test-linecache.rb: make executable
310
- Rakefile: Correct documentation
311
-
312
- 2007-12-09 12:58 Rocky Bernstein
313
-
314
- * : Initial import of LineCache, a module for reading and caching
315
- lines.
316
- This time to trunk.
317
-
data/NEWS CHANGED
@@ -1,3 +1,8 @@
1
+ 0.45
2
+ 06-12-11
3
+ - Support for syntax highlighting and caching eval strings. The former
4
+ is used in rb8-trepanning.
5
+
1
6
  0.43
2
7
  06-12-08
3
8
  - tolerance for finding windows extension in lib rather than ext.
@@ -26,4 +31,4 @@
26
31
 
27
32
  - Initial release of LineCache, a module for reading and caching lines.
28
33
 
29
- $Id: NEWS 144 2008-06-12 11:29:53Z rockyb $
34
+ $Id: NEWS 265 2011-06-09 21:51:21Z rockyb $
data/README CHANGED
@@ -1,4 +1,16 @@
1
- = LineCache - Module to read and cache lines of a file
1
+ = LineCache - A module to read and cache file information of a Ruby program.
2
+
3
+ == SYNOPSIS
4
+
5
+ The LineCache module allows one to get any line from any file, caching
6
+ the lines and file information on first access to the file. Although
7
+ the file may be any file, the common use is when the file is a Ruby
8
+ script since parsing of the file is done to figure out where the
9
+ statement boundaries are.
10
+
11
+ The routines here may be is useful when a small random sets of lines
12
+ are read from a single file, in particular in a debugger to show
13
+ source lines.
2
14
 
3
15
  == Summary
4
16
 
@@ -35,4 +47,4 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
35
47
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36
48
  GNU General Public License for more details.
37
49
 
38
- $Id: README 63 2008-03-04 22:47:26Z rockyb $
50
+ $Id: README 169 2009-02-08 17:19:33Z rockyb $
data/Rakefile CHANGED
@@ -5,12 +5,12 @@ require 'rake/gempackagetask'
5
5
  require 'rake/rdoctask'
6
6
  require 'rake/testtask'
7
7
 
8
- SO_NAME = "trace_nums.so"
8
+ SO_NAME = 'trace_nums.so'
9
9
 
10
- # ------- Default Package ----------
11
- PKG_VERSION = open(File.join(File.dirname(__FILE__), 'VERSION')) do
12
- |f| f.readlines[0].chomp
13
- end
10
+ ROOT_DIR = File.dirname(__FILE__)
11
+ load File.join %W(#{ROOT_DIR} lib version.rb)
12
+
13
+ PKG_VERSION = LineCache::VERSION
14
14
  PKG_NAME = 'linecache'
15
15
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
16
16
  RUBY_FORGE_PROJECT = 'rocky-hacks'
@@ -23,7 +23,6 @@ FILES = FileList[
23
23
  'NEWS',
24
24
  'README',
25
25
  'Rakefile',
26
- 'VERSION',
27
26
  'ext/trace_nums.c',
28
27
  'ext/trace_nums.h',
29
28
  'ext/extconf.rb',
@@ -33,36 +32,38 @@ FILES = FileList[
33
32
  'test/short-file'
34
33
  ]
35
34
 
36
- desc "Test everything."
37
- test_task = task :test => :lib do
38
- Rake::TestTask.new(:test) do |t|
39
- t.pattern = 'test/test-*.rb'
40
- t.verbose = true
41
- end
35
+ desc 'Test everything'
36
+ Rake::TestTask.new(:test) do |t|
37
+ t.libs << './lib'
38
+ t.pattern = 'test/test-*.rb'
39
+ t.options = '--verbose' if $VERBOSE
42
40
  end
41
+ task :test => :lib
43
42
 
44
- desc "Create the core ruby-debug shared library extension"
43
+ desc 'Create the core ruby-debug shared library extension'
45
44
  task :lib do
46
- Dir.chdir("ext") do
45
+ Dir.chdir('ext') do
47
46
  system("#{Gem.ruby} extconf.rb && make")
48
47
  end
49
48
  end
50
49
 
51
50
 
52
- desc "Test everything - same as test."
51
+ desc 'Test everything - same as test.'
53
52
  task :check => :test
54
53
 
55
- desc "Create a GNU-style ChangeLog via svn2cl"
54
+ desc 'Create a GNU-style ChangeLog via svn2cl'
56
55
  task :ChangeLog do
57
- system("svn2cl --authors=svn2cl_usermap")
56
+ system('svn2cl --authors=svn2cl_usermap')
58
57
  end
59
58
 
59
+ gem_file = nil
60
+
60
61
  # Base GEM Specification
61
62
  default_spec = Gem::Specification.new do |spec|
62
- spec.name = "linecache"
63
+ spec.name = 'linecache'
63
64
 
64
- spec.homepage = "http://rubyforge.org/projects/rocky-hacks/linecache"
65
- spec.summary = "Read file with caching"
65
+ spec.homepage = 'http://rubyforge.org/projects/rocky-hacks/linecache'
66
+ spec.summary = 'Read file with caching'
66
67
  spec.description = <<-EOF
67
68
  LineCache is a module for reading and caching lines. This may be useful for
68
69
  example in a debugger where the same lines are shown many times.
@@ -70,12 +71,12 @@ EOF
70
71
 
71
72
  spec.version = PKG_VERSION
72
73
 
73
- spec.author = "R. Bernstein"
74
- spec.email = "rockyb@rubyforge.net"
74
+ spec.author = 'R. Bernstein'
75
+ spec.email = 'rockyb@rubyforge.net'
75
76
  spec.platform = Gem::Platform::RUBY
76
- spec.require_path = "lib"
77
+ spec.require_path = 'lib'
77
78
  spec.files = FILES.to_a
78
- spec.extensions = ["ext/extconf.rb"]
79
+ spec.extensions = ['ext/extconf.rb']
79
80
 
80
81
  spec.required_ruby_version = '>= 1.8.2'
81
82
  spec.date = Time.now
@@ -86,10 +87,12 @@ EOF
86
87
  spec.extra_rdoc_files = ['README', 'lib/linecache.rb', 'lib/tracelines.rb']
87
88
 
88
89
  spec.test_files = FileList['test/*.rb']
90
+ gem_file = "#{spec.name}-#{spec.version}.gem"
91
+
89
92
  end
90
93
 
91
94
  # Rake task to build the default package
92
- Rake::GemPackageTask.new(default_spec) do |pkg|
95
+ Rake::GemPackageTask.new(default_spec) do |pkg|
93
96
  pkg.need_tar = true
94
97
  end
95
98
 
@@ -102,12 +105,12 @@ win_spec.extensions = []
102
105
  win_spec.platform = 'mswin32'
103
106
  win_spec.files += ["lib/#{SO_NAME}"]
104
107
 
105
- desc "Create Windows Gem"
108
+ desc 'Create Windows Gem'
106
109
  task :win32_gem do
107
110
  # Copy the win32 extension the top level directory.
108
111
  current_dir = File.expand_path(File.dirname(__FILE__))
109
- source = File.join(current_dir, "ext", "win32", SO_NAME)
110
- target = File.join(current_dir, "lib", SO_NAME)
112
+ source = File.join(current_dir, 'ext', 'win32', SO_NAME)
113
+ target = File.join(current_dir, 'lib', SO_NAME)
111
114
  cp(source, target)
112
115
 
113
116
  # Create the gem, then move it to pkg.
@@ -119,37 +122,45 @@ task :win32_gem do
119
122
  rm(target)
120
123
  end
121
124
 
122
- desc "Publish linecache to RubyForge."
125
+ desc 'Publish linecache to RubyForge.'
123
126
  task :publish do
124
127
  require 'rake/contrib/sshpublisher'
125
128
 
126
129
  # Get ruby-debug path.
127
130
  ruby_debug_path = File.expand_path(File.dirname(__FILE__))
128
131
 
129
- publisher = Rake::SshDirPublisher.new("rockyb@rubyforge.org",
130
- "/var/www/gforge-projects/rocky-hacks/linecache", ruby_debug_path)
132
+ publisher = Rake::SshDirPublisher.new('rockyb@rubyforge.org',
133
+ '/var/www/gforge-projects/rocky-hacks/linecache', ruby_debug_path)
134
+ end
135
+
136
+ desc 'Remove residue from running patch'
137
+ task :rm_patch_residue do
138
+ FileUtils.rm_rf Dir.glob('**/*.{rej,orig}'), :verbose => true
131
139
  end
132
140
 
133
- desc "Remove built files"
134
- task :clean => [:clobber_package, :clobber_rdoc] do
135
- cd "ext" do
136
- if File.exists?("Makefile")
137
- sh "make clean"
138
- rm "Makefile"
141
+ desc 'Remove ~ backup files'
142
+ task :rm_tilde_backups do
143
+ FileUtils.rm_rf Dir.glob('**/*~'), :verbose => true
144
+ end
145
+
146
+ desc 'Remove built files'
147
+ task :clean => [:clobber_package, :clobber_rdoc, :rm_patch_residue,
148
+ :rm_tilde_backups] do
149
+ cd 'ext' do
150
+ if File.exists?('Makefile')
151
+ sh 'make clean'
152
+ rm 'Makefile'
139
153
  end
140
- derived_files = Dir.glob(".o") + Dir.glob("*.so")
154
+ derived_files = Dir.glob('.o') + Dir.glob('*.so')
141
155
  rm derived_files unless derived_files.empty?
142
156
  end
143
157
  end
144
158
 
145
159
  # --------- RDoc Documentation ------
146
- desc "Generate rdoc documentation"
147
- Rake::RDocTask.new("rdoc") do |rdoc|
160
+ desc 'Generate rdoc documentation'
161
+ Rake::RDocTask.new('rdoc') do |rdoc|
148
162
  rdoc.rdoc_dir = 'doc'
149
- rdoc.title = "linecache"
150
- # Show source inline with line numbers
151
- rdoc.options << "--inline-source" << "--line-numbers"
152
- # Make the readme file the start page for the generated html
163
+ rdoc.title = "linecache #{LineCache::VERSION} Documentation"
153
164
  rdoc.options << '--main' << 'README'
154
165
  rdoc.rdoc_files.include('ext/**/*.c',
155
166
  'lib/*.rb',
@@ -157,10 +168,18 @@ Rake::RDocTask.new("rdoc") do |rdoc|
157
168
  'COPYING')
158
169
  end
159
170
 
160
- desc "Publish the release files to RubyForge."
171
+ desc 'Publish the release files to RubyForge.'
161
172
  task :rubyforge_upload do
162
173
  `rubyforge login`
163
174
  release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} '#{PKG_NAME}-#{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.gem"
164
175
  puts release_command
165
176
  system(release_command)
166
177
  end
178
+
179
+ desc 'Install the gem locally'
180
+ task :install => :gem do
181
+ Dir.chdir(ROOT_DIR) do
182
+ sh %{gem install --local pkg/#{gem_file}}
183
+ end
184
+ end
185
+
@@ -34,15 +34,29 @@
34
34
  #include <ruby.h>
35
35
  #include <version.h>
36
36
  #include <node.h>
37
- #include <env.h>
38
37
  #include <rubysig.h>
39
38
  #include "trace_nums.h"
40
39
 
41
40
  VALUE mTraceLineNumbers;
42
- extern NODE *ruby_eval_tree_begin;
41
+ RUBY_EXTERN NODE *ruby_eval_tree_begin;
42
+ RUBY_EXTERN int ruby_in_eval;
43
43
 
44
44
  #define nd_3rd u3.node
45
45
 
46
+ extern struct FRAME {
47
+ VALUE self;
48
+ int argc;
49
+ ID last_func;
50
+ ID orig_func;
51
+ VALUE last_class;
52
+ struct FRAME *prev;
53
+ struct FRAME *tmp;
54
+ struct RNode *node;
55
+ int iter;
56
+ int flags;
57
+ unsigned long uniq;
58
+ } *ruby_frame;
59
+
46
60
  struct METHOD {
47
61
  VALUE klass, rklass;
48
62
  VALUE recv;
@@ -87,7 +101,7 @@ struct BLOCK {
87
101
  #endif
88
102
 
89
103
  /* Used just in debugging. */
90
- static indent_level = 0;
104
+ static int indent_level = 0;
91
105
 
92
106
  static
93
107
  void ln_eval(VALUE self, NODE * n, VALUE ary) {
@@ -1,7 +1,7 @@
1
1
  /* Order is in C enum order. The below is correct for Ruby 1.8.6.
2
2
  Possibly others, but there may need some adjustment here.
3
3
  */
4
- char *NODE2NAME[] =
4
+ const char *NODE2NAME[] =
5
5
  {
6
6
  "method",
7
7
  "fbody",
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- # $Id: linecache.rb 69 2008-03-09 23:24:25Z rockyb $
2
+ # $Id: linecache.rb 266 2011-06-10 23:41:29Z rockyb $
3
3
  #
4
- # Copyright (C) 2007, 2008 Rocky Bernstein <rockyb@rubyforge.net>
4
+ # Copyright (C) 2007, 2008, 2010, 2011 Rocky Bernstein <rockyb@rubyforge.net>
5
5
  #
6
6
  # This program is free software; you can redistribute it and/or modify
7
7
  # it under the terms of the GNU General Public License as published by
@@ -22,16 +22,20 @@
22
22
  # Author:: Rocky Bernstein (mailto:rockyb@rubyforge.net)
23
23
  #
24
24
  # = linecache
25
- # Module to read and cache lines of a file
26
- # == Version
27
- # :include:VERSION
25
+ # A module to read and cache lines of a Ruby program.
28
26
 
29
27
  # == SYNOPSIS
30
28
  #
31
29
  # The LineCache module allows one to get any line from any file,
32
- # caching lines of the file on first access to the file. The may be is
33
- # useful when a small random sets of lines are read from a single
34
- # file, in particular in a debugger to show source lines.
30
+ # caching lines of the file on first access to the file. Although the
31
+ # file may be any file, the common use is when the file is a Ruby
32
+ # script since parsing of the file is done to figure out where the
33
+ # statement boundaries are.
34
+ #
35
+ # The routines here may be is useful when a small random sets of lines
36
+ # are read from a single file, in particular in a debugger to show
37
+ # source lines.
38
+ #
35
39
  #
36
40
  # require 'linecache'
37
41
  # lines = LineCache::getlines('/tmp/myruby.rb')
@@ -43,7 +47,6 @@
43
47
  # # Note lines[6] == line (if /tmp/myruby.rb has 6 lines)
44
48
  #
45
49
  # LineCache::clear_file_cache
46
- # LineCache::clear_file_cache('/tmp/myruby.rb')
47
50
  # LineCache::update_cache # Check for modifications of all cached files.
48
51
  #
49
52
  # Some parts of the interface is derived from the Python module of the
@@ -60,11 +63,13 @@ require 'digest/sha1'
60
63
  require 'set'
61
64
 
62
65
  begin require 'rubygems' rescue LoadError end
63
- require 'tracelines'
66
+ require 'require_relative'
67
+ require_relative 'tracelines'
68
+ require_relative 'version'
64
69
  # require 'ruby-debug' ; Debugger.start
65
70
 
66
71
  # = module LineCache
67
- # Module caching lines of a file
72
+ # A module to read and cache lines of a Ruby program.
68
73
  module LineCache
69
74
  LineCacheInfo = Struct.new(:stat, :line_numbers, :lines, :path, :sha1) unless
70
75
  defined?(LineCacheInfo)
@@ -72,6 +77,11 @@ module LineCache
72
77
  # The file cache. The key is a name as would be given by Ruby for
73
78
  # __FILE__. The value is a LineCacheInfo object.
74
79
  @@file_cache = {}
80
+ @@script_cache = {}
81
+
82
+
83
+ # Used for CodeRay syntax highlighting
84
+ @@ruby_highlighter = nil
75
85
 
76
86
  # Maps a string filename (a String) to a key in @@file_cache (a
77
87
  # String).
@@ -87,28 +97,80 @@ module LineCache
87
97
  # ranges. Will probably use this for that, but I'm not sure.
88
98
  @@file2file_remap = {}
89
99
  @@file2file_remap_lines = {}
100
+ @@script2file = {}
101
+
102
+ module_function
103
+
104
+ def remove_script_temps
105
+ @@script2file.values.each do |filename|
106
+ File.unlink(filename) if File.exist?(filename)
107
+ end
108
+ end
109
+ at_exit { remove_script_temps }
110
+
90
111
 
91
112
  # Clear the file cache entirely.
92
- def clear_file_cache()
93
- @@file_cache = {}
94
- @@file2file_remap = {}
95
- @@file2file_remap_lines = {}
113
+ def clear_file_cache(filename=nil)
114
+ if filename
115
+ if @@file_cache[filename]
116
+ @@file_cache.delete(filename)
117
+ end
118
+ else
119
+ @@file_cache = {}
120
+ @@file2file_remap = {}
121
+ @@file2file_remap_lines = {}
122
+ end
123
+ end
124
+
125
+ # Remove syntax-formatted lines in the cache. Use this
126
+ # when you change the CodeRay syntax or Token formatting
127
+ # and want to redo how files may have previously been
128
+ # syntax marked.
129
+ def clear_file_format_cache
130
+ @@file_cache.each_pair do |fname, cache_info|
131
+ cache_info.lines.each_pair do |format, lines|
132
+ next if :plain == format
133
+ @@file_cache[fname].lines[format] = nil
134
+ end
135
+ end
136
+ end
137
+
138
+ # Remove syntax-formatted lines in the cache. Use this
139
+ # when you change the CodeRay syntax or Token formatting
140
+ # and want to redo how files may have previously been
141
+ # syntax marked.
142
+ def clear_file_format_cache
143
+ @@file_cache.each_pair do |fname, cache_info|
144
+ cache_info.lines.each_pair do |format, lines|
145
+ next if :plain == format
146
+ @@file_cache[fname].lines[format] = nil
147
+ end
148
+ end
149
+ end
150
+
151
+ # Clear the script cache entirely.
152
+ def clear_script_cache()
153
+ @@script_cache = {}
96
154
  end
97
- module_function :clear_file_cache
98
155
 
99
156
  # Return an array of cached file names
100
157
  def cached_files()
101
158
  @@file_cache.keys
102
159
  end
103
- module_function :cached_files
104
160
 
105
161
  # Discard cache entries that are out of date. If +filename+ is +nil+
106
162
  # all entries in the file cache +@@file_cache+ are checked.
107
- # If we don't have stat information about a file which can happen
163
+ # If we don't have stat information about a file, which can happen
108
164
  # if the file was read from __SCRIPT_LINES but no corresponding file
109
165
  # is found, it will be kept. Return a list of invalidated filenames.
110
166
  # nil is returned if a filename was given but not found cached.
111
- def checkcache(filename=nil, use_script_lines=false)
167
+ def checkcache(filename=nil, opts=false)
168
+ use_script_lines =
169
+ if opts.kind_of?(Hash)
170
+ opts[:use_script_lines]
171
+ else
172
+ opts
173
+ end
112
174
 
113
175
  if !filename
114
176
  filenames = @@file_cache.keys()
@@ -123,19 +185,60 @@ module LineCache
123
185
  next unless @@file_cache.member?(filename)
124
186
  path = @@file_cache[filename].path
125
187
  if File.exist?(path)
126
- cache_info = @@file_cache[filename]
188
+ cache_info = @@file_cache[filename].stat
127
189
  stat = File.stat(path)
128
- if stat &&
129
- (cache_info.size != stat.size or cache_info.mtime != stat.mtime)
190
+ if cache_info
191
+ if stat &&
192
+ (cache_info.size != stat.size or cache_info.mtime != stat.mtime)
193
+ result << filename
194
+ update_cache(filename, opts)
195
+ end
196
+ else
130
197
  result << filename
131
- update_cache(filename, use_script_lines)
198
+ update_cache(filename, opts)
132
199
  end
133
200
  end
134
201
  end
135
202
  return result
136
203
  end
137
- module_function :checkcache
204
+
205
+ # Cache script if it's not already cached.
206
+ def cache_script(script, opts={})
207
+ if !@@script_cache.member?(script)
208
+ update_script_cache(script, opts)
209
+ end
210
+ script
211
+ end
212
+
213
+ # Cache file name or script object if it's not already cached.
214
+ # Return the expanded filename for it in the cache if a filename,
215
+ # or the script, or nil if we can't find the file.
216
+ def cache(file_or_script, reload_on_change=false)
217
+ if file_or_script.kind_of?(String)
218
+ cache_file(file_or_script, reload_on_change)
219
+ else
220
+ cache_script(file_or_script)
221
+ end
222
+ end
138
223
 
224
+ # Cache filename if it's not already cached.
225
+ # Return the expanded filename for it in the cache
226
+ # or nil if we can't find the file.
227
+ def cache_file(filename, reload_on_change=false, opts={})
228
+ if @@file_cache.member?(filename)
229
+ checkcache(filename) if reload_on_change
230
+ else
231
+ opts[:use_script_lines] = true
232
+ update_cache(filename, opts)
233
+ end
234
+ if @@file_cache.member?(filename)
235
+ @@file_cache[filename].path
236
+ else
237
+ nil
238
+ end
239
+ end
240
+
241
+ # Older routine - for compability.
139
242
  # Cache filename if it's not already cached.
140
243
  # Return the expanded filename for it in the cache
141
244
  # or nil if we can't find the file.
@@ -151,80 +254,116 @@ module LineCache
151
254
  nil
152
255
  end
153
256
  end
154
- module_function :cache
155
257
 
156
- # Return true if filename is cached
157
- def cached?(filename)
158
- @@file_cache.member?(unmap_file(filename))
258
+ # Return true if file_or_script is cached
259
+ def cached?(file_or_script)
260
+ if file_or_script.kind_of?(String)
261
+ @@file_cache.member?(unmap_file(file_or_script))
262
+ else
263
+ cached_script?(file_or_script)
264
+ end
159
265
  end
160
- module_function :cached?
161
266
 
162
267
  def cached_script?(filename)
163
268
  SCRIPT_LINES__.member?(unmap_file(filename))
164
269
  end
165
- module_function :cached_script?
166
270
 
167
271
  def empty?(filename)
168
272
  filename=unmap_file(filename)
169
- @@file_cache[filename].lines.empty?
273
+ !!@@file_cache[filename].lines[:plain]
170
274
  end
171
- module_function :empty?
172
275
 
173
276
  # Get line +line_number+ from file named +filename+. Return nil if
174
277
  # there was a problem. If a file named filename is not found, the
175
- # function will look for it in the $: path array.
278
+ # function will look for it in the $: array.
176
279
  #
177
280
  # Examples:
178
281
  #
179
- # lines = LineCache::getline('/tmp/myfile.rb)
282
+ # lines = LineCache::getline('/tmp/myfile.rb')
180
283
  # # Same as above
181
284
  # $: << '/tmp'
182
- # lines = Dir.chdir('/tmp') do
183
- # lines = LineCache::getlines ('myfile.rb')
184
- # end
285
+ # lines = LineCache.getlines('myfile.rb')
185
286
  #
186
- def getline(filename, line_number, reload_on_change=true)
187
- filename = unmap_file(filename)
188
- filename, line_number = unmap_file_line(filename, line_number)
189
- lines = getlines(filename, reload_on_change)
287
+ def getline(file_or_script, line_number, opts=true)
288
+ reload_on_change =
289
+ if opts.kind_of?(Hash)
290
+ opts[:reload_on_change]
291
+ else
292
+ opts
293
+ end
294
+ lines =
295
+ if file_or_script.kind_of?(String)
296
+ filename = unmap_file(file_or_script)
297
+ filename, line_number = unmap_file_line(filename, line_number)
298
+ getlines(filename, opts)
299
+ else
300
+ script_getlines(file_or_script)
301
+ end
190
302
  if lines and (1..lines.size) === line_number
191
303
  return lines[line_number-1]
192
304
  else
193
305
  return nil
194
306
  end
195
307
  end
196
- module_function :getline
197
308
 
198
309
  # Read lines of +filename+ and cache the results. However +filename+ was
199
310
  # previously cached use the results from the cache. Return nil
200
311
  # if we can't get lines
201
- def getlines(filename, reload_on_change=false)
202
- filename = unmap_file(filename)
312
+ def getlines(filename, opts=false)
313
+ if opts.kind_of?(Hash)
314
+ reload_on_change, use_script_lines =
315
+ [opts[:reload_on_change], opts[:use_script_lines]]
316
+ else
317
+ reload_on_change, use_script_lines = [opts, false]
318
+ opts = {:reload_on_change => reload_on_change}
319
+ end
203
320
  checkcache(filename) if reload_on_change
321
+ format = opts[:output] || :plain
204
322
  if @@file_cache.member?(filename)
205
- return @@file_cache[filename].lines
323
+ lines = @@file_cache[filename].lines
324
+ if opts[:output] && !lines[format]
325
+ lines[format] =
326
+ highlight_string(lines[:plain].join(''), format).split(/\n/)
327
+ end
328
+ return lines[format]
206
329
  else
207
- update_cache(filename, true)
208
- return @@file_cache[filename].lines if @@file_cache.member?(filename)
330
+ opts[:use_script_lines] = true
331
+ update_cache(filename, opts)
332
+ if @@file_cache.member?(filename)
333
+ return @@file_cache[filename].lines[format]
334
+ else
335
+ return nil
336
+ end
209
337
  end
210
338
  end
211
- module_function :getlines
339
+
340
+ def highlight_string(string, output_type)
341
+ require 'rubygems'
342
+ begin
343
+ require 'coderay'
344
+ require 'term/ansicolor'
345
+ rescue LoadError
346
+ return string
347
+ end
348
+ @@ruby_highlighter ||= CodeRay::Duo[:ruby, output_type]
349
+ @@ruby_highlighter.encode(string)
350
+ end
212
351
 
213
352
  # Return full filename path for filename
214
353
  def path(filename)
354
+ return unless filename.kind_of?(String)
215
355
  filename = unmap_file(filename)
216
356
  return nil unless @@file_cache.member?(filename)
217
357
  @@file_cache[filename].path
218
358
  end
219
- module_function :path
220
359
 
221
360
  def remap_file(from_file, to_file)
222
- @@file2file_remap[to_file] = from_file
361
+ @@file2file_remap[from_file] = to_file
362
+ cache_file(to_file)
223
363
  end
224
- module_function :remap_file
225
364
 
226
365
  def remap_file_lines(from_file, to_file, range, start)
227
- range = (range..range) if range.is_a?(Fixnum)
366
+ range = (range..range) if range.kind_of?(Fixnum)
228
367
  to_file = from_file unless to_file
229
368
  if @@file2file_remap_lines[to_file]
230
369
  # FIXME: need to check for overwriting ranges: whether
@@ -243,21 +382,25 @@ module LineCache
243
382
  return @@file_cache[filename].sha1.hexdigest if
244
383
  @@file_cache[filename].sha1
245
384
  sha1 = Digest::SHA1.new
246
- @@file_cache[filename].lines.each do |line|
247
- sha1 << line
385
+ @@file_cache[filename].lines[:plain].each do |line|
386
+ sha1 << line + "\n"
248
387
  end
249
388
  @@file_cache[filename].sha1 = sha1
250
389
  sha1.hexdigest
251
390
  end
252
- module_function :sha1
253
391
 
254
392
  # Return the number of lines in filename
255
- def size(filename)
256
- filename = unmap_file(filename)
257
- return nil unless @@file_cache.member?(filename)
258
- @@file_cache[filename].lines.length
393
+ def size(file_or_script)
394
+ cache(file_or_script)
395
+ if file_or_script.kind_of?(String)
396
+ file_or_script = unmap_file(file_or_script)
397
+ return nil unless @@file_cache.member?(file_or_script)
398
+ @@file_cache[file_or_script].lines[:plain].length
399
+ else
400
+ return nil unless @@script_cache.member?(file_or_script)
401
+ @@script_cache[file_or_script].lines[:plain].length
402
+ end
259
403
  end
260
- module_function :size
261
404
 
262
405
  # Return File.stat in the cache for filename.
263
406
  def stat(filename)
@@ -276,17 +419,16 @@ module LineCache
276
419
  e = @@file_cache[filename]
277
420
  unless e.line_numbers
278
421
  e.line_numbers =
279
- TraceLineNumbers.lnums_for_str_array(e.lines)
422
+ TraceLineNumbers.lnums_for_str_array(e.lines[:plain])
280
423
  e.line_numbers = false unless e.line_numbers
281
424
  end
282
425
  e.line_numbers
283
426
  end
284
- module_function :trace_line_numbers
285
427
 
286
428
  def unmap_file(file)
287
429
  @@file2file_remap[file] ? @@file2file_remap[file] : file
288
430
  end
289
- module_function :unmap_file
431
+ alias :map_file :unmap_file
290
432
 
291
433
  def unmap_file_line(file, line)
292
434
  if @@file2file_remap_lines[file]
@@ -299,13 +441,32 @@ module LineCache
299
441
  end
300
442
  return [file, line]
301
443
  end
302
- module_function :unmap_file_line
444
+
445
+ # Update a cache entry. If something is wrong, return nil. Return
446
+ # true if the cache was updated and false if not.
447
+ def update_script_cache(script, opts)
448
+ # return false unless script_is_eval?(script)
449
+ # string = opts[:string] || script.eval_source
450
+ lines = {:plain => string.split(/\n/)}
451
+ lines[opts[:output]] = highlight_string(string, opts[:output]) if
452
+ opts[:output]
453
+ @@script_cache[script] =
454
+ LineCacheInfo.new(nil, nil, lines, nil, opts[:sha1],
455
+ opts[:compiled_method])
456
+ return true
457
+ end
303
458
 
304
459
  # Update a cache entry. If something's
305
460
  # wrong, return nil. Return true if the cache was updated and false
306
461
  # if not. If use_script_lines is true, use that as the source for the
307
462
  # lines of the file
308
- def update_cache(filename, use_script_lines=false)
463
+ def update_cache(filename, opts=false)
464
+ if opts.kind_of?(Hash)
465
+ use_script_lines = opts[:use_script_lines]
466
+ else
467
+ use_script_lines = opts
468
+ opts = {:use_script_lines => use_script_lines}
469
+ end
309
470
 
310
471
  return nil unless filename
311
472
 
@@ -322,7 +483,11 @@ module LineCache
322
483
  rescue
323
484
  stat = nil
324
485
  end
325
- lines = SCRIPT_LINES__[name]
486
+ raw_lines = SCRIPT_LINES__[name]
487
+ lines = {:plain => raw_lines}
488
+ lines[opts[:output]] =
489
+ highlight_string(raw_lines.join, opts[:output]).split(/\n/) if
490
+ opts[:output]
326
491
  @@file_cache[filename] = LineCacheInfo.new(stat, nil, lines, path, nil)
327
492
  @@file2file_remap[path] = filename
328
493
  return true
@@ -346,8 +511,13 @@ module LineCache
346
511
  end
347
512
  begin
348
513
  fp = File.open(path, 'r')
349
- lines = fp.readlines()
514
+ raw_string = fp.read
515
+ fp.rewind
516
+ lines = {:plain => fp.readlines}
350
517
  fp.close()
518
+ lines[opts[:output]] =
519
+ highlight_string(raw_string, opts[:output]).split(/\n/) if
520
+ opts[:output]
351
521
  rescue
352
522
  ## print '*** cannot open', path, ':', msg
353
523
  return nil
@@ -358,8 +528,6 @@ module LineCache
358
528
  return true
359
529
  end
360
530
 
361
- module_function :update_cache
362
-
363
531
  end
364
532
 
365
533
  # example usage
File without changes
@@ -0,0 +1,3 @@
1
+ module LineCache
2
+ VERSION = '0.45'
3
+ end
File without changes
File without changes
File without changes
@@ -127,7 +127,7 @@ class TestLineCache < Test::Unit::TestCase
127
127
 
128
128
  def test_path
129
129
  assert_equal(nil, LineCache::path(__FILE__),
130
- "path for #{__FILE__} shouldn't be nil - just cleared cache.")
130
+ "path for #{__FILE__} should be nil - just cleared cache.")
131
131
  path = LineCache::cache(__FILE__)
132
132
  assert path
133
133
  assert_equal(path, LineCache::path(__FILE__),
@@ -144,7 +144,7 @@ class TestLineCache < Test::Unit::TestCase
144
144
  def test_sha1
145
145
  test_file = File.join(@@TEST_DIR, 'short-file')
146
146
  LineCache::cache(test_file)
147
- assert_equal('1134f95ea84a3dcc67d7d1bf41390ee1a03af6d2',
147
+ assert_equal('3e1d87f3399fc73ae5683e106bce1b5ba823fc50',
148
148
  LineCache::sha1(test_file))
149
149
  end
150
150
 
File without changes
File without changes
metadata CHANGED
@@ -1,33 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: linecache
5
3
  version: !ruby/object:Gem::Version
6
- version: "0.43"
7
- date: 2008-06-12 00:00:00 -04:00
8
- summary: Read file with caching
9
- require_paths:
10
- - lib
11
- email: rockyb@rubyforge.net
12
- homepage: http://rubyforge.org/projects/rocky-hacks/linecache
13
- rubyforge_project: rocky-hacks
14
- description: LineCache is a module for reading and caching lines. This may be useful for example in a debugger where the same lines are shown many times.
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.8.2
24
- version:
4
+ hash: 81
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 45
9
+ version: "0.45"
25
10
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
11
  authors:
30
12
  - R. Bernstein
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-06-11 00:00:00 -04:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: |
22
+ LineCache is a module for reading and caching lines. This may be useful for
23
+ example in a debugger where the same lines are shown many times.
24
+
25
+ email: rockyb@rubyforge.net
26
+ executables: []
27
+
28
+ extensions:
29
+ - ext/extconf.rb
30
+ extra_rdoc_files:
31
+ - README
32
+ - lib/linecache.rb
33
+ - lib/tracelines.rb
31
34
  files:
32
35
  - AUTHORS
33
36
  - COPYING
@@ -35,64 +38,86 @@ files:
35
38
  - NEWS
36
39
  - README
37
40
  - Rakefile
38
- - VERSION
39
41
  - ext/trace_nums.c
40
42
  - ext/trace_nums.h
41
43
  - ext/extconf.rb
44
+ - lib/version.rb
42
45
  - lib/tracelines.rb
43
46
  - lib/linecache.rb
47
+ - test/parse-show.rb
48
+ - test/lnum-diag.rb
44
49
  - test/rcov-bug.rb
45
- - test/test-tracelines.rb
46
50
  - test/test-lnum.rb
47
51
  - test/test-linecache.rb
48
- - test/parse-show.rb
49
- - test/lnum-diag.rb
50
- - test/data/for1.rb
51
- - test/data/if6.rb
52
+ - test/test-tracelines.rb
53
+ - test/data/if1.rb
52
54
  - test/data/comments1.rb
53
- - test/data/if3.rb
54
- - test/data/if5.rb
55
- - test/data/begin3.rb
56
- - test/data/end.rb
57
- - test/data/case1.rb
58
- - test/data/match.rb
59
- - test/data/begin2.rb
60
- - test/data/match3.rb
61
- - test/data/case5.rb
62
55
  - test/data/not-lit.rb
63
- - test/data/match3a.rb
64
- - test/data/if7.rb
65
- - test/data/if4.rb
66
- - test/data/case2.rb
56
+ - test/data/begin2.rb
67
57
  - test/data/block2.rb
58
+ - test/data/if6.rb
59
+ - test/data/end.rb
60
+ - test/data/case4.rb
68
61
  - test/data/begin1.rb
69
- - test/data/def1.rb
70
- - test/data/if1.rb
62
+ - test/data/for1.rb
63
+ - test/data/match.rb
64
+ - test/data/match3a.rb
71
65
  - test/data/class1.rb
72
- - test/data/if2.rb
66
+ - test/data/if3.rb
67
+ - test/data/if5.rb
68
+ - test/data/case1.rb
69
+ - test/data/def1.rb
70
+ - test/data/if7.rb
73
71
  - test/data/block1.rb
72
+ - test/data/begin3.rb
74
73
  - test/data/case3.rb
74
+ - test/data/case2.rb
75
75
  - test/data/each1.rb
76
- - test/data/case4.rb
76
+ - test/data/if2.rb
77
+ - test/data/match3.rb
78
+ - test/data/if4.rb
79
+ - test/data/case5.rb
77
80
  - test/short-file
78
- test_files:
79
- - test/rcov-bug.rb
80
- - test/test-tracelines.rb
81
- - test/test-lnum.rb
82
- - test/test-linecache.rb
83
- - test/parse-show.rb
84
- - test/lnum-diag.rb
85
- rdoc_options: []
81
+ has_rdoc: true
82
+ homepage: http://rubyforge.org/projects/rocky-hacks/linecache
83
+ licenses: []
86
84
 
87
- extra_rdoc_files:
88
- - README
89
- - lib/linecache.rb
90
- - lib/tracelines.rb
91
- executables: []
85
+ post_install_message:
86
+ rdoc_options: []
92
87
 
93
- extensions:
94
- - ext/extconf.rb
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ hash: 51
96
+ segments:
97
+ - 1
98
+ - 8
99
+ - 2
100
+ version: 1.8.2
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
95
110
  requirements: []
96
111
 
97
- dependencies: []
98
-
112
+ rubyforge_project: rocky-hacks
113
+ rubygems_version: 1.6.1
114
+ signing_key:
115
+ specification_version: 3
116
+ summary: Read file with caching
117
+ test_files:
118
+ - test/parse-show.rb
119
+ - test/lnum-diag.rb
120
+ - test/rcov-bug.rb
121
+ - test/test-lnum.rb
122
+ - test/test-linecache.rb
123
+ - test/test-tracelines.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.43