rogerdpack-remembered_evals 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/remembered_evals.rb +37 -0
  2. 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
+