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
- #skill_id(name) ⇒ Object
- #skills(vendor_id = @vendor_id) ⇒ Object
- #status(name) ⇒ Object
- #update_manifest(skill_name, manifest) ⇒ Object
- #update_model(name = nil, model2 = nil, id: nil, stage: 'development', locale: nil, model: model2) ⇒ 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 |
# File 'lib/alexa_skillsdev.rb', line 28 def create_skill(obj) if obj['vendorId'].nil? or obj['vendorId'].empty? then obj['vendorId'] = vendor_id end post "/v1/skills", obj end |
#delete_skill(name = nil, id: nil) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/alexa_skillsdev.rb', line 38 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
48 49 50 |
# File 'lib/alexa_skillsdev.rb', line 48 def list() self.skills[:skills].map {|x| x[:nameByLocale].to_a[0].last} end |
#manifest(name) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/alexa_skillsdev.rb', line 52 def manifest(name) r = skill(name) get r[:_links][:self][:href], symbolize: false end |
#model(name = nil, id: nil, stage: 'development', locale: nil) ⇒ Object Also known as: interaction_model
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/alexa_skillsdev.rb', line 59 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}", smybolize: false 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 |
#skill_id(name) ⇒ Object
114 115 116 |
# File 'lib/alexa_skillsdev.rb', line 114 def skill_id(name) skill(name)[:skillId] end |
#skills(vendor_id = @vendor_id) ⇒ Object
119 120 121 122 123 124 |
# File 'lib/alexa_skillsdev.rb', line 119 def skills(vendor_id=@vendor_id) vendor_id ||= vendor[:id] get "/v1/skills?vendorId=#{vendor_id}" end |
#status(name) ⇒ Object
126 127 128 129 130 131 132 |
# File 'lib/alexa_skillsdev.rb', line 126 def status(name) r = skill(name) #get "/v1/skills/#{r[:skillId]}/status?resource=name1&resource=name2" get "/v1/skills/#{r[:skillId]}/status" end |
#update_manifest(skill_name, manifest) ⇒ Object
159 160 161 |
# File 'lib/alexa_skillsdev.rb', line 159 def update_manifest(skill_name, manifest) update_skill skill_name, manifest: manifest end |
#update_model(name = nil, model2 = nil, id: nil, stage: 'development', locale: nil, model: model2) ⇒ Object
134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/alexa_skillsdev.rb', line 134 def update_model(name=nil, model2=nil, id: nil, stage: 'development', locale: nil, model: model2) 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}", model end |
#update_skill(name = nil, id: nil, stage: 'development', locale: nil, manifest: obj) ⇒ Object
147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/alexa_skillsdev.rb', line 147 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", manifest 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 |