michelle 0.0.2 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/michelle/client.rb +18 -0
- data/lib/michelle/server.rb +40 -0
- data/lib/michelle/version.rb +1 -1
- data/lib/michelle.rb +2 -2
- data/michelle.gemspec +1 -1
- data/test/client_call.rb +44 -0
- data/test/server_start.rb +5 -0
- data/test/test_load.rb +3 -0
- metadata +7 -2
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
|
3
|
+
require 'drb'
|
4
|
+
|
5
|
+
module Michelle
|
6
|
+
@container = nil
|
7
|
+
|
8
|
+
def self.start_client
|
9
|
+
DRb.start_service
|
10
|
+
@container = DRbObject.new nil, 'druby://127.0.0.1:13579'
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.call_eval code
|
14
|
+
@container.to_eval code
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
|
3
|
+
require 'drb'
|
4
|
+
require 'stringio'
|
5
|
+
|
6
|
+
module Michelle
|
7
|
+
class Server
|
8
|
+
@last_return = nil
|
9
|
+
|
10
|
+
def redirect
|
11
|
+
orig_stdout = $stdout
|
12
|
+
orig_stderr = $stderr
|
13
|
+
$stdout = StringIO.new
|
14
|
+
$stderr = StringIO.new
|
15
|
+
yield
|
16
|
+
$stdout.string + $stderr.string
|
17
|
+
ensure
|
18
|
+
$stdout = orig_stdout
|
19
|
+
$stderr = orig_stderr
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_eval code
|
23
|
+
redirect do
|
24
|
+
begin
|
25
|
+
@last_return = eval code
|
26
|
+
rescue SyntaxError => error_message
|
27
|
+
puts error_message
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.start_server
|
34
|
+
$:.unshift '.'
|
35
|
+
DRb.start_service 'druby://127.0.0.1:13579', Server.new
|
36
|
+
puts DRb.uri
|
37
|
+
DRb.thread.join
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
data/lib/michelle/version.rb
CHANGED
data/lib/michelle.rb
CHANGED
data/michelle.gemspec
CHANGED
data/test/client_call.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
|
3
|
+
require 'michelle/client'
|
4
|
+
|
5
|
+
def testing
|
6
|
+
#$:.unshift '.'
|
7
|
+
#require "test_code.rb"
|
8
|
+
|
9
|
+
#print Michelle.evaluate "$:.unshift "
|
10
|
+
#print Michelle.call_eval "puts $:"
|
11
|
+
|
12
|
+
#print Michelle.call_eval "require 'rdiscount'"
|
13
|
+
#print Michelle.call_eval "puts RDiscount.new('**Hello RubyInstaller**').to_html"
|
14
|
+
|
15
|
+
print Michelle.call_eval "load 'test_load.rb'"
|
16
|
+
print Michelle.call_eval "testload"
|
17
|
+
|
18
|
+
print Michelle.call_eval "unless @x; @x = 0; end;"
|
19
|
+
print Michelle.call_eval "@x = @x + 1"
|
20
|
+
print Michelle.call_eval "puts @x"
|
21
|
+
|
22
|
+
print Michelle.call_eval "def abc;"
|
23
|
+
|
24
|
+
print Michelle.call_eval "unless respond_to?('abc'); def abc; puts 'abc hello abc'; end; end;"
|
25
|
+
print Michelle.call_eval "abc"
|
26
|
+
|
27
|
+
print Michelle.call_eval "puts 'hello'"
|
28
|
+
|
29
|
+
print Michelle.call_eval "1+1"
|
30
|
+
print Michelle.call_eval "puts @last_return"
|
31
|
+
print Michelle.call_eval "'return'"
|
32
|
+
print Michelle.call_eval "puts @last_return"
|
33
|
+
|
34
|
+
print Michelle.call_eval "unless @y; @y = 0; end;"
|
35
|
+
print Michelle.call_eval "unless @z; @z = 0; end;"
|
36
|
+
|
37
|
+
print Michelle.call_eval "puts instance_variables"
|
38
|
+
|
39
|
+
gets
|
40
|
+
end
|
41
|
+
|
42
|
+
Michelle.start_client
|
43
|
+
|
44
|
+
testing
|
data/test/test_load.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: michelle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-11 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: This is gem for the windows application "michelle". This gem is not supposed
|
15
15
|
to be installed to any ruby other than the one shipped with the Windows application
|
@@ -24,10 +24,15 @@ files:
|
|
24
24
|
- Gemfile
|
25
25
|
- Rakefile
|
26
26
|
- lib/michelle.rb
|
27
|
+
- lib/michelle/client.rb
|
28
|
+
- lib/michelle/server.rb
|
27
29
|
- lib/michelle/version.rb
|
28
30
|
- michelle.gemspec
|
29
31
|
- michelle.sublime-project
|
30
32
|
- michelle.sublime-workspace
|
33
|
+
- test/client_call.rb
|
34
|
+
- test/server_start.rb
|
35
|
+
- test/test_load.rb
|
31
36
|
homepage: ''
|
32
37
|
licenses: []
|
33
38
|
post_install_message:
|