linecache-tf 1.0 → 1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +533 -245
- data/NEWS +14 -5
- data/README +1 -1
- data/Rakefile +6 -6
- data/lib/linecache.rb +56 -53
- data/lib/tracelines.rb +1 -1
- data/test/test-tracelines.rb +1 -1
- metadata +67 -78
data/NEWS
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
tf-1.2
|
2
|
+
Nov 20, 2014
|
3
|
+
- Handle UTF-8, update rake task for this year's way to do the same thing
|
4
|
+
|
5
|
+
|
6
|
+
tf-1.0
|
7
|
+
Feb 1, 2011
|
8
|
+
- Add syntax highlight caching
|
9
|
+
|
1
10
|
tf-0.45
|
2
11
|
Dec 10, 2010 Phel. Mad. Release
|
3
12
|
- Work on iseq caching.
|
@@ -12,7 +21,7 @@ Sept 13, 2010
|
|
12
21
|
06-12-08
|
13
22
|
- tolerance for finding windows extension in lib rather than ext.
|
14
23
|
|
15
|
-
0.41
|
24
|
+
0.41
|
16
25
|
- add test/data/* to gem.
|
17
26
|
|
18
27
|
0.4
|
@@ -21,15 +30,15 @@ Sept 13, 2010
|
|
21
30
|
0.3
|
22
31
|
- Add tracelines: get line numbers that can be stopped at.
|
23
32
|
|
24
|
-
- Add routines to allow line-number
|
25
|
-
remapping and filename remapping.
|
33
|
+
- Add routines to allow line-number
|
34
|
+
remapping and filename remapping.
|
26
35
|
|
27
36
|
- Add access methods to get the number of lines in a file.
|
28
37
|
|
29
38
|
0.2
|
30
39
|
- Make this work with ruby-debug-base. Add reload-on-change parameters.
|
31
|
-
add checkcache, cache, cached? sha1, and stat methods.
|
32
|
-
|
40
|
+
add checkcache, cache, cached? sha1, and stat methods.
|
41
|
+
|
33
42
|
- Use SCRIPT_LINES__.
|
34
43
|
|
35
44
|
0.1
|
data/README
CHANGED
data/Rakefile
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
# -*- Ruby -*-
|
3
3
|
require 'rubygems'
|
4
|
-
require 'rake/gempackagetask'
|
5
|
-
require 'rake/rdoctask'
|
6
4
|
require 'rake/testtask'
|
7
5
|
require 'fileutils'
|
8
6
|
|
@@ -13,20 +11,21 @@ def gemspec
|
|
13
11
|
@gemspec ||= eval(File.read('.gemspec'), binding, '.gemspec')
|
14
12
|
end
|
15
13
|
|
14
|
+
require 'rubygems/package_task'
|
16
15
|
desc "Build the gem"
|
17
16
|
task :package=>:gem
|
18
17
|
task :gem=>:gemspec do
|
19
18
|
Dir.chdir(ROOT_DIR) do
|
20
19
|
sh "gem build .gemspec"
|
21
20
|
FileUtils.mkdir_p 'pkg'
|
22
|
-
FileUtils.mv
|
21
|
+
FileUtils.mv("#{gemspec.file_name}", "pkg/")
|
23
22
|
end
|
24
23
|
end
|
25
24
|
|
26
25
|
desc "Install the gem locally"
|
27
26
|
task :install => :gem do
|
28
27
|
Dir.chdir(ROOT_DIR) do
|
29
|
-
sh %{gem install --local pkg/#{gemspec.
|
28
|
+
sh %{gem install --local pkg/#{gemspec.file_name}}
|
30
29
|
end
|
31
30
|
end
|
32
31
|
|
@@ -34,7 +33,7 @@ desc "Test everything"
|
|
34
33
|
Rake::TestTask.new(:test) do |t|
|
35
34
|
t.libs << './lib'
|
36
35
|
t.pattern = 'test/test-*.rb'
|
37
|
-
t.
|
36
|
+
t.options = '--verbose' if $VERBOSE
|
38
37
|
end
|
39
38
|
task :test => :lib
|
40
39
|
|
@@ -43,7 +42,7 @@ task :check => :test
|
|
43
42
|
|
44
43
|
desc "Create a GNU-style ChangeLog via svn2cl"
|
45
44
|
task :ChangeLog do
|
46
|
-
system(
|
45
|
+
system('git log --pretty --numstat --summary | git2cl > ChangeLog')
|
47
46
|
end
|
48
47
|
|
49
48
|
task :default => [:test]
|
@@ -62,6 +61,7 @@ task :gemspec do
|
|
62
61
|
end
|
63
62
|
|
64
63
|
# --------- RDoc Documentation ------
|
64
|
+
require 'rdoc/task'
|
65
65
|
desc "Generate rdoc documentation"
|
66
66
|
Rake::RDocTask.new("rdoc") do |rdoc|
|
67
67
|
rdoc.rdoc_dir = 'doc'
|
data/lib/linecache.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# Copyright (C) 2007,
|
2
|
+
# Copyright (C) 2007-2011, 2014 Rocky Bernstein
|
3
3
|
# <rockyb@rubyforge.net>
|
4
4
|
#
|
5
5
|
# This program is free software; you can redistribute it and/or modify
|
@@ -21,12 +21,12 @@
|
|
21
21
|
# Author:: Rocky Bernstein (mailto:rockyb@rubyforge.net)
|
22
22
|
#
|
23
23
|
# = linecache
|
24
|
-
# A module to read and cache lines of a Ruby program.
|
24
|
+
# A module to read and cache lines of a Ruby program.
|
25
25
|
|
26
26
|
# == SYNOPSIS
|
27
27
|
#
|
28
28
|
# The LineCache module allows one to get any line from any file,
|
29
|
-
# caching lines of the file on first access to the file. Although the
|
29
|
+
# caching lines of the file on first access to the file. Although the
|
30
30
|
# file may be any file, the common use is when the file is a Ruby
|
31
31
|
# script since parsing of the file is done to figure out where the
|
32
32
|
# statement boundaries are.
|
@@ -59,23 +59,26 @@
|
|
59
59
|
# and never destroys SCRIPT_LINES__
|
60
60
|
SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__
|
61
61
|
|
62
|
+
Encoding.default_external = Encoding::UTF_8
|
63
|
+
Encoding.default_internal = Encoding::UTF_8
|
64
|
+
|
62
65
|
require 'tempfile'
|
63
66
|
require 'digest/sha1'
|
64
67
|
require 'set'
|
65
68
|
require_relative 'tracelines'
|
66
69
|
|
67
70
|
# = module LineCache
|
68
|
-
# A module to read and cache lines of a Ruby program.
|
71
|
+
# A module to read and cache lines of a Ruby program.
|
69
72
|
module LineCache
|
70
|
-
VERSION = '1.
|
73
|
+
VERSION = '1.2'
|
71
74
|
LineCacheInfo = Struct.new(:stat, :line_numbers, :lines, :path, :sha1) unless
|
72
75
|
defined?(LineCacheInfo)
|
73
|
-
|
74
|
-
# The file cache. The key is a name as would be given by Ruby for
|
75
|
-
# __FILE__. The value is a LineCacheInfo object.
|
76
|
-
@@file_cache = {}
|
77
|
-
@@iseq_cache = {}
|
78
|
-
|
76
|
+
|
77
|
+
# The file cache. The key is a name as would be given by Ruby for
|
78
|
+
# __FILE__. The value is a LineCacheInfo object.
|
79
|
+
@@file_cache = {}
|
80
|
+
@@iseq_cache = {}
|
81
|
+
|
79
82
|
# Used for CodeRay syntax highlighting
|
80
83
|
@@ruby_highlighter = nil
|
81
84
|
|
@@ -91,10 +94,10 @@ module LineCache
|
|
91
94
|
# Another related use is when a template system is used. Here we'll
|
92
95
|
# probably want to remap not only the file name but also line
|
93
96
|
# ranges. Will probably use this for that, but I'm not sure.
|
94
|
-
@@file2file_remap = {}
|
97
|
+
@@file2file_remap = {}
|
95
98
|
@@file2file_remap_lines = {}
|
96
99
|
|
97
|
-
@@iseq2file = {}
|
100
|
+
@@iseq2file = {}
|
98
101
|
|
99
102
|
module_function
|
100
103
|
|
@@ -105,10 +108,10 @@ module LineCache
|
|
105
108
|
end
|
106
109
|
at_exit { remove_iseq_temps }
|
107
110
|
|
108
|
-
|
111
|
+
|
109
112
|
# Remove syntax-formatted lines in the cache. Use this
|
110
113
|
# when you change the CodeRay syntax or Token formatting
|
111
|
-
# and want to redo how files may have previously been
|
114
|
+
# and want to redo how files may have previously been
|
112
115
|
# syntax marked.
|
113
116
|
def clear_file_format_cache
|
114
117
|
@@file_cache.each_pair do |fname, cache_info|
|
@@ -121,7 +124,7 @@ module LineCache
|
|
121
124
|
|
122
125
|
# Clear the file cache entirely.
|
123
126
|
def clear_file_cache(filename=nil)
|
124
|
-
if filename
|
127
|
+
if filename
|
125
128
|
if @@file_cache[filename]
|
126
129
|
@@file_cache.delete(filename)
|
127
130
|
end
|
@@ -150,7 +153,7 @@ module LineCache
|
|
150
153
|
# is found, it will be kept. Return a list of invalidated filenames.
|
151
154
|
# nil is returned if a filename was given but not found cached.
|
152
155
|
def checkcache(filename=nil, opts={})
|
153
|
-
|
156
|
+
|
154
157
|
if !filename
|
155
158
|
filenames = @@file_cache.keys()
|
156
159
|
elsif @@file_cache.member?(filename)
|
@@ -167,7 +170,7 @@ module LineCache
|
|
167
170
|
cache_info = @@file_cache[filename].stat
|
168
171
|
stat = File.stat(path)
|
169
172
|
if cache_info
|
170
|
-
if stat &&
|
173
|
+
if stat &&
|
171
174
|
(cache_info.size != stat.size or cache_info.mtime != stat.mtime)
|
172
175
|
result << filename
|
173
176
|
update_cache(filename, opts)
|
@@ -217,12 +220,12 @@ module LineCache
|
|
217
220
|
nil
|
218
221
|
end
|
219
222
|
end
|
220
|
-
|
223
|
+
|
221
224
|
# Return true if file_or_iseq is cached
|
222
225
|
def cached?(file_or_iseq)
|
223
|
-
if file_or_iseq.kind_of?(String)
|
226
|
+
if file_or_iseq.kind_of?(String)
|
224
227
|
@@file_cache.member?(map_file(file_or_iseq))
|
225
|
-
else
|
228
|
+
else
|
226
229
|
cached_iseq?(file_or_iseq)
|
227
230
|
end
|
228
231
|
end
|
@@ -232,7 +235,7 @@ module LineCache
|
|
232
235
|
SCRIPT_LINES__.member?(map_file(filename))
|
233
236
|
end
|
234
237
|
module_function :cached_script?
|
235
|
-
|
238
|
+
|
236
239
|
def empty?(filename)
|
237
240
|
filename=map_file(filename)
|
238
241
|
@@file_cache[filename].lines.empty?
|
@@ -242,16 +245,16 @@ module LineCache
|
|
242
245
|
# Get line +line_number+ from file named +filename+. Return nil if
|
243
246
|
# there was a problem. If a file named filename is not found, the
|
244
247
|
# function will look for it in the $: array.
|
245
|
-
#
|
248
|
+
#
|
246
249
|
# Examples:
|
247
|
-
#
|
250
|
+
#
|
248
251
|
# lines = LineCache::getline('/tmp/myfile.rb')
|
249
252
|
# # Same as above
|
250
253
|
# $: << '/tmp'
|
251
254
|
# lines = LineCache.getlines('myfile.rb')
|
252
255
|
#
|
253
256
|
def getline(file_or_iseq, line_number, opts={})
|
254
|
-
lines =
|
257
|
+
lines =
|
255
258
|
if file_or_iseq.kind_of?(String)
|
256
259
|
filename = map_file(file_or_iseq)
|
257
260
|
filename, line_number = map_file_line(filename, line_number)
|
@@ -272,7 +275,7 @@ module LineCache
|
|
272
275
|
def iseq_getlines(iseq, opts={})
|
273
276
|
return nil unless iseq.kind_of? RubyVM::InstructionSequence
|
274
277
|
format = opts[:output] || :plain
|
275
|
-
line_formats =
|
278
|
+
line_formats =
|
276
279
|
if @@iseq_cache.member?(iseq)
|
277
280
|
@@iseq_cache[iseq].lines
|
278
281
|
else
|
@@ -301,7 +304,7 @@ module LineCache
|
|
301
304
|
if @@file_cache.member?(filename)
|
302
305
|
lines = @@file_cache[filename].lines
|
303
306
|
if opts[:output] && !lines[format]
|
304
|
-
lines[format] =
|
307
|
+
lines[format] =
|
305
308
|
highlight_string(lines[:plain].join(''), format).split(/\n/)
|
306
309
|
end
|
307
310
|
return lines[format]
|
@@ -343,7 +346,7 @@ module LineCache
|
|
343
346
|
def remap_file_lines(from_file, to_file, range, start)
|
344
347
|
range = (range..range) if range.kind_of?(Fixnum)
|
345
348
|
to_file = from_file unless to_file
|
346
|
-
if @@file2file_remap_lines[to_file]
|
349
|
+
if @@file2file_remap_lines[to_file]
|
347
350
|
# FIXME: need to check for overwriting ranges: whether
|
348
351
|
# they intersect or one encompasses another.
|
349
352
|
@@file2file_remap_lines[to_file] << [from_file, range, start]
|
@@ -351,12 +354,12 @@ module LineCache
|
|
351
354
|
@@file2file_remap_lines[to_file] = [[from_file, range, start]]
|
352
355
|
end
|
353
356
|
end
|
354
|
-
|
357
|
+
|
355
358
|
# Return SHA1 of filename.
|
356
359
|
def sha1(filename)
|
357
360
|
filename = map_file(filename)
|
358
361
|
return nil unless @@file_cache.member?(filename)
|
359
|
-
return @@file_cache[filename].sha1.hexdigest if
|
362
|
+
return @@file_cache[filename].sha1.hexdigest if
|
360
363
|
@@file_cache[filename].sha1
|
361
364
|
sha1 = Digest::SHA1.new
|
362
365
|
@@file_cache[filename].lines[:plain].each do |line|
|
@@ -365,7 +368,7 @@ module LineCache
|
|
365
368
|
@@file_cache[filename].sha1 = sha1
|
366
369
|
sha1.hexdigest
|
367
370
|
end
|
368
|
-
|
371
|
+
|
369
372
|
# Return the number of lines in filename
|
370
373
|
def size(file_or_iseq)
|
371
374
|
cache(file_or_iseq)
|
@@ -396,21 +399,21 @@ module LineCache
|
|
396
399
|
return nil unless fullname
|
397
400
|
e = @@file_cache[filename]
|
398
401
|
unless e.line_numbers
|
399
|
-
e.line_numbers =
|
402
|
+
e.line_numbers =
|
400
403
|
TraceLineNumbers.lnums_for_str_array(e.lines[:plain])
|
401
404
|
e.line_numbers = false unless e.line_numbers
|
402
405
|
end
|
403
406
|
e.line_numbers
|
404
407
|
end
|
405
|
-
|
408
|
+
|
406
409
|
def map_file(file)
|
407
410
|
@@file2file_remap[file] ? @@file2file_remap[file] : file
|
408
411
|
end
|
409
412
|
|
410
413
|
def map_iseq(iseq)
|
411
|
-
if @@iseq2file[iseq]
|
412
|
-
@@iseq2file[iseq]
|
413
|
-
else
|
414
|
+
if @@iseq2file[iseq]
|
415
|
+
@@iseq2file[iseq]
|
416
|
+
else
|
414
417
|
# Doc says there's new takes an optional string parameter
|
415
418
|
# But it doesn't work for me
|
416
419
|
sha1 = Digest::SHA1.new
|
@@ -428,8 +431,8 @@ module LineCache
|
|
428
431
|
if @@file2file_remap_lines[file]
|
429
432
|
@@file2file_remap_lines[file].each do |from_file, range, start|
|
430
433
|
if range === line
|
431
|
-
from_file = from_file || file
|
432
|
-
return [from_file, start+line-range.begin]
|
434
|
+
from_file = from_file || file
|
435
|
+
return [from_file, start+line-range.begin]
|
433
436
|
end
|
434
437
|
end
|
435
438
|
end
|
@@ -443,14 +446,14 @@ module LineCache
|
|
443
446
|
module_function :iseq_is_eval?
|
444
447
|
|
445
448
|
# Update a cache entry. If something is wrong, return nil. Return
|
446
|
-
# true if the cache was updated and false if not.
|
449
|
+
# true if the cache was updated and false if not.
|
447
450
|
def update_iseq_cache(iseq, opts)
|
448
451
|
return false unless iseq_is_eval?(iseq)
|
449
452
|
string = opts[:string] || iseq.eval_source
|
450
453
|
lines = {:plain => string.split(/\n/)}
|
451
454
|
lines[opts[:output]] = highlight_string(string, opts[:output]) if
|
452
455
|
opts[:output]
|
453
|
-
@@iseq_cache[iseq] =
|
456
|
+
@@iseq_cache[iseq] =
|
454
457
|
LineCacheInfo.new(nil, nil, lines, nil, opts[:sha1])
|
455
458
|
return true
|
456
459
|
end
|
@@ -465,7 +468,7 @@ module LineCache
|
|
465
468
|
|
466
469
|
@@file_cache.delete(filename)
|
467
470
|
path = File.expand_path(filename)
|
468
|
-
|
471
|
+
|
469
472
|
if File.exist?(path)
|
470
473
|
stat = File.stat(path)
|
471
474
|
elsif File.basename(filename) == filename
|
@@ -486,10 +489,10 @@ module LineCache
|
|
486
489
|
fp.rewind
|
487
490
|
lines = {:plain => fp.readlines}
|
488
491
|
fp.close()
|
489
|
-
lines[opts[:output]] =
|
490
|
-
highlight_string(raw_string, opts[:output]).split(/\n/) if
|
492
|
+
lines[opts[:output]] =
|
493
|
+
highlight_string(raw_string, opts[:output]).split(/\n/) if
|
491
494
|
opts[:output]
|
492
|
-
rescue
|
495
|
+
rescue
|
493
496
|
## print '*** cannot open', path, ':', msg
|
494
497
|
return nil
|
495
498
|
end
|
@@ -501,15 +504,15 @@ module LineCache
|
|
501
504
|
end
|
502
505
|
|
503
506
|
# example usage
|
504
|
-
if __FILE__ == $0
|
505
|
-
def yes_no(var)
|
507
|
+
if __FILE__ == $0
|
508
|
+
def yes_no(var)
|
506
509
|
return var ? "" : "not "
|
507
510
|
end
|
508
511
|
|
509
512
|
lines = LineCache::getlines(__FILE__)
|
510
513
|
puts "#{__FILE__} has #{LineCache.size(__FILE__)} lines"
|
511
514
|
line = LineCache::getline(__FILE__, 6)
|
512
|
-
puts "The 6th line is\n#{line}"
|
515
|
+
puts "The 6th line is\n#{line}"
|
513
516
|
line = LineCache::remap_file(__FILE__, 'another_name')
|
514
517
|
puts LineCache::getline('another_name', 7)
|
515
518
|
|
@@ -517,23 +520,23 @@ if __FILE__ == $0
|
|
517
520
|
LineCache::update_cache(__FILE__)
|
518
521
|
LineCache::checkcache(__FILE__)
|
519
522
|
puts "#{__FILE__} has #{LineCache::size(__FILE__)} lines"
|
520
|
-
puts "#{__FILE__} trace line numbers:\n" +
|
523
|
+
puts "#{__FILE__} trace line numbers:\n" +
|
521
524
|
"#{LineCache::trace_line_numbers(__FILE__).to_a.sort.inspect}"
|
522
|
-
puts("#{__FILE__} is %scached." %
|
525
|
+
puts("#{__FILE__} is %scached." %
|
523
526
|
yes_no(LineCache::cached?(__FILE__)))
|
524
527
|
puts LineCache::stat(__FILE__).inspect
|
525
528
|
puts "Full path: #{LineCache::path(__FILE__)}"
|
526
529
|
LineCache::checkcache # Check all files in the cache
|
527
|
-
LineCache::clear_file_cache
|
528
|
-
puts("#{__FILE__} is now %scached." %
|
530
|
+
LineCache::clear_file_cache
|
531
|
+
puts("#{__FILE__} is now %scached." %
|
529
532
|
yes_no(LineCache::cached?(__FILE__)))
|
530
533
|
digest = SCRIPT_LINES__.select{|k,v| k =~ /digest.rb$/}
|
531
534
|
puts digest.first[0] if digest
|
532
535
|
line = LineCache::getline(__FILE__, 7)
|
533
|
-
puts "The 7th line is\n#{line}"
|
536
|
+
puts "The 7th line is\n#{line}"
|
534
537
|
LineCache::remap_file_lines(__FILE__, 'test2', (10..20), 6)
|
535
538
|
puts LineCache::getline('test2', 10)
|
536
|
-
puts "Remapped 10th line of test2 is\n#{line}"
|
539
|
+
puts "Remapped 10th line of test2 is\n#{line}"
|
537
540
|
require 'thread_frame'
|
538
541
|
puts eval("x=1
|
539
542
|
LineCache::getline(RubyVM::ThreadFrame.current.iseq, 1)")
|
data/lib/tracelines.rb
CHANGED
data/test/test-tracelines.rb
CHANGED
metadata
CHANGED
@@ -1,51 +1,49 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: linecache-tf
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 0
|
8
|
-
version: "1.0"
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '1.2'
|
5
|
+
prerelease:
|
9
6
|
platform: ruby
|
10
|
-
authors:
|
7
|
+
authors:
|
11
8
|
- R. Bernstein
|
12
9
|
autorequire:
|
13
10
|
bindir: bin
|
14
11
|
cert_chain: []
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
dependencies:
|
19
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2014-11-20 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
20
15
|
name: rb-threadframe
|
21
|
-
|
22
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
23
17
|
none: false
|
24
|
-
requirements:
|
25
|
-
- -
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
- 0
|
29
|
-
- 32
|
30
|
-
version: "0.32"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.32'
|
31
22
|
type: :runtime
|
32
|
-
|
33
|
-
|
34
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.32'
|
30
|
+
description: ! 'LineCache is a module for reading and caching lines. This may be useful
|
31
|
+
for
|
32
|
+
|
35
33
|
example in a debugger where the same lines are shown many times.
|
36
|
-
|
37
|
-
This version works only with a patched version of Ruby 1.9.2 and rb-threadframe.
|
38
34
|
|
35
|
+
|
36
|
+
This version works only with a patched version of Ruby 1.9.2 or 1.9.3 and rb-threadframe.
|
37
|
+
|
38
|
+
'
|
39
39
|
email: rockyb@rubyforge.net
|
40
40
|
executables: []
|
41
|
-
|
42
41
|
extensions: []
|
43
|
-
|
44
|
-
extra_rdoc_files:
|
42
|
+
extra_rdoc_files:
|
45
43
|
- README
|
46
44
|
- lib/linecache.rb
|
47
45
|
- lib/tracelines.rb
|
48
|
-
files:
|
46
|
+
files:
|
49
47
|
- AUTHORS
|
50
48
|
- COPYING
|
51
49
|
- ChangeLog
|
@@ -54,76 +52,67 @@ files:
|
|
54
52
|
- Rakefile
|
55
53
|
- lib/linecache.rb
|
56
54
|
- lib/tracelines.rb
|
57
|
-
- test/test-lnum.rb
|
58
|
-
- test/test-tracelines.rb
|
59
|
-
- test/parse-show.rb
|
60
|
-
- test/test-linecache.rb
|
61
55
|
- test/lnum-diag.rb
|
56
|
+
- test/parse-show.rb
|
62
57
|
- test/rcov-bug.rb
|
63
|
-
- test/
|
58
|
+
- test/test-linecache.rb
|
59
|
+
- test/test-lnum.rb
|
60
|
+
- test/test-tracelines.rb
|
64
61
|
- test/data/end.rb
|
65
|
-
- test/data/if6.rb
|
66
|
-
- test/data/begin3.rb
|
67
|
-
- test/data/if3.rb
|
68
|
-
- test/data/block2.rb
|
69
|
-
- test/data/case2.rb
|
70
|
-
- test/data/begin2.rb
|
71
62
|
- test/data/each1.rb
|
72
|
-
- test/data/
|
73
|
-
- test/data/case4.rb
|
74
|
-
- test/data/if5.rb
|
75
|
-
- test/data/if7.rb
|
63
|
+
- test/data/not-lit.rb
|
76
64
|
- test/data/match.rb
|
77
|
-
- test/data/
|
65
|
+
- test/data/begin1.rb
|
66
|
+
- test/data/begin2.rb
|
67
|
+
- test/data/begin3.rb
|
68
|
+
- test/data/block1.rb
|
69
|
+
- test/data/block2.rb
|
78
70
|
- test/data/case1.rb
|
71
|
+
- test/data/case2.rb
|
79
72
|
- test/data/case3.rb
|
80
|
-
- test/data/
|
81
|
-
- test/data/
|
73
|
+
- test/data/case4.rb
|
74
|
+
- test/data/case5.rb
|
82
75
|
- test/data/class1.rb
|
83
|
-
- test/data/not-lit.rb
|
84
76
|
- test/data/comments1.rb
|
77
|
+
- test/data/def1.rb
|
78
|
+
- test/data/for1.rb
|
85
79
|
- test/data/if1.rb
|
86
|
-
- test/data/
|
87
|
-
- test/data/
|
80
|
+
- test/data/if2.rb
|
81
|
+
- test/data/if3.rb
|
82
|
+
- test/data/if4.rb
|
83
|
+
- test/data/if5.rb
|
84
|
+
- test/data/if6.rb
|
85
|
+
- test/data/if7.rb
|
88
86
|
- test/data/match3.rb
|
89
|
-
- test/data/
|
87
|
+
- test/data/match3a.rb
|
90
88
|
- test/short-file
|
91
|
-
has_rdoc: true
|
92
89
|
homepage: http://rubyforge.org/projects/rocky-hacks/linecache
|
93
|
-
licenses:
|
90
|
+
licenses:
|
94
91
|
- GPL2
|
95
92
|
post_install_message:
|
96
|
-
rdoc_options:
|
93
|
+
rdoc_options:
|
97
94
|
- --main
|
98
95
|
- README
|
99
96
|
- --title
|
100
|
-
- LineCache 1.
|
101
|
-
require_paths:
|
97
|
+
- LineCache 1.2 Documentation
|
98
|
+
require_paths:
|
102
99
|
- lib
|
103
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
101
|
none: false
|
105
|
-
requirements:
|
106
|
-
- -
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
segments:
|
109
|
-
- 1
|
110
|
-
- 9
|
111
|
-
- 2
|
102
|
+
requirements:
|
103
|
+
- - ! '>='
|
104
|
+
- !ruby/object:Gem::Version
|
112
105
|
version: 1.9.2
|
113
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
107
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
- 0
|
120
|
-
version: "0"
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
121
112
|
requirements: []
|
122
|
-
|
123
|
-
|
124
|
-
rubygems_version: 1.3.7
|
113
|
+
rubyforge_project: rocky-hacks
|
114
|
+
rubygems_version: 1.8.23
|
125
115
|
signing_key:
|
126
116
|
specification_version: 3
|
127
|
-
summary: Module to
|
117
|
+
summary: Module to read and cache Ruby program files and file information
|
128
118
|
test_files: []
|
129
|
-
|