Class: AlexaSkillResponse
- Inherits:
-
Object
- Object
- AlexaSkillResponse
- Defined in:
- lib/alexa_skillresponse.rb
Instance Method Summary collapse
-
#initialize(package, debug: false, rsc: nil, whitelist: {users: nil, devices: nil}) ⇒ AlexaSkillResponse
constructor
A new instance of AlexaSkillResponse.
- #reset ⇒ Object (also: #reload)
- #run(h) ⇒ Object
Constructor Details
#initialize(package, debug: false, rsc: nil, whitelist: {users: nil, devices: nil}) ⇒ AlexaSkillResponse
Returns a new instance of AlexaSkillResponse.
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/alexa_skillresponse.rb', line 12 def initialize(package, debug: false, rsc: nil, whitelist: {users: nil, devices: nil}) @rscript = RScript.new(type: 'response', debug: debug) @package, @debug, @rsc = package, debug, rsc puts '@package: ' + @package.inspect if @debug @users, @devices = whitelist[:users], whitelist[:devices] puts '@user_list: ' + @user_list.inspect if @debug end |
Instance Method Details
#reset ⇒ Object Also known as: reload
24 25 26 |
# File 'lib/alexa_skillresponse.rb', line 24 def reset() @rscript.reset end |
#run(h) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/alexa_skillresponse.rb', line 30 def run(h) puts 'inside run: '.info if @debug userid = h[:session][:user][:userId] puts ('userid: ' + userid.inspect).debug if @debug deviceid = h[:context][:System][:device][:deviceId] puts ('deviceid: ' + userid.inspect).debug if @debug if @users and not @users.include? userid then return output('Sorry, unauthorized user.') else user = @users[userid] puts ('user: ' + user.inspect).debug if @debug end if @devices and not @devices.include? deviceid then return output('Sorry, unauthorized device.') else device = @devices[deviceid] puts ('device: ' + device.inspect).debug if @debug end req = h[:request] id = req[:type] == 'IntentRequest' ? req[:intent][:name] : 'welcome' puts 'id: ' + id.inspect if @debug code, _, attr = @rscript.read ['//response:' + id, @package] if @rsc then rsc = @rsc puts 'rsc found'.info if @debug if rsc.registry and user and device then puts ('sending to the registry').info if @debug rsc.registry.set_key("hkey_apps/alexa/users/" + user.downcase.gsub(/\W+/,'_') + "/lastsession/device", device) end end puts 'code:' + code.inspect if @debug text, mimetype = eval(code) return out if mimetype == 'application/json' output text, attentive: attr[:attentive] =begin =end end |