local_sesion 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: []