linecache-tf 0.44 → 0.45

Sign up to get free protection for your applications and to get access to all the features.
Files changed (7) hide show
  1. data/ChangeLog +39 -0
  2. data/NEWS +6 -0
  3. data/Rakefile +55 -106
  4. data/lib/linecache.rb +135 -42
  5. data/test/test-linecache.rb +17 -1
  6. metadata +15 -18
  7. data/VERSION +0 -1
data/ChangeLog CHANGED
@@ -1,3 +1,42 @@
1
+ 2010-11-26 04:27 Rocky Bernstein
2
+
3
+ * .gemspec: Don't use lib/version.rb any more. Also rvm lists Ruby
4
+ as 1.9.2-nframe no just 1.9.2.
5
+
6
+ 2010-11-26 02:23 Rocky Bernstein
7
+
8
+ * lib/linecache.rb: Work more on iseq caching.
9
+
10
+ 2010-11-26 02:01 Rocky Bernstein
11
+
12
+ * Rakefile, lib/linecache.rb, lib/version.rb,
13
+ test/test-linecache.rb: Pick up version from LineCache module.
14
+ Include "\n" in sha1 calculation. Start work on iseq caching.
15
+
16
+ 2010-09-22 17:00 Rocky Bernstein
17
+
18
+ * Rakefile: Correct suspicious test task so it doesn't modify
19
+ itself.
20
+
21
+ 2010-09-21 21:12 Rocky Bernstein
22
+
23
+ * .gemspec, Rakefile: Title on RDOC referred to wrong package
24
+
25
+ 2010-09-21 04:13 Rocky Bernstein
26
+
27
+ * .gemspec: Testing for wrong constant.
28
+
29
+ 2010-09-21 00:47 Rocky Bernstein
30
+
31
+ * Rakefile: Small tweaks to Rakefile building on previous stuff
32
+
33
+ 2010-09-20 23:13 Rocky Bernstein
34
+
35
+ * .gemspec, ChangeLog, Makefile, Rakefile, VERSION, lib/Makefile,
36
+ lib/linecache.rb, lib/version.rb: Administrivia: Add gemspec
37
+ file, simplify Rakefile. Add Makefile for compatibility for us
38
+ old farts.
39
+
1
40
  2010-09-13 14:49 Rocky Bernstein
2
41
 
3
42
  * ChangeLog, NEWS, Rakefile, VERSION: Update description for
data/NEWS CHANGED
@@ -1,3 +1,9 @@
1
+ tf-0.45
2
+ Dec 10, 2010 Phel. Mad. Release
3
+ - Work on iseq caching.
4
+ - Include "\n"'s in SHA1 calculations.
5
+ - Correct suspicious test task so it doesn't modify iteslf.
6
+
1
7
  tf-0.44
2
8
  Sept 13, 2010
3
9
  - First 1.9.2 release via rb-threadframe
data/Rakefile CHANGED
@@ -4,135 +4,84 @@ require 'rubygems'
4
4
  require 'rake/gempackagetask'
5
5
  require 'rake/rdoctask'
6
6
  require 'rake/testtask'
7
+ require 'fileutils'
7
8
 
8
- # ------- Default Package ----------
9
- PKG_VERSION = open(File.join(File.dirname(__FILE__), 'VERSION')) do
10
- |f| f.readlines[0].chomp
9
+ ROOT_DIR = File.dirname(__FILE__)
10
+ require File.join %W(#{ROOT_DIR} lib linecache)
11
+
12
+ def gemspec
13
+ @gemspec ||= eval(File.read('.gemspec'), binding, '.gemspec')
11
14
  end
12
- PKG_NAME = 'linecache'
13
- PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
14
- RUBY_FORGE_PROJECT = 'rocky-hacks'
15
- RUBY_FORGE_USER = 'rockyb'
16
-
17
- FILES = FileList[
18
- 'AUTHORS',
19
- 'COPYING',
20
- 'ChangeLog',
21
- 'NEWS',
22
- 'README',
23
- 'Rakefile',
24
- 'VERSION',
25
- 'lib/*.rb',
26
- 'test/*.rb',
27
- 'test/data/*.rb',
28
- 'test/short-file'
29
- ]
30
-
31
- desc "Test everything."
32
- test_task = task :test => :lib do
33
- Rake::TestTask.new(:test) do |t|
34
- t.pattern = 'test/test-*.rb'
35
- t.verbose = true
15
+
16
+ desc "Build the gem"
17
+ task :package=>:gem
18
+ task :gem=>:gemspec do
19
+ Dir.chdir(ROOT_DIR) do
20
+ sh "gem build .gemspec"
21
+ FileUtils.mkdir_p 'pkg'
22
+ FileUtils.mv "#{gemspec.name}-#{gemspec.version}.gem", 'pkg'
36
23
  end
37
24
  end
38
25
 
39
- desc "Test everything - same as test."
40
- task :check => :test
41
-
42
- desc "Create a GNU-style ChangeLog via svn2cl"
43
- task :ChangeLog do
44
- system("svn2cl svn+ssh://rockyb@rubyforge.org/var/svn/rocky-hacks/linecache/branches/ruby-1.9 --authors=svn2cl_usermap")
26
+ desc "Install the gem locally"
27
+ task :install => :gem do
28
+ Dir.chdir(ROOT_DIR) do
29
+ sh %{gem install --local pkg/#{gemspec.name}-#{gemspec.version}}
30
+ end
45
31
  end
46
32
 
47
- # Base GEM Specification
48
- default_spec = Gem::Specification.new do |spec|
49
- spec.name = "linecache-tf"
50
-
51
- spec.homepage = "http://rubyforge.org/projects/rocky-hacks/linecache"
52
- spec.summary = "Read file with caching"
53
- spec.description = <<-EOF
54
- LineCache is a module for reading and caching lines. This may be useful for
55
- example in a debugger where the same lines are shown many times.
56
-
57
- This version works only with a patched version of Ruby 1.9.2 and rb-threadframe.
58
- EOF
59
-
60
- spec.version = "#{PKG_VERSION}"
61
-
62
- spec.author = "R. Bernstein"
63
- spec.email = "rockyb@rubyforge.net"
64
- spec.platform = Gem::Platform::RUBY
65
- spec.require_path = "lib"
66
- spec.files = FILES.to_a
67
-
68
- spec.required_ruby_version = '>= 1.9.2'
69
- spec.date = Time.now
70
- spec.add_dependency('rb-threadframe', '>= 0.32')
71
- spec.rubyforge_project = 'rocky-hacks'
72
-
73
- # rdoc
74
- spec.has_rdoc = true
75
- spec.extra_rdoc_files = %w(README lib/linecache.rb lib/tracelines.rb)
76
-
77
- spec.test_files = FileList['test/*.rb']
33
+ desc "Test everything"
34
+ Rake::TestTask.new(:test) do |t|
35
+ t.libs << './lib'
36
+ t.pattern = 'test/test-*.rb'
37
+ t.verbose = true
78
38
  end
39
+ task :test => :lib
40
+
41
+ desc "same as test"
42
+ task :check => :test
79
43
 
80
- # Rake task to build the default package
81
- Rake::GemPackageTask.new(default_spec) do |pkg|
82
- pkg.need_tar = true
44
+ desc "Create a GNU-style ChangeLog via svn2cl"
45
+ task :ChangeLog do
46
+ system("svn2cl --authors=svn2cl_usermap")
83
47
  end
84
48
 
85
49
  task :default => [:test]
86
50
 
87
- # desc "Publish linecache to RubyForge."
88
- # task :publish do
89
- # require 'rake/contrib/sshpublisher'
90
-
91
- # # Get ruby-debug path.
92
- # ruby_debug_path = File.expand_path(File.dirname(__FILE__))
93
-
94
- # publisher = Rake::SshDirPublisher.new("rockyb@rubyforge.org",
95
- # "/var/www/gforge-projects/rocky-hacks/linecache", ruby_debug_path)
96
- # end
97
-
98
51
  desc "Remove built files"
99
52
  task :clean => [:clobber_package, :clobber_rdoc]
100
53
 
54
+ desc "Generate the gemspec"
55
+ task :generate do
56
+ puts gemspec.to_ruby
57
+ end
58
+
59
+ desc "Validate the gemspec"
60
+ task :gemspec do
61
+ gemspec.validate
62
+ end
63
+
101
64
  # --------- RDoc Documentation ------
102
65
  desc "Generate rdoc documentation"
103
66
  Rake::RDocTask.new("rdoc") do |rdoc|
104
67
  rdoc.rdoc_dir = 'doc'
105
- rdoc.title = "linecache"
68
+ rdoc.title = "LineCache #{LineCache::VERSION} Documentation"
69
+
106
70
  # Show source inline with line numbers
107
- rdoc.options << "--inline-source" << "--line-numbers"
108
- # Make the readme file the start page for the generated html
109
- rdoc.options << '--main' << 'README'
110
- rdoc.rdoc_files.include(%w(lib/*.rb README COPYING))
111
- end
71
+ rdoc.options += %w(--inline-source --line-numbers)
72
+
73
+ # Make the README file the start page for the generated html
74
+ rdoc.options += %w(--main README)
112
75
 
113
- # desc "Publish the release files to RubyForge."
114
- # task :rubyforge_upload do
115
- # `rubyforge login`
116
- # release_command = "rubyforge add_release #{PKG_NAME} #{PKG_NAME} '#{PKG_NAME}-#{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.gem"
117
- # puts release_command
118
- # system(release_command)
119
- # end
120
-
121
- def install(spec, *opts)
122
- args = ['gem', 'install', "pkg/#{spec.name}-#{spec.version}.gem"] + opts
123
- system(*args)
76
+ rdoc.rdoc_files.include('lib/*.rb', 'README', 'COPYING')
124
77
  end
78
+ desc "Same as rdoc"
79
+ task :doc => :rdoc
125
80
 
126
- desc 'Install locally'
127
- task :install => :package do
128
- Dir.chdir(File::dirname(__FILE__)) do
129
- # ri and rdoc take lots of time
130
- install(default_spec, '--no-ri', '--no-rdoc')
131
- end
132
- end
81
+ task :clobber_package do
82
+ FileUtils.rm_rf File.join(ROOT_DIR, 'pkg')
83
+ end
133
84
 
134
- task :install_full => :package do
135
- Dir.chdir(File::dirname(__FILE__)) do
136
- install(default_spec)
137
- end
85
+ task :clobber_rdoc do
86
+ FileUtils.rm_rf File.join(ROOT_DIR, 'doc')
138
87
  end
@@ -1,7 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- # $Id: linecache.rb 184 2009-10-22 13:05:11Z rockyb $
3
- #
4
- # Copyright (C) 2007, 2008, 2009 Rocky Bernstein <rockyb@rubyforge.net>
2
+ # Copyright (C) 2007, 2008, 2009, 2010 Rocky Bernstein <rockyb@rubyforge.net>
5
3
  #
6
4
  # This program is free software; you can redistribute it and/or modify
7
5
  # it under the terms of the GNU General Public License as published by
@@ -23,8 +21,6 @@
23
21
  #
24
22
  # = linecache
25
23
  # A module to read and cache lines of a Ruby program.
26
- # == Version
27
- # :include:VERSION
28
24
 
29
25
  # == SYNOPSIS
30
26
  #
@@ -62,21 +58,22 @@
62
58
  # and never destroys SCRIPT_LINES__
63
59
  SCRIPT_LINES__ = {} unless defined? SCRIPT_LINES__
64
60
 
61
+ require 'tempfile'
65
62
  require 'digest/sha1'
66
63
  require 'set'
67
64
  require_relative 'tracelines'
68
65
 
69
- # require 'ruby-debug' ; Debugger.start
70
-
71
66
  # = module LineCache
72
67
  # A module to read and cache lines of a Ruby program.
73
68
  module LineCache
69
+ VERSION = '0.45'
74
70
  LineCacheInfo = Struct.new(:stat, :line_numbers, :lines, :path, :sha1) unless
75
71
  defined?(LineCacheInfo)
76
72
 
77
73
  # The file cache. The key is a name as would be given by Ruby for
78
74
  # __FILE__. The value is a LineCacheInfo object.
79
75
  @@file_cache = {}
76
+ @@iseq_cache = {}
80
77
 
81
78
  # Maps a string filename (a String) to a key in @@file_cache (a
82
79
  # String).
@@ -92,6 +89,17 @@ module LineCache
92
89
  # ranges. Will probably use this for that, but I'm not sure.
93
90
  @@file2file_remap = {}
94
91
  @@file2file_remap_lines = {}
92
+
93
+ @@iseq2file = {}
94
+
95
+ def remove_iseq_temps
96
+ @@iseq2file.values.each do |filename|
97
+ File.unlink(filename)
98
+ end
99
+ end
100
+ module_function :remove_iseq_temps
101
+ at_exit { remove_iseq_temps }
102
+
95
103
 
96
104
  # Clear the file cache entirely.
97
105
  def clear_file_cache()
@@ -101,6 +109,12 @@ module LineCache
101
109
  end
102
110
  module_function :clear_file_cache
103
111
 
112
+ # Clear the iseq cache entirely.
113
+ def clear_iseq_cache()
114
+ @@iseq_cache = {}
115
+ end
116
+ module_function :clear_file_cache
117
+
104
118
  # Return an array of cached file names
105
119
  def cached_files()
106
120
  @@file_cache.keys
@@ -146,10 +160,31 @@ module LineCache
146
160
  end
147
161
  module_function :checkcache
148
162
 
163
+ # Cache iseq if it's not already cached.
164
+ def cache_iseq(iseq, string=nil, sha1=nil)
165
+ if !@@iseq_cache.member?(iseq)
166
+ update_iseq_cache(iseq, string, sha1)
167
+ end
168
+ iseq
169
+ end
170
+ module_function :cache_iseq
171
+
172
+ # Cache file name or iseq object if it's not already cached.
173
+ # Return the expanded filename for it in the cache if a filename,
174
+ # or the iseq, or nil if we can't find the file.
175
+ def cache(file_or_iseq, reload_on_change=false)
176
+ if file_or_iseq.kind_of?(String)
177
+ cache_file(file_or_iseq, reload_on_change)
178
+ else
179
+ cache_iseq(file_or_iseq)
180
+ end
181
+ end
182
+ module_function :cache
183
+
149
184
  # Cache filename if it's not already cached.
150
185
  # Return the expanded filename for it in the cache
151
186
  # or nil if we can't find the file.
152
- def cache(filename, reload_on_change=false)
187
+ def cache_file(filename, reload_on_change=false)
153
188
  if @@file_cache.member?(filename)
154
189
  checkcache(filename) if reload_on_change
155
190
  else
@@ -161,11 +196,15 @@ module LineCache
161
196
  nil
162
197
  end
163
198
  end
164
- module_function :cache
199
+ module_function :cache_file
165
200
 
166
- # Return true if filename is cached
167
- def cached?(filename)
168
- @@file_cache.member?(map_file(filename))
201
+ # Return true if file_or_iseq is cached
202
+ def cached?(file_or_iseq)
203
+ if file_or_iseq.kind_of?(String)
204
+ @@file_cache.member?(map_file(file_or_iseq))
205
+ else
206
+ cached_iseq?(file_or_iseq)
207
+ end
169
208
  end
170
209
  module_function :cached?
171
210
 
@@ -191,10 +230,15 @@ module LineCache
191
230
  # $: << '/tmp'
192
231
  # lines = LineCache.getlines('myfile.rb')
193
232
  #
194
- def getline(filename, line_number, reload_on_change=true)
195
- filename = map_file(filename)
196
- filename, line_number = map_file_line(filename, line_number)
197
- lines = getlines(filename, reload_on_change)
233
+ def getline(file_or_iseq, line_number, reload_on_change=true)
234
+ lines =
235
+ if file_or_iseq.kind_of?(String)
236
+ filename = map_file(file_or_iseq)
237
+ filename, line_number = map_file_line(filename, line_number)
238
+ getlines(filename, reload_on_change)
239
+ else
240
+ iseq_getlines(file_or_iseq)
241
+ end
198
242
  if lines and (1..lines.size) === line_number
199
243
  return lines[line_number-1]
200
244
  else
@@ -203,6 +247,23 @@ module LineCache
203
247
  end
204
248
  module_function :getline
205
249
 
250
+ # Read lines of +iseq+ and cache the results. However +iseq+ was
251
+ # previously cached use the results from the cache. Return nil
252
+ # if we can't get lines
253
+ def iseq_getlines(iseq)
254
+ if @@iseq_cache.member?(iseq)
255
+ return @@iseq_cache[iseq].lines
256
+ else
257
+ update_iseq_cache(iseq)
258
+ if @@iseq_cache.member?(iseq)
259
+ return @@iseq_cache[iseq].lines
260
+ else
261
+ return nil
262
+ end
263
+ end
264
+ end
265
+ module_function :iseq_getlines
266
+
206
267
  # Read lines of +filename+ and cache the results. However +filename+ was
207
268
  # previously cached use the results from the cache. Return nil
208
269
  # if we can't get lines
@@ -213,13 +274,18 @@ module LineCache
213
274
  return @@file_cache[filename].lines
214
275
  else
215
276
  update_cache(filename, true)
216
- return @@file_cache[filename].lines if @@file_cache.member?(filename)
277
+ if @@file_cache.member?(filename)
278
+ return @@file_cache[filename].lines
279
+ else
280
+ return nil
281
+ end
217
282
  end
218
283
  end
219
284
  module_function :getlines
220
285
 
221
286
  # Return full filename path for filename
222
287
  def path(filename)
288
+ return unless filename.kind_of?(String)
223
289
  filename = map_file(filename)
224
290
  return nil unless @@file_cache.member?(filename)
225
291
  @@file_cache[filename].path
@@ -232,7 +298,7 @@ module LineCache
232
298
  module_function :remap_file
233
299
 
234
300
  def remap_file_lines(from_file, to_file, range, start)
235
- range = (range..range) if range.is_a?(Fixnum)
301
+ range = (range..range) if range.kind_of?(Fixnum)
236
302
  to_file = from_file unless to_file
237
303
  if @@file2file_remap_lines[to_file]
238
304
  # FIXME: need to check for overwriting ranges: whether
@@ -252,7 +318,7 @@ module LineCache
252
318
  @@file_cache[filename].sha1
253
319
  sha1 = Digest::SHA1.new
254
320
  @@file_cache[filename].lines.each do |line|
255
- sha1 << line
321
+ sha1 << line + "\n"
256
322
  end
257
323
  @@file_cache[filename].sha1 = sha1
258
324
  sha1.hexdigest
@@ -260,10 +326,16 @@ module LineCache
260
326
  module_function :sha1
261
327
 
262
328
  # Return the number of lines in filename
263
- def size(filename)
264
- filename = map_file(filename)
265
- return nil unless @@file_cache.member?(filename)
266
- @@file_cache[filename].lines.length
329
+ def size(file_or_iseq)
330
+ cache(file_or_iseq)
331
+ if file_or_iseq.kind_of?(String)
332
+ file_or_iseq = map_file(file_or_iseq)
333
+ return nil unless @@file_cache.member?(file_or_iseq)
334
+ @@file_cache[file_or_iseq].lines.length
335
+ else
336
+ return nil unless @@iseq_cache.member?(file_or_iseq)
337
+ @@iseq_cache[file_or_iseq].lines.length
338
+ end
267
339
  end
268
340
  module_function :size
269
341
 
@@ -296,6 +368,25 @@ module LineCache
296
368
  end
297
369
  module_function :map_file
298
370
 
371
+ def map_iseq(iseq)
372
+ if @@iseq2file[iseq]
373
+ @@iseq2file[iseq]
374
+ else
375
+ # Doc says there's new takes an optional string parameter
376
+ # But it doesn't work for me
377
+ sha1 = Digest::SHA1.new
378
+ string = iseq.source
379
+ sha1 << iseq.source
380
+ tempfile = Tempfile.new(["eval-#{sha1.hexdigest[0...7]}-", '.rb'])
381
+ tempfile.open.puts(string)
382
+ tempfile.close
383
+ # cache_iseq(iseq, string, sha1.hexdigest)
384
+ @@iseq2file[iseq] = tempfile.path
385
+ tempfile.path
386
+ end
387
+ end
388
+ module_function :map_iseq
389
+
299
390
  def map_file_line(file, line)
300
391
  if @@file2file_remap_lines[file]
301
392
  @@file2file_remap_lines[file].each do |from_file, range, start|
@@ -309,6 +400,22 @@ module LineCache
309
400
  end
310
401
  module_function :map_file_line
311
402
 
403
+ def iseq_is_eval?(iseq)
404
+ !!iseq.source
405
+ end
406
+ module_function :iseq_is_eval?
407
+
408
+ # Update a cache entry. If something is wrong, return nil. Return
409
+ # true if the cache was updated and false if not.
410
+ def update_iseq_cache(iseq, string=nil, sha1=nil)
411
+ return false unless iseq_is_eval?(iseq)
412
+ string = iseq.source unless string
413
+ @@iseq_cache[iseq] =
414
+ LineCacheInfo.new(nil, nil, string.split(/\n/), nil, sha1)
415
+ return true
416
+ end
417
+ module_function :update_iseq_cache
418
+
312
419
  # Update a cache entry. If something's
313
420
  # wrong, return nil. Return true if the cache was updated and false
314
421
  # if not. If use_script_lines is true, use that as the source for the
@@ -320,24 +427,6 @@ module LineCache
320
427
  @@file_cache.delete(filename)
321
428
  path = File.expand_path(filename)
322
429
 
323
- if use_script_lines
324
- list = [filename]
325
- list << @@file2file_remap[path] if @@file2file_remap[path]
326
- list.each do |name|
327
- if !SCRIPT_LINES__[name].nil? && SCRIPT_LINES__[name] != true
328
- begin
329
- stat = File.stat(name)
330
- rescue
331
- stat = nil
332
- end
333
- lines = SCRIPT_LINES__[name]
334
- @@file_cache[filename] = LineCacheInfo.new(stat, nil, lines, path, nil)
335
- @@file2file_remap[path] = filename
336
- return true
337
- end
338
- end
339
- end
340
-
341
430
  if File.exist?(path)
342
431
  stat = File.stat(path)
343
432
  elsif File.basename(filename) == filename
@@ -367,7 +456,6 @@ module LineCache
367
456
  end
368
457
 
369
458
  module_function :update_cache
370
-
371
459
  end
372
460
 
373
461
  # example usage
@@ -404,4 +492,9 @@ if __FILE__ == $0
404
492
  LineCache::remap_file_lines(__FILE__, 'test2', (10..20), 6)
405
493
  puts LineCache::getline('test2', 10)
406
494
  puts "Remapped 10th line of test2 is\n#{line}"
495
+ require 'thread_frame'
496
+ puts eval("x=1
497
+ LineCache::getline(RubyVM::ThreadFrame.current.iseq, 1)")
498
+ puts eval("x=2
499
+ LineCache::getline(RubyVM::ThreadFrame.current.iseq, 2)")
407
500
  end
@@ -146,8 +146,24 @@ class TestLineCache < Test::Unit::TestCase
146
146
  def test_sha1
147
147
  test_file = File.join(@@TEST_DIR, 'short-file')
148
148
  LineCache::cache(test_file)
149
- assert_equal('1134f95ea84a3dcc67d7d1bf41390ee1a03af6d2',
149
+ assert_equal('3e1d87f3399fc73ae5683e106bce1b5ba823fc50',
150
150
  LineCache::sha1(test_file))
151
151
  end
152
152
 
153
+ def test_iseq_cache
154
+ require 'thread_frame'
155
+ template = "x=1
156
+ y=2
157
+ LineCache::getline(RubyVM::ThreadFrame.current.iseq, %d)"
158
+ assert_equal("x=1", eval(template % 1))
159
+ assert_equal("y=2", eval(template % 2))
160
+ string = "a = 1
161
+ b = 2
162
+ LineCache::map_iseq(RubyVM::ThreadFrame.current.iseq)"
163
+ temp_filename = eval(string)
164
+ got_lines = File.open(temp_filename).readlines.join('')
165
+ assert_equal(string, got_lines.chomp)
166
+ assert_equal(1, File.unlink(temp_filename))
167
+ end
168
+
153
169
  end
metadata CHANGED
@@ -4,8 +4,8 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 44
8
- version: "0.44"
7
+ - 45
8
+ version: "0.45"
9
9
  platform: ruby
10
10
  authors:
11
11
  - R. Bernstein
@@ -13,7 +13,7 @@ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
15
 
16
- date: 2010-09-13 00:00:00 -04:00
16
+ date: 2010-12-10 00:00:00 -05:00
17
17
  default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
@@ -52,7 +52,6 @@ files:
52
52
  - NEWS
53
53
  - README
54
54
  - Rakefile
55
- - VERSION
56
55
  - lib/tracelines.rb
57
56
  - lib/linecache.rb
58
57
  - test/parse-show.rb
@@ -91,17 +90,20 @@ files:
91
90
  - test/short-file
92
91
  has_rdoc: true
93
92
  homepage: http://rubyforge.org/projects/rocky-hacks/linecache
94
- licenses: []
95
-
93
+ licenses:
94
+ - GPL2
96
95
  post_install_message:
97
- rdoc_options: []
98
-
96
+ rdoc_options:
97
+ - --main
98
+ - README
99
+ - --title
100
+ - LineCache 0.45 Documentation
99
101
  require_paths:
100
102
  - lib
101
103
  required_ruby_version: !ruby/object:Gem::Requirement
102
104
  none: false
103
105
  requirements:
104
- - - ">="
106
+ - - ~>
105
107
  - !ruby/object:Gem::Version
106
108
  segments:
107
109
  - 1
@@ -118,15 +120,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
120
  version: "0"
119
121
  requirements: []
120
122
 
121
- rubyforge_project: rocky-hacks
123
+ rubyforge_project: columnize
122
124
  rubygems_version: 1.3.7
123
125
  signing_key:
124
126
  specification_version: 3
125
- summary: Read file with caching
126
- test_files:
127
- - test/parse-show.rb
128
- - test/lnum-diag.rb
129
- - test/rcov-bug.rb
130
- - test/test-lnum.rb
131
- - test/test-linecache.rb
132
- - test/test-tracelines.rb
127
+ summary: Module to format an Array as an Array of String aligned in columns
128
+ test_files: []
129
+
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.44