siriproxy-example 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6b04c167e50655597ae82da4d4494c4c606682df
4
+ data.tar.gz: 188f7ddf84aa6d2172021ef095a33eb9ef1b1d03
5
+ SHA512:
6
+ metadata.gz: 57030f74716de9063e2561c877ebeec07079c780a61b25dd8ddbc096ec0f37d7d4f3cb56592eac80434eb8f7bb6a6a75f156f3d23490e1990a27d574b4bba5c4
7
+ data.tar.gz: 172ec74048176b1984090946087b9f987a992d96663e105e2eecea4ef2b4775dca66513356b456d8e6469fa3bf4831a8ace157bf1a8b7b1930e36b4b79cf9c56
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in siriproxy-example.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,95 @@
1
+ require 'cora'
2
+ require 'siri_objects'
3
+ require 'pp'
4
+
5
+ #######
6
+ # This is a "hello world" style plugin. It simply intercepts the phrase "test siri proxy" and responds
7
+ # with a message about the proxy being up and running (along with a couple other core features). This
8
+ # is good base code for other plugins.
9
+ #
10
+ # Remember to add other plugins to the "config.yml" file if you create them!
11
+ ######
12
+
13
+ class SiriProxy::Plugin::Example < SiriProxy::Plugin
14
+ def initialize(config)
15
+ #if you have custom configuration options, process them here!
16
+ end
17
+
18
+ #get the user's location and display it in the logs
19
+ #filters are still in their early stages. Their interface may be modified
20
+ filter "SetRequestOrigin", direction: :from_iphone do |object|
21
+ puts "[Info - User Location] lat: #{object["properties"]["latitude"]}, long: #{object["properties"]["longitude"]}"
22
+
23
+ #Note about returns from filters:
24
+ # - Return false to stop the object from being forwarded
25
+ # - Return a Hash to substitute or update the object
26
+ # - Return nil (or anything not a Hash or false) to have the object forwarded (along with any
27
+ # modifications made to it)
28
+ end
29
+
30
+ listen_for /where am i/i do
31
+ say "Your location is: #{location.address}"
32
+ end
33
+
34
+ listen_for /test siri proxy/i do
35
+ say "Siri Proxy is up and running!" #say something to the user!
36
+
37
+ request_completed #always complete your request! Otherwise the phone will "spin" at the user!
38
+ end
39
+
40
+ #Demonstrate that you can have Siri say one thing and write another"!
41
+ listen_for /you don't say/i do
42
+ say "Sometimes I don't write what I say", spoken: "Sometimes I don't say what I write"
43
+ end
44
+
45
+ #demonstrate state change
46
+ listen_for /siri proxy test state/i do
47
+ set_state :some_state #set a state... this is useful when you want to change how you respond after certain conditions are met!
48
+ say "I set the state, try saying 'confirm state change'"
49
+
50
+ request_completed #always complete your request! Otherwise the phone will "spin" at the user!
51
+ end
52
+
53
+ listen_for /confirm state change/i, within_state: :some_state do #this only gets processed if you're within the :some_state state!
54
+ say "State change works fine!"
55
+ set_state nil #clear out the state!
56
+
57
+ request_completed #always complete your request! Otherwise the phone will "spin" at the user!
58
+ end
59
+
60
+ #demonstrate asking a question
61
+ listen_for /siri proxy test question/i do
62
+ response = ask "Is this thing working?" #ask the user for something
63
+
64
+ if(response =~ /yes/i) #process their response
65
+ say "Great!"
66
+ else
67
+ say "You could have just said 'yes'!"
68
+ end
69
+
70
+ request_completed #always complete your request! Otherwise the phone will "spin" at the user!
71
+ end
72
+
73
+ #demonstrate capturing data from the user (e.x. "Siri proxy number 15")
74
+ listen_for /siri proxy number ([0-9,]*[0-9])/i do |number|
75
+ say "Detected number: #{number}"
76
+
77
+ request_completed #always complete your request! Otherwise the phone will "spin" at the user!
78
+ end
79
+
80
+ #demonstrate injection of more complex objects without shortcut methods.
81
+ listen_for /test map/i do
82
+ add_views = SiriAddViews.new
83
+ add_views.make_root(last_ref_id)
84
+ map_snippet = SiriMapItemSnippet.new
85
+ map_snippet.items << SiriMapItem.new
86
+ utterance = SiriAssistantUtteranceView.new("Testing map injection!")
87
+ add_views.views << utterance
88
+ add_views.views << map_snippet
89
+
90
+ #you can also do "send_object object, target: :guzzoni" in order to send an object to guzzoni
91
+ send_object add_views #send_object takes a hash or a SiriObject object
92
+
93
+ request_completed #always complete your request! Otherwise the phone will "spin" at the user!
94
+ end
95
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "siriproxy-example"
6
+ s.version = "0.0.1"
7
+ s.authors = ["plamoni"]
8
+ s.email = ["plamoni@siriproxy.info"]
9
+ s.homepage = "http://siriproxy.info/"
10
+ s.summary = %q{An Example Siri Proxy Plugin}
11
+ s.description = %q{This is a "hello world" style plugin. It simply intercepts the phrase "text siri proxy" and responds with a message about the proxy being up and running. This is good base code for other plugins. }
12
+ s.licenses = ["MIT"]
13
+ s.rubyforge_project = "siriproxy-example"
14
+
15
+ s.files = `git ls-files 2> /dev/null`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/* 2> /dev/null`.split("\n")
17
+ s.executables = `git ls-files -- bin/* 2> /dev/null`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+
20
+ # specify any dependencies here; for example:
21
+ # s.add_development_dependency "rspec"
22
+ # s.add_runtime_dependency "rest-client"
23
+ end
metadata ADDED
@@ -0,0 +1,51 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: siriproxy-example
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - plamoni
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-07-28 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: 'This is a "hello world" style plugin. It simply intercepts the phrase
14
+ "text siri proxy" and responds with a message about the proxy being up and running.
15
+ This is good base code for other plugins. '
16
+ email:
17
+ - plamoni@siriproxy.info
18
+ executables: []
19
+ extensions: []
20
+ extra_rdoc_files: []
21
+ files:
22
+ - .gitignore
23
+ - Gemfile
24
+ - Rakefile
25
+ - lib/siriproxy-example.rb
26
+ - siriproxy-example.gemspec
27
+ homepage: http://siriproxy.info/
28
+ licenses:
29
+ - MIT
30
+ metadata: {}
31
+ post_install_message:
32
+ rdoc_options: []
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ requirements: []
46
+ rubyforge_project: siriproxy-example
47
+ rubygems_version: 2.0.6
48
+ signing_key:
49
+ specification_version: 4
50
+ summary: An Example Siri Proxy Plugin
51
+ test_files: []