alexa_modelbuilder 0.1.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c44e124875b4740defdf51be9c5595e8350462dc
4
+ data.tar.gz: 3c020c59c2b8176bb40d22288402ef7ac161f3d3
5
+ SHA512:
6
+ metadata.gz: c83b559c32bafdfe230f28ba4dd31ba93814b44c2230611b6afd8d951acf2512248c664552b5986a4f1c6ed7e362e1e39187459d7598f3b4fffef5ac1e97bdd6
7
+ data.tar.gz: 07aa420de775265458e5aa5d22bdfd33fc12436b4a26fefae47b0d40df7d0c2dddbf04604b692035d1c777a5cbfdaa5a86e7acc413c1ff3dcb7c364fa9830c8b
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ �3�s��IAݏ��*GB�(@�m�3��a���:$"�� b$�
2
+ ͆�������G�ڞT-qKy������Ҵ1���$Cp�z��4+� �H�P��ӓP��P�A���y����I9�d��2xۿ�1P��k�V3ד�"m|���� '�:����vT���~lN����C�ibp >+ �^��^}7�ދ��D�kP�Þ�Qc�B�^?ݏ��*�!e=5o�bN�E�� �; M�ɯ �">�
data.tar.gz.sig ADDED
Binary file
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: alexa_modelbuilder.rb
4
+
5
+
6
+ require 'json'
7
+ require 'lineparser'
8
+
9
+
10
+ class AlexaModelBuilder
11
+
12
+ attr_reader :to_h, to_json
13
+
14
+ def initialize(s)
15
+
16
+ parse(s)
17
+
18
+ end
19
+
20
+ private
21
+
22
+ def parse(lines)
23
+
24
+ patterns = [
25
+ [:root, 'invocation: :invocation', :invocation],
26
+ [:root, 'types: :types', :types],
27
+ [:types, /(.*)/, :type],
28
+ [:root, ':intent', :intent],
29
+ [:intent, ':utterance', :utterance],
30
+ [:intent, 'slots: :slots', :slots],
31
+ [:slots, /(.*)/, :slot],
32
+ [:all, /#/, :comment]
33
+ ]
34
+
35
+ lp = LineParser.new patterns
36
+ r = lp.parse lines
37
+
38
+ h = {
39
+ 'interactionModel' => {
40
+ 'languageModel' => {
41
+ 'invocationName' => '',
42
+ 'intents' => [],
43
+ 'types' => []
44
+ }
45
+ }
46
+ }
47
+
48
+ lm = h['interactionModel']['languageModel']
49
+ lm['invocationName'] = r[0][1].values.first
50
+
51
+ raw_intents = r.select {|x| x.first == :intent}
52
+
53
+ intents = raw_intents.map do |x|
54
+
55
+ {'name' => x[1].values.first, 'samples' => [] }
56
+
57
+ end
58
+
59
+ lm['intents'] = intents
60
+
61
+ raw_types = r.find {|x| x.first == :types}
62
+
63
+ if raw_types then
64
+
65
+ name, raw_val = raw_types[2][1].first.split(/: */)
66
+ values = raw_val.split(/, */)
67
+
68
+ types = {'name' => name, 'values' => values.map {|x| {'name' => {'value' => x }} } }
69
+
70
+ lm['types'] = types
71
+
72
+ end
73
+
74
+ @to_h = h
75
+ @to_json = h.to_json
76
+
77
+ end
78
+
79
+ end
80
+
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alexa_modelbuilder
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwNjE4MTcwNDUyWhcN
15
+ MTkwNjE4MTcwNDUyWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+SJpX
17
+ +nH+Ievc1qgHOIf97OgpljfeCeVA3FjTdzBgxTlnwUhj5sc+sXVw1GDZS3fg8ZJG
18
+ URoKuur0huPVyucE9k1AqKC9xwqOU2lmzMFzl0WsZxMOaH8Qsz/1Lx4AL8gBa112
19
+ Ssrunl1xH0worzViPFjpUPzuLoC/jbGJAZp+V05PXFh1ol3ujmpme+lmZXRgz20R
20
+ Th1qbeEXvFx4GnU4hAa9L+sfsKGxfiCS9vgyONl2Na6WdFASQOd6eSZdbXuoTdEj
21
+ cUbW43nDoJqjh7OAZnI8WJu3bvm5+LzK8t1icYxK2wQZbddR+Ba7CDH1Gjd1GTAe
22
+ Jw24aq5hwPDxmdmpAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
+ HQYDVR0OBBYEFKdo5euky6stm3UHYk+aEk8wehp0MCYGA1UdEQQfMB2BG2dlbW1h
24
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
+ ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAKqZCwcqbhTIBwz+yH5V
26
+ 4UV+I7GpVuqwPeo3dRqOw5eVi2tiBpxvZyLavb0ZsS1wW2dw5UXuKA92kfKHdPKw
27
+ r9Qlt0AWVSSFeMTA03k3kvmoy4KfEmwCDvTCApCKGtnMs9lM/CINEjiGpdx2+uDt
28
+ Yl7cDQmBXSxviivsX4YYNY1OGK2WkHuZi31lXOaOo0zNObswfG6UH1IBFFgNiaAH
29
+ 4aH16391VH5ffyj3592yd3c4glwYF+s/KA/+Yi52GlOSSD1a8DuugLIfQar5ndiZ
30
+ EgZc9/Cpxo+WohlXR69qWm5QxX8PvdLu5ZjGD2OH5pBAPToJQyk9O8kZB9OdDMZT
31
+ tns=
32
+ -----END CERTIFICATE-----
33
+ date: 2018-06-18 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: lineparser
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.1'
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 0.1.16
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - "~>"
50
+ - !ruby/object:Gem::Version
51
+ version: '0.1'
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.16
55
+ description:
56
+ email: james@jamesrobertson.eu
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - lib/alexa_modelbuilder.rb
62
+ homepage: https://github.com/jrobertson/alexa_modelbuilder
63
+ licenses:
64
+ - MIT
65
+ metadata: {}
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ requirements: []
81
+ rubyforge_project:
82
+ rubygems_version: 2.6.13
83
+ signing_key:
84
+ specification_version: 4
85
+ summary: Builds an Alexa Interaction Model in JSON format from plain text
86
+ test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ *U��|L]�w�������`5�QF�x��w�b�=��>�zt~"�.z��=:��:®���nZ͔2=�e����m6���e_T���\��θ��պ=�p.Q&+�%�Y�я�ITd`u:Hr�jA)V�9���5uπ���s�P�q?��;K����G�,����U\���~�zZ�1K���ю�qt�/M���=�4��҂\���P@u ���mk��'�_�e��ȻLF��U��_;�y�Y_���;)��v�P7!