sikuli-slides 1.0.0-java
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.
- checksums.yaml +15 -0
- data/Gemfile +4 -0
- data/README.md +25 -0
- data/lib/sikuli-slides.rb +7 -0
- data/lib/sikuli-slides/exception.rb +4 -0
- data/lib/sikuli-slides/jars/logback-classic-1.0.13.jar +0 -0
- data/lib/sikuli-slides/jars/logback-core-1.0.13.jar +0 -0
- data/lib/sikuli-slides/jars/sikuli-slides-api-1.4.0.jar +0 -0
- data/lib/sikuli-slides/slides.rb +74 -0
- data/sikuli-slides.gemspec +22 -0
- metadata +55 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NGM2ZGIzMmFhNzIwZmZiNjM2NDA4Mzg3ZTY5NzA4Nzk4MTE2NjliNw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MWU0ZmFkZTk0NDMzNWY5ZmYwZDA5ZjA2NWQyNGJjODFhMmI4YTgzNg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YTM3N2RmZWQ5NmQzYmM3YjRiMmE5MjdiMzJkYTAwMzEzMmJjNzRmMjNlNjRh
|
10
|
+
ZjNmZTIyNWJjMmY0MmQ3OTYwMzcwN2NkOWU3MGM5Y2M1Y2MwYTI5Y2RiZjU5
|
11
|
+
ZjU2MjEzZTZlNWY3NjBmNzQyMDE3ZTgxZTk3ZTBmYTg2ZWQ4NjY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Nzc2N2UxNjBkODdiMjYwZGIzY2U5ODNjY2FhMDM5NDgxNzljZDNlYWJlZDYx
|
14
|
+
MjU3MTExNGU2NTMyN2U1NjY1ZDgxN2JiZjRkYTNkN2ZmODY3OWMzYWZiZjli
|
15
|
+
MDcxNzNkY2M2YWQzMDA1YzY2NzI3YjUzMDhmOTIxZWNiNzJlYmM=
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
Sikuli Slides Ruby
|
2
|
+
==================
|
3
|
+
|
4
|
+
[Sikuli Slides] (http://slides.sikuli.org/) allows you to interact with your application's user interface using image based search to automate user actions.
|
5
|
+
|
6
|
+
Requirements
|
7
|
+
------------
|
8
|
+
|
9
|
+
* [JRuby](http://jruby.org/download) or `rvm install jruby`
|
10
|
+
|
11
|
+
Compatibility
|
12
|
+
-------------
|
13
|
+
It's recommended to use JRuby ~> 1.6.0 and run it in 1.9 mode to get unicode characters working as expected.
|
14
|
+
|
15
|
+
Installation
|
16
|
+
------------
|
17
|
+
|
18
|
+
jruby -S gem install sikuli-slides
|
19
|
+
|
20
|
+
Usage
|
21
|
+
-----
|
22
|
+
|
23
|
+
require 'sikuli-slides'
|
24
|
+
Sikuli::Slides.execute "helloworld.pptx"
|
25
|
+
|
@@ -0,0 +1,7 @@
|
|
1
|
+
require 'sikuli-slides/slides'
|
2
|
+
require 'sikuli-slides/exception'
|
3
|
+
Sikuli::Slides.load_jars!
|
4
|
+
level = Java::Ch.qos.logback.classic.Level.toLevel("INFO")
|
5
|
+
#puts level
|
6
|
+
#java_import 'ch/qos/logback/classic/Logger'
|
7
|
+
org.slf4j.LoggerFactory.getLogger("org.sikuli.slides").setLevel level
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module Sikuli
|
2
|
+
class Slides
|
3
|
+
|
4
|
+
def self.jars_root
|
5
|
+
File.join("#{File.dirname(__FILE__)}", "jars")
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.load_jars!
|
9
|
+
require 'java'
|
10
|
+
puts jars_root
|
11
|
+
Dir["#{jars_root}/*.jar"].each {|jar|
|
12
|
+
require jar
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.execute(filename)
|
17
|
+
begin
|
18
|
+
org.sikuli.slides.api.Slides.execute(java.io.File.new(filename))
|
19
|
+
rescue org.sikuli.slides.api.SlideExecutionException => e
|
20
|
+
if e.message.match "target"
|
21
|
+
raise TargetNotFound
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.createContext(params = {})
|
27
|
+
context = org.sikuli.slides.api.Context.new
|
28
|
+
if params[:minScore]
|
29
|
+
context.setMinScore(params[:minScore])
|
30
|
+
end
|
31
|
+
if params[:waitTime]
|
32
|
+
context.setWaitTime(params[:waitTime])
|
33
|
+
end
|
34
|
+
if params[:logLevel]
|
35
|
+
level = Java::Ch.qos.logback.classic.Level.toLevel(params[:logLevel])
|
36
|
+
if level
|
37
|
+
org.slf4j.LoggerFactory.getLogger("org.sikuli.slides").setLevel level
|
38
|
+
else
|
39
|
+
level = Java::Ch.qos.logback.classic.Level.toLevel("INFO")
|
40
|
+
org.slf4j.LoggerFactory.getLogger("org.sikuli.slides").setLevel
|
41
|
+
end
|
42
|
+
end
|
43
|
+
if params[:params]
|
44
|
+
params[:params].each do |key, val|
|
45
|
+
context.addParameter(key, val)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
if params[:start]
|
49
|
+
if params[:start].is_a?(String)
|
50
|
+
filter = org.sikuli.slides.api::ExecutionFilter::Factory.createStartFromBookmarkFilter params[:start]
|
51
|
+
else
|
52
|
+
filter = org.sikuli.slides.api::ExecutionFilter::Factory.createStartFromSlideFilter params[:start]
|
53
|
+
end
|
54
|
+
context.setExecutionFilter(filter)
|
55
|
+
end
|
56
|
+
if params[:screen]
|
57
|
+
context.setScreenRegion(org.sikuli.api.DesktopScreenRegion.new(params[:screen]))
|
58
|
+
end
|
59
|
+
context
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.execute(filename, params = {} )
|
63
|
+
begin
|
64
|
+
context = createContext(params)
|
65
|
+
org.sikuli.slides.api.Slides.execute(java.io.File.new(filename), context)
|
66
|
+
rescue org.sikuli.slides.api.SlideExecutionException => e
|
67
|
+
if e.message.match "target"
|
68
|
+
raise TargetNotFound
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
#require "sikuli/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
#s.add_development_dependency "rspec"
|
7
|
+
s.name = "sikuli-slides"
|
8
|
+
# s.files = ['lib/sikuli-slides.rb']
|
9
|
+
s.version = "1.0.0"
|
10
|
+
s.authors = ["Khalid Alharbi", "Tom Yeh"]
|
11
|
+
s.email = ["khalid.alharbi@colorado.edu", "tom.yeh@colorado.edu"]
|
12
|
+
s.homepage = "http://lab.sikuli.org"
|
13
|
+
s.summary = %q{Ruby wrapper for Sikuli Slides}
|
14
|
+
s.description = %q{Sikuli Slides allows you to execute presentation slides to interact user interfaces.}
|
15
|
+
s.platform = 'java'
|
16
|
+
# s.rubyforge_project = "sikuli-slides"
|
17
|
+
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
s.require_paths = ["lib"]
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sikuli-slides
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: java
|
6
|
+
authors:
|
7
|
+
- Khalid Alharbi
|
8
|
+
- Tom Yeh
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-08-24 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: Sikuli Slides allows you to execute presentation slides to interact user
|
15
|
+
interfaces.
|
16
|
+
email:
|
17
|
+
- khalid.alharbi@colorado.edu
|
18
|
+
- tom.yeh@colorado.edu
|
19
|
+
executables: []
|
20
|
+
extensions: []
|
21
|
+
extra_rdoc_files: []
|
22
|
+
files:
|
23
|
+
- Gemfile
|
24
|
+
- README.md
|
25
|
+
- lib/sikuli-slides.rb
|
26
|
+
- lib/sikuli-slides/exception.rb
|
27
|
+
- lib/sikuli-slides/jars/logback-classic-1.0.13.jar
|
28
|
+
- lib/sikuli-slides/jars/logback-core-1.0.13.jar
|
29
|
+
- lib/sikuli-slides/jars/sikuli-slides-api-1.4.0.jar
|
30
|
+
- lib/sikuli-slides/slides.rb
|
31
|
+
- sikuli-slides.gemspec
|
32
|
+
homepage: http://lab.sikuli.org
|
33
|
+
licenses: []
|
34
|
+
metadata: {}
|
35
|
+
post_install_message:
|
36
|
+
rdoc_options: []
|
37
|
+
require_paths:
|
38
|
+
- lib
|
39
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
requirements: []
|
50
|
+
rubyforge_project:
|
51
|
+
rubygems_version: 2.0.7
|
52
|
+
signing_key:
|
53
|
+
specification_version: 4
|
54
|
+
summary: Ruby wrapper for Sikuli Slides
|
55
|
+
test_files: []
|