rogerdpack-remembered_evals 0.0.1
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/lib/remembered_evals.rb +37 -0
- metadata +73 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'digest/md5'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'facets/file/write'
|
4
|
+
|
5
|
+
module Kernel
|
6
|
+
alias :original_eval :eval
|
7
|
+
|
8
|
+
=begin rdoc
|
9
|
+
|
10
|
+
doctest: eval saves away files into some path, then eval's them from there
|
11
|
+
>> eval "$a = 3"
|
12
|
+
>> File.directory? '.remembered_evals'
|
13
|
+
=> true
|
14
|
+
>> $a
|
15
|
+
=> 3
|
16
|
+
|
17
|
+
TODO work with class_eval, too
|
18
|
+
|
19
|
+
|
20
|
+
Using it causes the backtraces to behave slightly differently
|
21
|
+
>> eval "begin; raise; rescue Exception => e; $a = e; end"
|
22
|
+
>> $a.backtrace[0].include? '.remembered_evals/'
|
23
|
+
>> true
|
24
|
+
|
25
|
+
=end
|
26
|
+
|
27
|
+
def eval *args # string, binding, file, line [file and line are hereby ignored since ours supplant it]
|
28
|
+
path = '.remembered_evals'
|
29
|
+
Dir.mkdir path unless File.directory? path
|
30
|
+
digest = Digest::MD5.hexdigest("Hello World\n")
|
31
|
+
fullpath = path + '/' + Digest::MD5.hexdigest(args[0])
|
32
|
+
saved = File.write(fullpath, args[0])
|
33
|
+
original_eval args[0], args[1], fullpath, 1
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
metadata
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rogerdpack-remembered_evals
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Roger Pack
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-05-22 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: facets
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 2.6.0
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rubydoctest
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.0
|
34
|
+
version:
|
35
|
+
description: "library to save away eval'ed code to a file first, so that it can be seen later [ex: while debugging]"
|
36
|
+
email:
|
37
|
+
- rogerdpack@gmail.comm
|
38
|
+
executables: []
|
39
|
+
|
40
|
+
extensions: []
|
41
|
+
|
42
|
+
extra_rdoc_files: []
|
43
|
+
|
44
|
+
files:
|
45
|
+
- lib/remembered_evals.rb
|
46
|
+
has_rdoc: false
|
47
|
+
homepage: http://github.com/rogerdpack/ruby_remembered_eval/tree/master
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
|
51
|
+
require_paths:
|
52
|
+
- lib
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
58
|
+
version:
|
59
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
version:
|
65
|
+
requirements: []
|
66
|
+
|
67
|
+
rubyforge_project:
|
68
|
+
rubygems_version: 1.2.0
|
69
|
+
signing_key:
|
70
|
+
specification_version: 3
|
71
|
+
summary: "library to save away eval'ed code to a file first, so that it can be seen later [ex: while debugging]"
|
72
|
+
test_files: []
|
73
|
+
|