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.
@@ -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
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in sikuli_ruby.gemspec
4
+ gemspec
@@ -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
@@ -0,0 +1,4 @@
1
+ module Sikuli
2
+ class TargetNotFound < StandardError
3
+ end
4
+ end
@@ -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: []