ruby-proxy 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/atu/sikuli.rb CHANGED
@@ -4,12 +4,8 @@ require 'java'
4
4
  #This is key to making it work under ruby. The path above is the default
5
5
  #installation location on the Mac which contains all of the
6
6
  #relevant sikuli jar files.
7
- require "sikuli-script.jar"
7
+ require "atu/sikuli-script.jar"
8
8
 
9
- module B
10
- class C
11
- end
12
- end
13
9
 
14
10
 
15
11
  #~ include Java
@@ -18,10 +14,10 @@ module ATU
18
14
  java_import 'org.sikuli.script.Region'
19
15
  java_import 'org.sikuli.script.Screen'
20
16
  java_import 'org.sikuli.script.Settings'
17
+ java_import 'org.sikuli.script.Pattern'
21
18
  java_import 'org.sikuli.script.SikuliEvent'
22
19
  java_import 'org.sikuli.script.SikuliScript'
23
20
  include Java::OrgSikuliScript
24
- include B
25
21
  end
26
22
  #Sikuli = Java::OrgSikuliScript
27
23
  end
@@ -0,0 +1,6 @@
1
+ require 'drb'
2
+ module DRb
3
+ class DRbObject
4
+ undef :type
5
+ end
6
+ end
@@ -1,4 +1,5 @@
1
1
  require 'drb'
2
+ require 'ext/drb_ext'
2
3
  require 'timeout'
3
4
  require 'socket'
4
5
  require 'logger'
@@ -12,7 +13,7 @@ module ATU
12
13
  end
13
14
 
14
15
  def self.make_kclass(name,type)
15
- puts "make_kclass: #{name}, #{type}"
16
+ #puts "make_kclass: #{name}, #{type}"
16
17
  case type
17
18
  when "Class"
18
19
  RubyProxy::KlassFactory.make_class(name) do |klass|
@@ -20,7 +21,21 @@ module ATU
20
21
  def initialize(*arg)
21
22
  #puts self.class.to_s
22
23
  @proxy = RubyProxy::DRbClient.client.proxy(self.class.to_s,"new",*arg)
24
+ # undef type method
25
+ # I think all methods should be proxyed by remote
26
+ #~ class << @proxy
27
+ #~ undef :type
28
+ #~ end
23
29
  end
30
+ undef :type
31
+ undef :to_s
32
+ undef :to_a if respond_to?(:to_a)
33
+ undef :methods
34
+
35
+ def __proxy
36
+ @proxy
37
+ end
38
+
24
39
  def method_missing(name,*arg)
25
40
  #return if @proxy.nil?
26
41
  #puts "#{@proxy.methods(false)}"
@@ -158,8 +173,13 @@ module RubyProxy
158
173
  @@logger.info "start jruby proxy server..."
159
174
  org_path = Dir.pwd
160
175
  Dir.chdir(File.join(File.dirname(__FILE__),'..')) do
161
- system("start /I /B jruby ruby_proxy/server.rb #{@ip} #{@port} #{org_path} ")#> #{@start_service_log_path} 2>&1")
162
- end
176
+ # we can start jruby proxy or ruby
177
+ # just change here command
178
+ temp = ENV["RUBYOPT"]
179
+ ENV["RUBYOPT"] = "-rubygems"
180
+ system("start /I /B jruby ruby_proxy/server.rb #{@ip} #{@port} \"#{org_path}\" ")#> #{@start_service_log_path} 2>&1")
181
+ ENV["RUBYOPT"] = temp
182
+ end
163
183
  end
164
184
  wait_until_server_start_time(t)
165
185
  end
@@ -8,7 +8,7 @@ module RubyProxy
8
8
  # you can use Proxy.load_path << "" to add load path
9
9
  ProxyLoad.load
10
10
  @@logger = Logger.new(STDOUT)
11
- @@logger.level = Logger::DEBUG
11
+ @@logger.level = Logger::INFO
12
12
 
13
13
  def self.proxy(klass_name,method=nil,*arg)
14
14
  @@logger.debug "klass_name= #{klass_name}"
@@ -2,7 +2,7 @@ require 'logger'
2
2
  module RubyProxy
3
3
  class ProxyLoad
4
4
  @@logger = Logger.new(STDOUT)
5
- @@logger.level = Logger::DEBUG
5
+ @@logger.level = Logger::INFO
6
6
  @load_path = ['atu']
7
7
  class <<self
8
8
  attr_accessor :load_path
@@ -1,5 +1,6 @@
1
1
  require 'drb'
2
2
  require 'ruby_proxy/proxy'
3
+ require 'drb/timeridconv'
3
4
  module RubyProxy
4
5
  class DRbServer
5
6
  @ip = "127.0.0.1"
@@ -8,6 +9,7 @@ module RubyProxy
8
9
  attr_writer :ip,:port
9
10
  end
10
11
  def self.start_service
12
+ DRb.install_id_conv(DRb::TimerIdConv.new)
11
13
  DRb.start_service("druby://#{@ip}:#{@port}",Proxy)
12
14
  DRb.thread.join
13
15
  end
@@ -1,3 +1,3 @@
1
1
  module RubyProxy
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -88,6 +88,24 @@ module ATU
88
88
  end
89
89
  end
90
90
 
91
+ class Hello7
92
+ def to_a
93
+ puts "call to_a"
94
+ [1,2,3]
95
+ end
96
+ def type(a)
97
+ puts "call type"
98
+ "a"
99
+ end
100
+ def to_s
101
+ puts "call to_s"
102
+ return "b"
103
+ end
104
+ def normal
105
+ "normal"
106
+ end
107
+ end
108
+
91
109
  end
92
110
 
93
111
  end
@@ -21,7 +21,7 @@ class TestDrbProxy < Test::Unit::TestCase
21
21
  end
22
22
  def test_atu_ok
23
23
  a = ATU::Hello.new
24
- puts "aaa= #{a}"
24
+ #~ puts "aaa= #{a}"
25
25
  assert_equal(1,a.return_1)
26
26
  assert_equal("1",a.return_str_1)
27
27
  end
@@ -115,7 +115,10 @@ class TestDrbProxy < Test::Unit::TestCase
115
115
  assert([1,"1"],ATU::M1::Hello6.a(1,"1"))
116
116
  assert("m",ATU::M1::m)
117
117
  end
118
+
118
119
  # failed, fix me
120
+ # I have not seen druby's block call. That not be supported to call block.
121
+ # I will do fixing it later.
119
122
  def test_block_ok
120
123
  a = ATU::M1::Hello6.new
121
124
  assert_equal(1,a.a() {|i| i})
@@ -127,4 +130,15 @@ class TestDrbProxy < Test::Unit::TestCase
127
130
  assert_equal(true,ATU::M1::Hello6.file_exist?(path))
128
131
  end
129
132
 
133
+ #now pass it
134
+ # it seems sometimes druby in jruby has some bugs like concurrent problem.
135
+ # other time, I will fix it.
136
+ def test_specify_method_support
137
+ hello7 = ATU::M1::Hello7.new
138
+ assert_equal([1,2,3],hello7.to_a)
139
+ assert_equal("a",hello7.type("b"))
140
+ assert_equal("b",hello7.to_s)
141
+ assert_equal("normal",hello7.normal)
142
+ end
143
+
130
144
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-proxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 3
9
+ version: 0.0.3
5
10
  platform: ruby
6
11
  authors:
7
12
  - yafei Li
@@ -9,7 +14,7 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2011-08-10 00:00:00 +08:00
17
+ date: 2011-08-26 00:00:00 +08:00
13
18
  default_executable:
14
19
  dependencies: []
15
20
 
@@ -22,50 +27,60 @@ extensions: []
22
27
  extra_rdoc_files: []
23
28
 
24
29
  files:
25
- - lib/atu
26
30
  - lib/atu/key.rb
27
31
  - lib/atu/sikuli-script.jar
28
32
  - lib/atu/sikuli.rb
29
- - lib/ruby_proxy
33
+ - lib/ext/drb_ext.rb
30
34
  - lib/ruby_proxy/client.rb
31
35
  - lib/ruby_proxy/proxy.rb
32
36
  - lib/ruby_proxy/proxy_load.rb
33
37
  - lib/ruby_proxy/server.rb
34
38
  - lib/ruby_proxy/version.rb
35
39
  - lib/ruby_proxy.rb
36
- has_rdoc: false
40
+ - unittests/all_tests.rb
41
+ - unittests/setup.rb
42
+ - unittests/support/atu/hello.rb
43
+ - unittests/support/image/search.png
44
+ - unittests/support/image/start.png
45
+ - unittests/test_drb_proxy.rb
46
+ - unittests/test_sikuli_api.rb
47
+ - unittests/your_jruby_sikuli_config_ok.rb
48
+ has_rdoc: true
37
49
  homepage: https://github.com/windy/ruby_proxy
50
+ licenses: []
51
+
38
52
  post_install_message:
39
53
  rdoc_options: []
40
54
 
41
55
  require_paths:
42
56
  - lib
43
57
  required_ruby_version: !ruby/object:Gem::Requirement
58
+ none: false
44
59
  requirements:
45
60
  - - ">="
46
61
  - !ruby/object:Gem::Version
62
+ segments:
63
+ - 0
47
64
  version: "0"
48
- version:
49
65
  required_rubygems_version: !ruby/object:Gem::Requirement
66
+ none: false
50
67
  requirements:
51
68
  - - ">="
52
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
53
72
  version: "0"
54
- version:
55
73
  requirements: []
56
74
 
57
75
  rubyforge_project: ruby-proxy
58
- rubygems_version: 1.3.1
76
+ rubygems_version: 1.3.7
59
77
  signing_key:
60
- specification_version: 2
78
+ specification_version: 3
61
79
  summary: Ruby Proxy for Jruby.
62
80
  test_files:
63
81
  - unittests/all_tests.rb
64
82
  - unittests/setup.rb
65
- - unittests/support
66
- - unittests/support/atu
67
83
  - unittests/support/atu/hello.rb
68
- - unittests/support/image
69
84
  - unittests/support/image/search.png
70
85
  - unittests/support/image/start.png
71
86
  - unittests/test_drb_proxy.rb