local_sesion 0.0.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/local_session.rb +51 -0
  3. metadata +57 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1cce88ce79d7bd43fcca0e1c1c89381674de0459
4
+ data.tar.gz: e804677c9e22319dfdc70fb46e1ac606fb1a7a9a
5
+ SHA512:
6
+ metadata.gz: 6e9c2ca6e79dbe358f691c6a076eba303f5b5dcb93de0e24245909f0c2801d09ff8a9aaffb47aaedeada9cef0e3cdb85b2152f401efc651b2df3c079e9e5b102
7
+ data.tar.gz: 7d581b35463fb23b0540ba101061deca11bde7ba323bdcdab261e5d5163329647bf9d5f243729e192cf3f0866813362734ef162da25a562e36370b7dad7fb2aa
@@ -0,0 +1,51 @@
1
+ require 'binding_of_caller'
2
+
3
+ OverrideDefaultGlobals ||= false
4
+
5
+ at_exit do
6
+ def dumpable? obj
7
+ begin
8
+ Marshal.dump obj
9
+ return true
10
+ rescue
11
+ puts "Warning : object cannot be marshaled #{obj}"
12
+ return false
13
+ end
14
+ end
15
+ def wrap
16
+ bindings = binding.of_caller(1)
17
+ local_keys = bindings.local_variables.clone
18
+ locals = Hash.new
19
+ globals = Hash.new
20
+
21
+ local_keys.each do |key|
22
+ p key
23
+ value = bindings.local_variable_get key
24
+ locals[key] = value if dumpable?(value) == true
25
+ end
26
+
27
+ global_keys = global_variables
28
+
29
+ global_keys.each do |key|
30
+ value = eval("#{key}")
31
+ globals[key] = value if dumpable?(value) == true
32
+ end
33
+
34
+ File.write ".locals", Marshal.dump(locals)
35
+ File.write ".globals", Marshal.dump(globals)
36
+ end
37
+
38
+ # ���� �������� �и��ϱ� ���� �޼ҵ� ���� ��
39
+ wrap
40
+ end
41
+
42
+ if File.exist? ".locals"
43
+ locals = Marshal.load(File.read(".locals"))
44
+ locals.each do |k, v|
45
+ binding.of_caller(0).local_variable_set k, v
46
+
47
+ define_singleton_method k do
48
+ return v
49
+ end
50
+ end
51
+ end
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: local_sesion
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - pjc0247
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: binding_of_caller
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: local_sesion
28
+ email: pjc0247@naver.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/local_session.rb
34
+ homepage:
35
+ licenses: []
36
+ metadata: {}
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ requirements: []
52
+ rubyforge_project:
53
+ rubygems_version: 2.5.1
54
+ signing_key:
55
+ specification_version: 4
56
+ summary: local_sesion
57
+ test_files: []