ruby-proxy 0.2.0 → 0.2.1
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.
- data/lib/ruby_proxy/client.rb +20 -4
- data/lib/ruby_proxy/exceptions.rb +3 -1
- data/lib/ruby_proxy/logger.rb +35 -0
- data/lib/ruby_proxy/proxy.rb +14 -13
- data/lib/ruby_proxy/proxy_global_set.rb +37 -0
- data/lib/ruby_proxy/proxy_load.rb +2 -5
- data/lib/ruby_proxy/version.rb +2 -2
- data/unittests/test_atu_require.rb +15 -0
- data/unittests/test_config.rb +2 -1
- data/unittests/test_drb_proxy.rb +5 -10
- data/unittests/test_gloabal_var.rb +20 -0
- metadata +44 -26
- data/lib/atu/key.rb +0 -218
- data/lib/atu/sikuli-script.jar +0 -0
- data/lib/atu/sikuli.rb +0 -40
- data/unittests/test_sikuli_api.rb +0 -33
- data/unittests/your_jruby_sikuli_config_ok.rb +0 -26
data/lib/ruby_proxy/client.rb
CHANGED
@@ -16,6 +16,14 @@ module ATU
|
|
16
16
|
#~ path += '.rb'
|
17
17
|
RubyProxy::DRbClient.proxy_load(arg)
|
18
18
|
end
|
19
|
+
|
20
|
+
def [](arg)
|
21
|
+
RubyProxy::DRbClient.proxy_global_get(arg)
|
22
|
+
end
|
23
|
+
|
24
|
+
def []=(arg,var)
|
25
|
+
RubyProxy::DRbClient.proxy_global_set(arg,var)
|
26
|
+
end
|
19
27
|
end
|
20
28
|
|
21
29
|
#entry
|
@@ -167,10 +175,18 @@ module RubyProxy
|
|
167
175
|
|
168
176
|
attr_accessor :ip,:port
|
169
177
|
|
170
|
-
def proxy_load(
|
171
|
-
client.proxy_load(
|
178
|
+
def proxy_load(file)
|
179
|
+
client.proxy_load(file)
|
172
180
|
end
|
173
181
|
|
182
|
+
def proxy_global_get(arg)
|
183
|
+
client.proxy_global_get(arg)
|
184
|
+
end
|
185
|
+
|
186
|
+
def proxy_global_set(arg,var)
|
187
|
+
client.proxy_global_set(arg,var)
|
188
|
+
end
|
189
|
+
|
174
190
|
# not use it later
|
175
191
|
def start_service(t=10)
|
176
192
|
message = nil
|
@@ -179,7 +195,7 @@ module RubyProxy
|
|
179
195
|
@@logger.info start_command
|
180
196
|
#~ @server_thread = Thread.new do |t|
|
181
197
|
#~ t.abort_on_exception = true
|
182
|
-
|
198
|
+
@service_log = IO.popen(start_command)
|
183
199
|
#~ end
|
184
200
|
#~ @server_thread.abort_on_exception = true
|
185
201
|
wait_until_server_start_time(t)
|
@@ -209,7 +225,7 @@ module RubyProxy
|
|
209
225
|
#~ raise CannotStartServer, "" unless @server_thread.alive?
|
210
226
|
TCPSocket.new(Config.ip,Config.port)
|
211
227
|
@@logger.info "server is starting"
|
212
|
-
do_at_exit
|
228
|
+
#do_at_exit
|
213
229
|
return true
|
214
230
|
rescue Exception
|
215
231
|
sleep 1
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
module RubyProxy
|
4
|
+
class Logger
|
5
|
+
@@logger = ::Logger.new(STDOUT)
|
6
|
+
@@logger.level = ::Logger::INFO
|
7
|
+
|
8
|
+
def self.level=(level)
|
9
|
+
@@logger.level = level
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.level
|
13
|
+
@@logger.level
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.log(arg)
|
17
|
+
@@logger.info arg
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.info(arg)
|
21
|
+
@@logger.info arg
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.debug(arg)
|
25
|
+
@@logger.debug arg
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.warn(arg)
|
29
|
+
@@logger.warn arg
|
30
|
+
end
|
31
|
+
def self.error(arg)
|
32
|
+
@@logger.error arh
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/ruby_proxy/proxy.rb
CHANGED
@@ -1,19 +1,15 @@
|
|
1
|
-
require 'logger'
|
1
|
+
require 'ruby_proxy/logger'
|
2
2
|
require 'drb'
|
3
3
|
require 'ruby_proxy/proxy_load'
|
4
|
+
require 'ruby_proxy/proxy_global_set'
|
4
5
|
|
5
6
|
module RubyProxy
|
6
7
|
class Proxy
|
7
|
-
|
8
|
-
# you can use Proxy.load_path << "" to add load path
|
9
|
-
#~ ProxyLoad.load
|
10
|
-
@@logger = Logger.new(STDOUT)
|
11
|
-
@@logger.level = Logger::INFO
|
12
|
-
|
8
|
+
|
13
9
|
def self.proxy(klass_name,method=nil,*arg)
|
14
|
-
|
15
|
-
|
16
|
-
|
10
|
+
Logger.debug "klass_name= #{klass_name}"
|
11
|
+
Logger.debug "method = #{method}"
|
12
|
+
Logger.debug "arg = #{arg.join(',')}"
|
17
13
|
if method.nil?
|
18
14
|
return proxy_module(klass_name)
|
19
15
|
else
|
@@ -22,12 +18,18 @@ module RubyProxy
|
|
22
18
|
end
|
23
19
|
|
24
20
|
def self.proxy_load(file_or_gem)
|
25
|
-
#~ ProxyLoad.load_path << dir_or_file
|
26
21
|
ProxyLoad.load_file(file_or_gem)
|
27
22
|
end
|
23
|
+
|
24
|
+
def self.proxy_global_set(arg,var)
|
25
|
+
ProxyGlobalSet.set(arg,var)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.proxy_global_get(arg)
|
29
|
+
ProxyGlobalSet.get(arg)
|
30
|
+
end
|
28
31
|
|
29
32
|
def self.proxy_type(klass_name)
|
30
|
-
#@@logger.debug "proxy_type: #{proxy_const_get(klass_name).name} type is #{proxy_const_get(klass_name).class.to_s}"
|
31
33
|
return proxy_const_get(klass_name).class.to_s
|
32
34
|
end
|
33
35
|
|
@@ -38,7 +40,6 @@ module RubyProxy
|
|
38
40
|
end
|
39
41
|
|
40
42
|
def self.proxy_const_get(klass_name)
|
41
|
-
#@@logger.debug "const_get klass_name = #{klass_name}"
|
42
43
|
atu = nil
|
43
44
|
klass_name_array = klass_name.split('::')
|
44
45
|
klass_name_array.shift if klass_name_array[0] == "ATU"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'ruby_proxy/logger'
|
2
|
+
require 'ruby_proxy/exceptions'
|
3
|
+
module RubyProxy
|
4
|
+
class ProxyGlobalSet
|
5
|
+
MAGIC_GLOBAL = [ "$:", "$!", "$@", "$_", "$.", "$&", "$~", "$n", "$=", "$/", "$0", "$*", "$$", "$?" ]
|
6
|
+
class <<self
|
7
|
+
def set(arg,value)
|
8
|
+
arg = convert_to_global(arg)
|
9
|
+
Logger.info "global set: #{arg} = #{value}"
|
10
|
+
eval("#{arg} = #{value}")
|
11
|
+
end
|
12
|
+
|
13
|
+
def get(arg)
|
14
|
+
arg = convert_to_global(arg)
|
15
|
+
Logger.info "global get: #{arg}"
|
16
|
+
eval(arg)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
def convert_to_global(arg)
|
21
|
+
check_format(arg)
|
22
|
+
add_dollar_if_noexist(arg)
|
23
|
+
end
|
24
|
+
|
25
|
+
def check_format(arg)
|
26
|
+
if !MAGIC_GLOBAL.include?(arg) and ! arg.match(/^\$?[a-zA-Z_]{1}[a-zA-Z_0-9]*$/)
|
27
|
+
raise GlobalVarFormatError,"global variable format wrong: #{arg}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def add_dollar_if_noexist(arg)
|
32
|
+
arg = "$" + arg unless arg.match(/^\$/)
|
33
|
+
arg
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,9 +1,6 @@
|
|
1
1
|
require 'logger'
|
2
2
|
module RubyProxy
|
3
3
|
class ProxyLoad
|
4
|
-
@@logger = Logger.new(STDOUT)
|
5
|
-
@@logger.level = Logger::ERROR
|
6
|
-
#~ @@logger.info $:.join(':')
|
7
4
|
@load_path = []
|
8
5
|
class <<self
|
9
6
|
attr_accessor :load_path
|
@@ -20,10 +17,10 @@ module RubyProxy
|
|
20
17
|
end
|
21
18
|
|
22
19
|
def load_file(file)
|
23
|
-
|
20
|
+
Logger.debug "require file : #{file}"
|
24
21
|
require file
|
25
22
|
rescue LoadError=>e
|
26
|
-
|
23
|
+
Logger.warn "require file : #{file} fail,exception:\n#{e}"
|
27
24
|
raise
|
28
25
|
end
|
29
26
|
end
|
data/lib/ruby_proxy/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module RubyProxy
|
2
|
-
VERSION = "0.2.
|
3
|
-
end
|
2
|
+
VERSION = "0.2.1"
|
3
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'setup'
|
2
|
+
|
3
|
+
RubyProxy::Config.command = "/home/windy/.rvm/rubies/jruby-1.6.7/bin/ruby"
|
4
|
+
|
5
|
+
class TestAtuLoad < Test::Unit::TestCase
|
6
|
+
def test_load_ok
|
7
|
+
assert_nothing_raised {
|
8
|
+
ATU.require 'support/atu/hello.rb'
|
9
|
+
}
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_load_noexist
|
13
|
+
assert_raise(LoadError) { ATU.require 'noexist' }
|
14
|
+
end
|
15
|
+
end
|
data/unittests/test_config.rb
CHANGED
@@ -9,7 +9,6 @@ class TestConfig < Test::Unit::TestCase
|
|
9
9
|
def test_config_default
|
10
10
|
assert_equal(8000, @config.port)
|
11
11
|
assert_equal('127.0.0.1', @config.ip)
|
12
|
-
assert_equal('ruby', @config.command)
|
13
12
|
end
|
14
13
|
|
15
14
|
def test_config_personal
|
@@ -17,8 +16,10 @@ class TestConfig < Test::Unit::TestCase
|
|
17
16
|
assert_equal(1111, @config.port)
|
18
17
|
@config.ip = '1.1.1.1'
|
19
18
|
assert_equal('1.1.1.1', @config.ip)
|
19
|
+
old_command = @config.command
|
20
20
|
@config.command = 'ruby'
|
21
21
|
assert_equal('ruby', @config.command)
|
22
|
+
@config.command = old_command
|
22
23
|
end
|
23
24
|
|
24
25
|
end
|
data/unittests/test_drb_proxy.rb
CHANGED
@@ -80,11 +80,6 @@ class TestDrbProxy < Test::Unit::TestCase
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
-
#~ def test_atu_sikuli
|
84
|
-
#~ screen = ATU::Sikuli::Region.new(0,0,1440,900)
|
85
|
-
#~ assert_not_nil(screen)
|
86
|
-
#~ end
|
87
|
-
|
88
83
|
def test_multi_modules
|
89
84
|
a = ATU::M1::Hello4.new
|
90
85
|
assert_equal("one",a.one("test"))
|
@@ -106,10 +101,10 @@ class TestDrbProxy < Test::Unit::TestCase
|
|
106
101
|
# failed, fix me
|
107
102
|
# I have not seen druby's block call. That not be supported to call block.
|
108
103
|
# I will do fixing it later.
|
109
|
-
def test_block_ok
|
110
|
-
|
111
|
-
|
112
|
-
end
|
104
|
+
#def test_block_ok
|
105
|
+
# a = ATU::M1::Hello6.new
|
106
|
+
# assert_equal(1,a.b() {|i| i})
|
107
|
+
#end
|
113
108
|
|
114
109
|
def test_file_path
|
115
110
|
assert_equal([__FILE__],ATU::M1::Hello6.a(__FILE__))
|
@@ -128,4 +123,4 @@ class TestDrbProxy < Test::Unit::TestCase
|
|
128
123
|
assert_equal("normal",hello7.normal)
|
129
124
|
end
|
130
125
|
|
131
|
-
end
|
126
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'setup'
|
2
|
+
|
3
|
+
class TestGlobalVar < Test::Unit::TestCase
|
4
|
+
def test_global_get_ok
|
5
|
+
assert_equal(ATU["$LOAD_PATH"], ATU["LOAD_PATH"])
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_global_get_noexist
|
9
|
+
assert_equal(nil, ATU["NO"])
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_global_get_format_error
|
13
|
+
assert_raise(RubyProxy::GlobalVarFormatError) { ATU["12345"] }
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_global_set_ok
|
17
|
+
ATU["HELLO"] = 10
|
18
|
+
assert_equal(10, ATU["HELLO"])
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,77 +1,95 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-proxy
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- yafei Lee
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
17
|
+
|
18
|
+
date: 2012-04-21 00:00:00 Z
|
13
19
|
dependencies: []
|
20
|
+
|
14
21
|
description: Ruby Proxy for two or more ruby processes.
|
15
22
|
email: lyfi2003@gmail.com
|
16
23
|
executables: []
|
24
|
+
|
17
25
|
extensions: []
|
26
|
+
|
18
27
|
extra_rdoc_files: []
|
19
|
-
|
28
|
+
|
29
|
+
files:
|
20
30
|
- lib/ruby_proxy/config.rb
|
21
31
|
- lib/ruby_proxy/client.rb
|
22
32
|
- lib/ruby_proxy/exceptions.rb
|
23
33
|
- lib/ruby_proxy/proxy_load.rb
|
34
|
+
- lib/ruby_proxy/proxy_global_set.rb
|
24
35
|
- lib/ruby_proxy/server.rb
|
25
36
|
- lib/ruby_proxy/version.rb
|
26
37
|
- lib/ruby_proxy/proxy.rb
|
38
|
+
- lib/ruby_proxy/logger.rb
|
27
39
|
- lib/ruby_proxy.rb
|
28
|
-
- lib/atu/sikuli.rb
|
29
|
-
- lib/atu/sikuli-script.jar
|
30
|
-
- lib/atu/key.rb
|
31
40
|
- lib/test.rb
|
32
41
|
- lib/ext/drb_ext.rb
|
33
42
|
- unittests/test_drb_proxy.rb
|
34
|
-
- unittests/your_jruby_sikuli_config_ok.rb
|
35
43
|
- unittests/test_config.rb
|
44
|
+
- unittests/test_gloabal_var.rb
|
36
45
|
- unittests/all_tests.rb
|
37
46
|
- unittests/support/config.yml
|
38
47
|
- unittests/support/image/search.png
|
39
48
|
- unittests/support/image/start.png
|
40
49
|
- unittests/support/atu/hello.rb
|
41
|
-
- unittests/
|
50
|
+
- unittests/test_atu_require.rb
|
42
51
|
- unittests/setup.rb
|
43
52
|
homepage: https://github.com/windy/ruby_proxy
|
44
53
|
licenses: []
|
54
|
+
|
45
55
|
post_install_message:
|
46
56
|
rdoc_options: []
|
47
|
-
|
57
|
+
|
58
|
+
require_paths:
|
48
59
|
- lib
|
49
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
|
55
|
-
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
hash: 3
|
66
|
+
segments:
|
67
|
+
- 0
|
68
|
+
version: "0"
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
70
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 3
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
version: "0"
|
61
78
|
requirements: []
|
79
|
+
|
62
80
|
rubyforge_project:
|
63
|
-
rubygems_version: 1.8.
|
81
|
+
rubygems_version: 1.8.10
|
64
82
|
signing_key:
|
65
83
|
specification_version: 3
|
66
84
|
summary: Ruby Proxy for two or more ruby processes.
|
67
|
-
test_files:
|
85
|
+
test_files:
|
68
86
|
- unittests/test_drb_proxy.rb
|
69
|
-
- unittests/your_jruby_sikuli_config_ok.rb
|
70
87
|
- unittests/test_config.rb
|
88
|
+
- unittests/test_gloabal_var.rb
|
71
89
|
- unittests/all_tests.rb
|
72
90
|
- unittests/support/config.yml
|
73
91
|
- unittests/support/image/search.png
|
74
92
|
- unittests/support/image/start.png
|
75
93
|
- unittests/support/atu/hello.rb
|
76
|
-
- unittests/
|
94
|
+
- unittests/test_atu_require.rb
|
77
95
|
- unittests/setup.rb
|
data/lib/atu/key.rb
DELETED
@@ -1,218 +0,0 @@
|
|
1
|
-
require 'java'
|
2
|
-
require 'iconv'
|
3
|
-
#require 'drb'
|
4
|
-
java_import 'java.awt.event.InputEvent'
|
5
|
-
class String
|
6
|
-
def to_unicode
|
7
|
-
begin
|
8
|
-
Iconv.iconv("UNICODEBIG//", "utf-8", self)[0]
|
9
|
-
rescue Exception
|
10
|
-
puts $!.class
|
11
|
-
puts $!.message
|
12
|
-
self
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
module ATU
|
18
|
-
##
|
19
|
-
# The Shift key modifier constant.
|
20
|
-
# This equals to java.awt.event.InputEvent.SHIFT_MASK.
|
21
|
-
KEY_SHIFT = InputEvent::SHIFT_MASK
|
22
|
-
##
|
23
|
-
# The Ctrl key modifier constant.
|
24
|
-
# This equals to java.awt.event.InputEvent.CTRL_MASK.
|
25
|
-
KEY_CTRL = InputEvent::CTRL_MASK
|
26
|
-
##
|
27
|
-
# The Meta/Windows/Apple key modifier constant.
|
28
|
-
# This equals to java.awt.event.InputEvent.META_MASK.
|
29
|
-
KEY_META = InputEvent::META_MASK
|
30
|
-
##
|
31
|
-
# The Apple(Command) key modifier constant.
|
32
|
-
# This equals to java.awt.event.InputEvent.META_MASK.
|
33
|
-
KEY_CMD = InputEvent::META_MASK
|
34
|
-
##
|
35
|
-
# The Windows key modifier constant.
|
36
|
-
# This equals to java.awt.event.InputEvent.META_MASK.
|
37
|
-
KEY_WIN = InputEvent::META_MASK
|
38
|
-
##
|
39
|
-
# The Alt key modifier constant.
|
40
|
-
# This equals to java.awt.event.InputEvent.ALT_MASK.
|
41
|
-
KEY_ALT = InputEvent::ALT_MASK
|
42
|
-
|
43
|
-
##
|
44
|
-
# class Key contains the constants of all special keys.
|
45
|
-
class Key
|
46
|
-
include DRb::DRbUndumped
|
47
|
-
##
|
48
|
-
# ENTER
|
49
|
-
ENTER = "\n"
|
50
|
-
##
|
51
|
-
# BACKSPACE
|
52
|
-
BACKSPACE = "\b"
|
53
|
-
##
|
54
|
-
# TAB
|
55
|
-
TAB = "\t"
|
56
|
-
##
|
57
|
-
# ESC
|
58
|
-
ESC = "\u001b".to_unicode
|
59
|
-
##
|
60
|
-
# UP
|
61
|
-
UP = "\ue000".to_unicode
|
62
|
-
##
|
63
|
-
# RIGHT
|
64
|
-
RIGHT = "\ue001".to_unicode
|
65
|
-
##
|
66
|
-
# DOWN
|
67
|
-
DOWN = "\ue002".to_unicode
|
68
|
-
##
|
69
|
-
# LEFT
|
70
|
-
LEFT = "\ue003".to_unicode
|
71
|
-
##
|
72
|
-
# PAGE_UP
|
73
|
-
PAGE_UP = "\ue004".to_unicode
|
74
|
-
##
|
75
|
-
# PAGE_DOWN
|
76
|
-
PAGE_DOWN = "\ue005".to_unicode
|
77
|
-
##
|
78
|
-
# DELETE
|
79
|
-
DELETE = "\ue006".to_unicode
|
80
|
-
##
|
81
|
-
# END
|
82
|
-
KEY_END = "\ue007".to_unicode
|
83
|
-
##
|
84
|
-
# HOME
|
85
|
-
HOME = "\ue008".to_unicode
|
86
|
-
##
|
87
|
-
# INSERT
|
88
|
-
INSERT = "\ue009".to_unicode
|
89
|
-
##
|
90
|
-
# F1
|
91
|
-
F1 = "\ue011".to_unicode
|
92
|
-
##
|
93
|
-
# F2
|
94
|
-
F2 = "\ue012".to_unicode
|
95
|
-
##
|
96
|
-
# F3
|
97
|
-
F3 = "\ue013".to_unicode
|
98
|
-
##
|
99
|
-
# F4
|
100
|
-
F4 = "\ue014".to_unicode
|
101
|
-
##
|
102
|
-
# F5
|
103
|
-
F5 = "\ue015".to_unicode
|
104
|
-
##
|
105
|
-
# F6
|
106
|
-
F6 = "\ue016".to_unicode
|
107
|
-
##
|
108
|
-
# F7
|
109
|
-
F7 = "\ue017".to_unicode
|
110
|
-
##
|
111
|
-
# F8
|
112
|
-
F8 = "\ue018".to_unicode
|
113
|
-
##
|
114
|
-
# F9
|
115
|
-
F9 = "\ue019".to_unicode
|
116
|
-
##
|
117
|
-
# F10
|
118
|
-
F10 = "\ue01A".to_unicode
|
119
|
-
##
|
120
|
-
# F11
|
121
|
-
F11 = "\ue01B".to_unicode
|
122
|
-
##
|
123
|
-
# F12
|
124
|
-
F12 = "\ue01C".to_unicode
|
125
|
-
##
|
126
|
-
# F13
|
127
|
-
F13 = "\ue01D".to_unicode
|
128
|
-
##
|
129
|
-
# F14
|
130
|
-
F14 = "\ue01E".to_unicode
|
131
|
-
##
|
132
|
-
# F15
|
133
|
-
F15 = "\ue01F".to_unicode
|
134
|
-
##
|
135
|
-
# SHIFT
|
136
|
-
SHIFT = "\ue020".to_unicode
|
137
|
-
##
|
138
|
-
# CTRL
|
139
|
-
CTRL = "\ue021".to_unicode
|
140
|
-
##
|
141
|
-
# ALT
|
142
|
-
ALT = "\ue022".to_unicode
|
143
|
-
##
|
144
|
-
# META
|
145
|
-
META = "\ue023".to_unicode
|
146
|
-
##
|
147
|
-
# META
|
148
|
-
CMD = "\ue023".to_unicode
|
149
|
-
##
|
150
|
-
# META
|
151
|
-
WIN = "\ue023".to_unicode
|
152
|
-
|
153
|
-
##
|
154
|
-
# PRINTSCREEN
|
155
|
-
PRINTSCREEN = "\ue024".to_unicode
|
156
|
-
##
|
157
|
-
# SCROLL_LOCK
|
158
|
-
SCROLL_LOCK = "\ue025".to_unicode
|
159
|
-
##
|
160
|
-
# PAUSE
|
161
|
-
PAUSE = "\ue026".to_unicode
|
162
|
-
##
|
163
|
-
# CAPS_LOCK
|
164
|
-
CAPS_LOCK = "\ue027".to_unicode
|
165
|
-
|
166
|
-
##
|
167
|
-
# NUM0
|
168
|
-
NUM0 = "\ue030".to_unicode
|
169
|
-
##
|
170
|
-
# NUM1
|
171
|
-
NUM1 = "\ue031".to_unicode
|
172
|
-
##
|
173
|
-
# NUM2
|
174
|
-
NUM2 = "\ue032".to_unicode
|
175
|
-
##
|
176
|
-
# NUM3
|
177
|
-
NUM3 = "\ue033".to_unicode
|
178
|
-
##
|
179
|
-
# NUM4
|
180
|
-
NUM4 = "\ue034".to_unicode
|
181
|
-
##
|
182
|
-
# NUM5
|
183
|
-
NUM5 = "\ue035".to_unicode
|
184
|
-
##
|
185
|
-
# NUM6
|
186
|
-
NUM6 = "\ue036".to_unicode
|
187
|
-
##
|
188
|
-
# NUM7
|
189
|
-
NUM7 = "\ue037".to_unicode
|
190
|
-
##
|
191
|
-
# NUM8
|
192
|
-
NUM8 = "\ue038".to_unicode
|
193
|
-
##
|
194
|
-
# NUM9
|
195
|
-
NUM9 = "\ue039".to_unicode
|
196
|
-
##
|
197
|
-
# SEPARATOR (numpad)
|
198
|
-
SEPARATOR = "\ue03A".to_unicode
|
199
|
-
##
|
200
|
-
# NUM_LOCK
|
201
|
-
NUM_LOCK = "\ue03B".to_unicode
|
202
|
-
##
|
203
|
-
# ADD (numpad)
|
204
|
-
ADD = "\ue03C".to_unicode
|
205
|
-
##
|
206
|
-
# MINUS (numpad)
|
207
|
-
MINUS = "\ue03D".to_unicode
|
208
|
-
##
|
209
|
-
# MULTIPLY (numpad)
|
210
|
-
MULTIPLY = "\ue03E".to_unicode
|
211
|
-
##
|
212
|
-
# DIVIDE (numpad)
|
213
|
-
DIVIDE = "\ue03F".to_unicode
|
214
|
-
end
|
215
|
-
end
|
216
|
-
|
217
|
-
if __FILE__ == $0
|
218
|
-
end
|
data/lib/atu/sikuli-script.jar
DELETED
Binary file
|
data/lib/atu/sikuli.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'java'
|
3
|
-
#$CLASSPATH << "/Applications/Sikuli-IDE.app/Contents/Resources/Java/"
|
4
|
-
#This is key to making it work under ruby. The path above is the default
|
5
|
-
#installation location on the Mac which contains all of the
|
6
|
-
#relevant sikuli jar files.
|
7
|
-
require "atu/sikuli-script.jar"
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
#~ include Java
|
12
|
-
module ATU
|
13
|
-
module Sikuli
|
14
|
-
java_import 'org.sikuli.script.Region'
|
15
|
-
java_import 'org.sikuli.script.Screen'
|
16
|
-
java_import 'org.sikuli.script.Settings'
|
17
|
-
java_import 'org.sikuli.script.Pattern'
|
18
|
-
java_import 'org.sikuli.script.SikuliEvent'
|
19
|
-
java_import 'org.sikuli.script.SikuliScript'
|
20
|
-
include Java::OrgSikuliScript
|
21
|
-
end
|
22
|
-
class Java::OrgSikuliScript::Region
|
23
|
-
alias old_paste paste
|
24
|
-
def paste(*args)
|
25
|
-
len = args.length
|
26
|
-
if len == 1
|
27
|
-
old_paste(nil,java.lang.String.new(args[0].to_java_bytes,"utf-8"))
|
28
|
-
elsif len== 2
|
29
|
-
old_paste(args[0],java.lang.String.new(args[1].to_java_bytes,"utf-8"))
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
#Sikuli = Java::OrgSikuliScript
|
34
|
-
end
|
35
|
-
if __FILE__ == $0
|
36
|
-
puts ATU::Sikuli
|
37
|
-
@region = ATU::Sikuli::Region.new(0, 0, 1440, 900)
|
38
|
-
puts @region.class
|
39
|
-
puts ATU::Sikuli::C.new.class
|
40
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'setup'
|
2
|
-
|
3
|
-
class TestSikuliApi < Test::Unit::TestCase
|
4
|
-
@@image_path = nil
|
5
|
-
def setup
|
6
|
-
@@image_path ||= File.join(__FILE__,'..','support','image')
|
7
|
-
end
|
8
|
-
def test_sikuli_module
|
9
|
-
screen = ATU::Sikuli::Screen.new
|
10
|
-
assert_equal(0,screen.x)
|
11
|
-
assert_equal(0,screen.y)
|
12
|
-
assert_equal(true,screen.w > 0)
|
13
|
-
assert_equal(true,screen.h > 0)
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_screen_click
|
17
|
-
#region = ATU::Sikuli::Region.new(0,0,1440,900)
|
18
|
-
region = ATU::Sikuli::Screen.new
|
19
|
-
assert_equal(0,region.x)
|
20
|
-
assert_equal(0,region.y)
|
21
|
-
assert_equal(true,File.exist?(File.join(@@image_path,"start.png")))
|
22
|
-
region.click(File.expand_path(File.join(@@image_path, "start.png")),0)
|
23
|
-
assert_nothing_raised do
|
24
|
-
region.wait(File.expand_path(File.join(@@image_path,"search.png")),10)
|
25
|
-
end
|
26
|
-
#~ region.type(ATU::Key.ESC)
|
27
|
-
#~ assert_nothing_raised do
|
28
|
-
#~ region.waitVanish(File.expand_path(File.join(@@image_path,"search.png")),10)
|
29
|
-
#~ end
|
30
|
-
end
|
31
|
-
|
32
|
-
|
33
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'setup'
|
2
|
-
require 'atu/sikuli'
|
3
|
-
class TestSikuliApi < Test::Unit::TestCase
|
4
|
-
@@image_path = nil
|
5
|
-
def setup
|
6
|
-
@@image_path ||= File.join(__FILE__,'..','support','image')
|
7
|
-
end
|
8
|
-
def test_sikuli_module
|
9
|
-
screen = ATU::Sikuli::Screen.new
|
10
|
-
assert_equal(0,screen.x)
|
11
|
-
assert_equal(0,screen.y)
|
12
|
-
assert_equal(true,screen.w > 0)
|
13
|
-
assert_equal(true,screen.h > 0)
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_region_offen_used
|
17
|
-
region = ATU::Sikuli::Region.new(0,0,1440,900)
|
18
|
-
assert_equal(0,region.x)
|
19
|
-
assert_equal(0,region.y)
|
20
|
-
assert_equal(true,File.exist?(File.join(@@image_path,"start.png")))
|
21
|
-
region.click(File.join(@@image_path, "start.png"),0)
|
22
|
-
puts region.wait(File.join(@@image_path,"search.png"),10)
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
end
|