Class: AlexaSkillsDev
- Inherits:
-
Object
- Object
- AlexaSkillsDev
- Defined in:
- lib/alexa_skillsdev.rb
Instance Attribute Summary collapse
-
#vendor_id ⇒ Object
readonly
Returns the value of attribute vendor_id.
Instance Method Summary collapse
- #create_skill(obj) ⇒ Object
- #delete_skill(name = nil, id: nil) ⇒ Object
-
#initialize(accesskey, url: 'https://api.amazonalexa.com', debug: false) ⇒ AlexaSkillsDev
constructor
A new instance of AlexaSkillsDev.
-
#list ⇒ Object
list skills by name.
- #manifest(name) ⇒ Object
- #model(name = nil, id: nil, stage: 'development', locale: nil) ⇒ Object (also: #interaction_model)
- #skill(name = nil, id: nil, stage: 'development', locale: nil) ⇒ Object
- #skills(vendor_id = @vendor_id) ⇒ Object
- #status(name) ⇒ Object
- #update_model(name = nil, id: nil, stage: 'development', locale: nil, model: obj) ⇒ Object
- #update_skill(name = nil, id: nil, stage: 'development', locale: nil, manifest: obj) ⇒ Object
- #vendor ⇒ Object
- #vendors ⇒ Object
Constructor Details
#initialize(accesskey, url: 'https://api.amazonalexa.com', debug: false) ⇒ AlexaSkillsDev
Returns a new instance of AlexaSkillsDev.
22 23 24 25 26 |
# File 'lib/alexa_skillsdev.rb', line 22 def initialize(accesskey, url: 'https://api.amazonalexa.com', debug: false) @accesskey, @url_base, @debug = accesskey, url, debug end |
Instance Attribute Details
#vendor_id ⇒ Object (readonly)
Returns the value of attribute vendor_id.
20 21 22 |
# File 'lib/alexa_skillsdev.rb', line 20 def vendor_id @vendor_id end |
Instance Method Details
#create_skill(obj) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/alexa_skillsdev.rb', line 28 def create_skill(obj) if obj['vendorId'].nil? or obj['vendorId'].empty? then vendor() obj['vendorId'] = vendor_id end post "/v1/skills", obj end |
#delete_skill(name = nil, id: nil) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/alexa_skillsdev.rb', line 39 def delete_skill(name=nil, id: nil) skill_id = name ? skill(name)[:skillId] : id delete "/v1/skills/#{skill_id}/" end |
#list ⇒ Object
list skills by name
49 50 51 |
# File 'lib/alexa_skillsdev.rb', line 49 def list() self.skills[:skills].map {|x| x[:nameByLocale].to_a[0].last} end |
#manifest(name) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/alexa_skillsdev.rb', line 53 def manifest(name) r = skill(name) get r[:_links][:self][:href] end |
#model(name = nil, id: nil, stage: 'development', locale: nil) ⇒ Object Also known as: interaction_model
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/alexa_skillsdev.rb', line 60 def model(name=nil, id: nil, stage: 'development', locale: nil) if name then r = skill(name) id, stage, locale = r[:skillId], r[:stage], r[:nameByLocale].keys.first end puts "id: %s stage: %s locale: %s" % [id, stage, locale] if @debug get "/v1/skills/#{id}/stages/#{stage}/interactionModel/locales/#{locale}" end |
#skill(name = nil, id: nil, stage: 'development', locale: nil) ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/alexa_skillsdev.rb', line 93 def skill(name=nil, id: nil, stage: 'development', locale: nil) if name then r = self.skills()[:skills].select do |x| if locale then x[:nameByLocale][locale].downcase == name.downcase else x[:nameByLocale].to_a[0].last.downcase == name.downcase end end return r.first if r.any? end get "/v1/skills/#{id}/stages/#{stage}/manifest" end |
#skills(vendor_id = @vendor_id) ⇒ Object
115 116 117 118 119 120 |
# File 'lib/alexa_skillsdev.rb', line 115 def skills(vendor_id=@vendor_id) vendor_id ||= vendor[:id] get "/v1/skills?vendorId=#{vendor_id}" end |
#status(name) ⇒ Object
122 123 124 125 126 127 128 |
# File 'lib/alexa_skillsdev.rb', line 122 def status(name) r = skill(name) #get "/v1/skills/#{r[:skillId]}/status?resource=name1&resource=name2" get "/v1/skills/#{r[:skillId]}/status" end |
#update_model(name = nil, id: nil, stage: 'development', locale: nil, model: obj) ⇒ Object
130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/alexa_skillsdev.rb', line 130 def update_model(name=nil, id: nil, stage: 'development', locale: nil, model: obj) if name then r = skill(name) id, stage, locale = r[:skillId], r[:stage], r[:nameByLocale].keys.first end put "/v1/skills/#{id}/stages/#{stage}/interactionModel/locales/#{locale}", obj end |
#update_skill(name = nil, id: nil, stage: 'development', locale: nil, manifest: obj) ⇒ Object
142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/alexa_skillsdev.rb', line 142 def update_skill(name=nil, id: nil, stage: 'development', locale: nil, manifest: obj) if name then r = skill(name) id, stage, locale = r[:skillId], r[:stage], r[:nameByLocale].keys.first end put "/v1/skills/#{id}/stages/#{stage}/manifest", obj end |
#vendor ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/alexa_skillsdev.rb', line 74 def vendor() h = self.vendors()[:vendors].first @vendor_id = h[:id] h end |
#vendors ⇒ Object
87 88 89 90 91 |
# File 'lib/alexa_skillsdev.rb', line 87 def vendors() get '/v1/vendors' end |