restcomm-ruby 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. data/AUTHORS.md +38 -0
  2. data/CHANGES.md +171 -0
  3. data/Gemfile +11 -0
  4. data/LICENSE +662 -0
  5. data/LICENSE.md +19 -0
  6. data/Makefile +12 -0
  7. data/README.md +155 -0
  8. data/Rakefile +10 -0
  9. data/conf/cacert.pem +3376 -0
  10. data/docs/Makefile +130 -0
  11. data/docs/_themes/LICENSE +45 -0
  12. data/docs/_themes/README.rst +25 -0
  13. data/docs/_themes/flask_theme_support.py +86 -0
  14. data/docs/_themes/kr/layout.html +32 -0
  15. data/docs/_themes/kr/relations.html +19 -0
  16. data/docs/_themes/kr/static/flasky.css_t +469 -0
  17. data/docs/_themes/kr/static/small_flask.css +70 -0
  18. data/docs/_themes/kr/theme.conf +7 -0
  19. data/docs/_themes/kr_small/layout.html +22 -0
  20. data/docs/_themes/kr_small/static/flasky.css_t +287 -0
  21. data/docs/_themes/kr_small/theme.conf +10 -0
  22. data/docs/changelog.rst +1 -0
  23. data/docs/conf.py +266 -0
  24. data/docs/faq.rst +42 -0
  25. data/docs/getting-started.rst +100 -0
  26. data/docs/index.rst +109 -0
  27. data/docs/make.bat +170 -0
  28. data/docs/src/pip-delete-this-directory.txt +5 -0
  29. data/docs/usage/accounts.rst +96 -0
  30. data/docs/usage/addresses.rst +102 -0
  31. data/docs/usage/applications.rst +111 -0
  32. data/docs/usage/basics.rst +120 -0
  33. data/docs/usage/caller-ids.rst +47 -0
  34. data/docs/usage/conferences.rst +112 -0
  35. data/docs/usage/errors.rst +31 -0
  36. data/docs/usage/messages.rst +142 -0
  37. data/docs/usage/notifications.rst +72 -0
  38. data/docs/usage/phone-calls.rst +193 -0
  39. data/docs/usage/phone-numbers.rst +192 -0
  40. data/docs/usage/queues.rst +117 -0
  41. data/docs/usage/recordings.rst +102 -0
  42. data/docs/usage/sip.rst +108 -0
  43. data/docs/usage/token-generation.rst +96 -0
  44. data/docs/usage/transcriptions.rst +34 -0
  45. data/docs/usage/twiml.rst +69 -0
  46. data/docs/usage/validation.rst +107 -0
  47. data/examples/examples.rb +200 -0
  48. data/examples/print-call-log.rb +25 -0
  49. data/lib/rack/restcomm_webhook_authentication.rb +47 -0
  50. data/lib/restcomm-ruby.rb +103 -0
  51. data/lib/restcomm-ruby/rest/accounts.rb +17 -0
  52. data/lib/restcomm-ruby/rest/addresses.rb +12 -0
  53. data/lib/restcomm-ruby/rest/addresses/dependent_phone_numbers.rb +6 -0
  54. data/lib/restcomm-ruby/rest/applications.rb +6 -0
  55. data/lib/restcomm-ruby/rest/authorized_connect_apps.rb +6 -0
  56. data/lib/restcomm-ruby/rest/available_phone_numbers.rb +13 -0
  57. data/lib/restcomm-ruby/rest/available_phone_numbers/country.rb +10 -0
  58. data/lib/restcomm-ruby/rest/available_phone_numbers/local.rb +11 -0
  59. data/lib/restcomm-ruby/rest/available_phone_numbers/mobile.rb +11 -0
  60. data/lib/restcomm-ruby/rest/available_phone_numbers/toll_free.rb +11 -0
  61. data/lib/restcomm-ruby/rest/call_feedback.rb +28 -0
  62. data/lib/restcomm-ruby/rest/call_feedback_summary.rb +13 -0
  63. data/lib/restcomm-ruby/rest/calls.rb +37 -0
  64. data/lib/restcomm-ruby/rest/client.rb +555 -0
  65. data/lib/restcomm-ruby/rest/conferences.rb +12 -0
  66. data/lib/restcomm-ruby/rest/conferences/participants.rb +23 -0
  67. data/lib/restcomm-ruby/rest/connect_apps.rb +6 -0
  68. data/lib/restcomm-ruby/rest/errors.rb +14 -0
  69. data/lib/restcomm-ruby/rest/incoming_phone_numbers.rb +17 -0
  70. data/lib/restcomm-ruby/rest/incoming_phone_numbers/local.rb +13 -0
  71. data/lib/restcomm-ruby/rest/incoming_phone_numbers/mobile.rb +13 -0
  72. data/lib/restcomm-ruby/rest/incoming_phone_numbers/toll_free.rb +13 -0
  73. data/lib/restcomm-ruby/rest/instance_resource.rb +88 -0
  74. data/lib/restcomm-ruby/rest/list_resource.rb +132 -0
  75. data/lib/restcomm-ruby/rest/media.rb +14 -0
  76. data/lib/restcomm-ruby/rest/messages.rb +23 -0
  77. data/lib/restcomm-ruby/rest/next_gen_list_resource.rb +29 -0
  78. data/lib/restcomm-ruby/rest/notifications.rb +6 -0
  79. data/lib/restcomm-ruby/rest/outgoing_caller_ids.rb +25 -0
  80. data/lib/restcomm-ruby/rest/queues.rb +12 -0
  81. data/lib/restcomm-ruby/rest/queues/members.rb +29 -0
  82. data/lib/restcomm-ruby/rest/recordings.rb +35 -0
  83. data/lib/restcomm-ruby/rest/sandbox.rb +5 -0
  84. data/lib/restcomm-ruby/rest/sip.rb +10 -0
  85. data/lib/restcomm-ruby/rest/sip/credential_lists.rb +11 -0
  86. data/lib/restcomm-ruby/rest/sip/credential_lists/credentials.rb +6 -0
  87. data/lib/restcomm-ruby/rest/sip/domains.rb +12 -0
  88. data/lib/restcomm-ruby/rest/sip/domains/credential_list_mappings.rb +6 -0
  89. data/lib/restcomm-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +6 -0
  90. data/lib/restcomm-ruby/rest/sip/ip_access_control_lists.rb +11 -0
  91. data/lib/restcomm-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +6 -0
  92. data/lib/restcomm-ruby/rest/sms.rb +11 -0
  93. data/lib/restcomm-ruby/rest/sms/messages.rb +39 -0
  94. data/lib/restcomm-ruby/rest/sms/short_codes.rb +8 -0
  95. data/lib/restcomm-ruby/rest/task_router/activities.rb +8 -0
  96. data/lib/restcomm-ruby/rest/task_router/events.rb +8 -0
  97. data/lib/restcomm-ruby/rest/task_router/reservations.rb +8 -0
  98. data/lib/restcomm-ruby/rest/task_router/task_queues.rb +8 -0
  99. data/lib/restcomm-ruby/rest/task_router/task_queues_statistics.rb +15 -0
  100. data/lib/restcomm-ruby/rest/task_router/tasks.rb +15 -0
  101. data/lib/restcomm-ruby/rest/task_router/workers.rb +8 -0
  102. data/lib/restcomm-ruby/rest/task_router/workers_statistics.rb +8 -0
  103. data/lib/restcomm-ruby/rest/task_router/workflow_statistics.rb +7 -0
  104. data/lib/restcomm-ruby/rest/task_router/workflows.rb +8 -0
  105. data/lib/restcomm-ruby/rest/task_router/workspace_statistics.rb +7 -0
  106. data/lib/restcomm-ruby/rest/task_router/workspaces.rb +15 -0
  107. data/lib/restcomm-ruby/rest/tokens.rb +7 -0
  108. data/lib/restcomm-ruby/rest/transcriptions.rb +6 -0
  109. data/lib/restcomm-ruby/rest/usage.rb +10 -0
  110. data/lib/restcomm-ruby/rest/usage/records.rb +21 -0
  111. data/lib/restcomm-ruby/rest/usage/triggers.rb +12 -0
  112. data/lib/restcomm-ruby/rest/utils.rb +49 -0
  113. data/lib/restcomm-ruby/task_router.rb +0 -0
  114. data/lib/restcomm-ruby/task_router/capability.rb +87 -0
  115. data/lib/restcomm-ruby/twiml/response.rb +16 -0
  116. data/lib/restcomm-ruby/util.rb +15 -0
  117. data/lib/restcomm-ruby/util/capability.rb +64 -0
  118. data/lib/restcomm-ruby/util/configuration.rb +7 -0
  119. data/lib/restcomm-ruby/util/request_validator.rb +37 -0
  120. data/lib/restcomm-ruby/version.rb +3 -0
  121. data/restcomm-ruby.gemspec +34 -0
  122. data/spec/rack/twilio_webhook_authentication_spec.rb +110 -0
  123. data/spec/rest/account_spec.rb +89 -0
  124. data/spec/rest/address_spec.rb +11 -0
  125. data/spec/rest/call_feedback_spec.rb +12 -0
  126. data/spec/rest/call_feedback_summary_spec.rb +9 -0
  127. data/spec/rest/call_spec.rb +22 -0
  128. data/spec/rest/client_spec.rb +258 -0
  129. data/spec/rest/conference_spec.rb +11 -0
  130. data/spec/rest/instance_resource_spec.rb +15 -0
  131. data/spec/rest/message_spec.rb +12 -0
  132. data/spec/rest/numbers_spec.rb +58 -0
  133. data/spec/rest/queue_spec.rb +11 -0
  134. data/spec/rest/recording_spec.rb +11 -0
  135. data/spec/rest/sms/message_spec.rb +37 -0
  136. data/spec/rest/sms/messages_spec.rb +36 -0
  137. data/spec/rest/task_router/reservation_spec.rb +9 -0
  138. data/spec/rest/task_router/task_queue_spec.rb +9 -0
  139. data/spec/rest/token_spec.rb +7 -0
  140. data/spec/rest/utils_spec.rb +45 -0
  141. data/spec/spec_helper.rb +15 -0
  142. data/spec/support/fakeweb.rb +2 -0
  143. data/spec/task_router_spec.rb +114 -0
  144. data/spec/twilio_spec.rb +15 -0
  145. data/spec/util/capability_spec.rb +186 -0
  146. data/spec/util/configuration_spec.rb +13 -0
  147. data/spec/util/request_validator_spec.rb +93 -0
  148. data/spec/util/url_encode_spec.rb +12 -0
  149. metadata +298 -0
data/docs/Makefile ADDED
@@ -0,0 +1,130 @@
1
+ # Makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line.
5
+ SPHINXOPTS =
6
+ SPHINXBUILD = sphinx-build
7
+ PAPER =
8
+ BUILDDIR = _build
9
+
10
+ # Internal variables.
11
+ PAPEROPT_a4 = -D latex_paper_size=a4
12
+ PAPEROPT_letter = -D latex_paper_size=letter
13
+ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
14
+
15
+ .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
16
+
17
+ help:
18
+ @echo "Please use \`make <target>' where <target> is one of"
19
+ @echo " html to make standalone HTML files"
20
+ @echo " dirhtml to make HTML files named index.html in directories"
21
+ @echo " singlehtml to make a single large HTML file"
22
+ @echo " pickle to make pickle files"
23
+ @echo " json to make JSON files"
24
+ @echo " htmlhelp to make HTML files and a HTML help project"
25
+ @echo " qthelp to make HTML files and a qthelp project"
26
+ @echo " devhelp to make HTML files and a Devhelp project"
27
+ @echo " epub to make an epub"
28
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
29
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
30
+ @echo " text to make text files"
31
+ @echo " man to make manual pages"
32
+ @echo " changes to make an overview of all changed/added/deprecated items"
33
+ @echo " linkcheck to check all external links for integrity"
34
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
35
+
36
+ clean:
37
+ -rm -rf $(BUILDDIR)/*
38
+
39
+ html:
40
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
41
+ @echo
42
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
43
+
44
+ dirhtml:
45
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
46
+ @echo
47
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
48
+
49
+ singlehtml:
50
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
51
+ @echo
52
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
53
+
54
+ pickle:
55
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
56
+ @echo
57
+ @echo "Build finished; now you can process the pickle files."
58
+
59
+ json:
60
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
61
+ @echo
62
+ @echo "Build finished; now you can process the JSON files."
63
+
64
+ htmlhelp:
65
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
66
+ @echo
67
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
68
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
69
+
70
+ qthelp:
71
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
72
+ @echo
73
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
74
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
75
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/restcomm-python2.qhcp"
76
+ @echo "To view the help file:"
77
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/restcomm-python2.qhc"
78
+
79
+ devhelp:
80
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
81
+ @echo
82
+ @echo "Build finished."
83
+ @echo "To view the help file:"
84
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/restcomm-python2"
85
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/restcomm-python2"
86
+ @echo "# devhelp"
87
+
88
+ epub:
89
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
90
+ @echo
91
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
92
+
93
+ latex:
94
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
95
+ @echo
96
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
97
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
98
+ "(use \`make latexpdf' here to do that automatically)."
99
+
100
+ latexpdf:
101
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
102
+ @echo "Running LaTeX files through pdflatex..."
103
+ make -C $(BUILDDIR)/latex all-pdf
104
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
105
+
106
+ text:
107
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
108
+ @echo
109
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
110
+
111
+ man:
112
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
113
+ @echo
114
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
115
+
116
+ changes:
117
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
118
+ @echo
119
+ @echo "The overview file is in $(BUILDDIR)/changes."
120
+
121
+ linkcheck:
122
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
123
+ @echo
124
+ @echo "Link check complete; look for any errors in the above output " \
125
+ "or in $(BUILDDIR)/linkcheck/output.txt."
126
+
127
+ doctest:
128
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
129
+ @echo "Testing of doctests in the sources finished, look at the " \
130
+ "results in $(BUILDDIR)/doctest/output.txt."
@@ -0,0 +1,45 @@
1
+ Modifications:
2
+
3
+ Copyright (c) 2011 Kenneth Reitz.
4
+
5
+
6
+ Original Project:
7
+
8
+ Copyright (c) 2010 by Armin Ronacher.
9
+
10
+
11
+ Some rights reserved.
12
+
13
+ Redistribution and use in source and binary forms of the theme, with or
14
+ without modification, are permitted provided that the following conditions
15
+ are met:
16
+
17
+ * Redistributions of source code must retain the above copyright
18
+ notice, this list of conditions and the following disclaimer.
19
+
20
+ * Redistributions in binary form must reproduce the above
21
+ copyright notice, this list of conditions and the following
22
+ disclaimer in the documentation and/or other materials provided
23
+ with the distribution.
24
+
25
+ * The names of the contributors may not be used to endorse or
26
+ promote products derived from this software without specific
27
+ prior written permission.
28
+
29
+ We kindly ask you to only use these themes in an unmodified manner just
30
+ for Flask and Flask-related products, not for unrelated projects. If you
31
+ like the visual style and want to use it for your own projects, please
32
+ consider making some larger changes to the themes (such as changing
33
+ font faces, sizes, colors or margins).
34
+
35
+ THIS THEME IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
36
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
38
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
39
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
40
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
41
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
42
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
43
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
44
+ ARISING IN ANY WAY OUT OF THE USE OF THIS THEME, EVEN IF ADVISED OF THE
45
+ POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,25 @@
1
+ krTheme Sphinx Style
2
+ ====================
3
+
4
+ This repository contains sphinx styles Kenneth Reitz uses in most of
5
+ his projects. It is a drivative of Mitsuhiko's themes for Flask and Flask related
6
+ projects. To use this style in your Sphinx documentation, follow
7
+ this guide:
8
+
9
+ 1. put this folder as _themes into your docs folder. Alternatively
10
+ you can also use git submodules to check out the contents there.
11
+
12
+ 2. add this to your conf.py: ::
13
+
14
+ sys.path.append(os.path.abspath('_themes'))
15
+ html_theme_path = ['_themes']
16
+ html_theme = 'flask'
17
+
18
+ The following themes exist:
19
+
20
+ **kr**
21
+ the standard flask documentation theme for large projects
22
+
23
+ **kr_small**
24
+ small one-page theme. Intended to be used by very small addon libraries.
25
+
@@ -0,0 +1,86 @@
1
+ # flasky extensions. flasky pygments style based on tango style
2
+ from pygments.style import Style
3
+ from pygments.token import Keyword, Name, Comment, String, Error, \
4
+ Number, Operator, Generic, Whitespace, Punctuation, Other, Literal
5
+
6
+
7
+ class FlaskyStyle(Style):
8
+ background_color = "#f8f8f8"
9
+ default_style = ""
10
+
11
+ styles = {
12
+ # No corresponding class for the following:
13
+ #Text: "", # class: ''
14
+ Whitespace: "underline #f8f8f8", # class: 'w'
15
+ Error: "#a40000 border:#ef2929", # class: 'err'
16
+ Other: "#000000", # class 'x'
17
+
18
+ Comment: "italic #8f5902", # class: 'c'
19
+ Comment.Preproc: "noitalic", # class: 'cp'
20
+
21
+ Keyword: "bold #004461", # class: 'k'
22
+ Keyword.Constant: "bold #004461", # class: 'kc'
23
+ Keyword.Declaration: "bold #004461", # class: 'kd'
24
+ Keyword.Namespace: "bold #004461", # class: 'kn'
25
+ Keyword.Pseudo: "bold #004461", # class: 'kp'
26
+ Keyword.Reserved: "bold #004461", # class: 'kr'
27
+ Keyword.Type: "bold #004461", # class: 'kt'
28
+
29
+ Operator: "#582800", # class: 'o'
30
+ Operator.Word: "bold #004461", # class: 'ow' - like keywords
31
+
32
+ Punctuation: "bold #000000", # class: 'p'
33
+
34
+ # because special names such as Name.Class, Name.Function, etc.
35
+ # are not recognized as such later in the parsing, we choose them
36
+ # to look the same as ordinary variables.
37
+ Name: "#000000", # class: 'n'
38
+ Name.Attribute: "#c4a000", # class: 'na' - to be revised
39
+ Name.Builtin: "#004461", # class: 'nb'
40
+ Name.Builtin.Pseudo: "#3465a4", # class: 'bp'
41
+ Name.Class: "#000000", # class: 'nc' - to be revised
42
+ Name.Constant: "#000000", # class: 'no' - to be revised
43
+ Name.Decorator: "#888", # class: 'nd' - to be revised
44
+ Name.Entity: "#ce5c00", # class: 'ni'
45
+ Name.Exception: "bold #cc0000", # class: 'ne'
46
+ Name.Function: "#000000", # class: 'nf'
47
+ Name.Property: "#000000", # class: 'py'
48
+ Name.Label: "#f57900", # class: 'nl'
49
+ Name.Namespace: "#000000", # class: 'nn' - to be revised
50
+ Name.Other: "#000000", # class: 'nx'
51
+ Name.Tag: "bold #004461", # class: 'nt' - like a keyword
52
+ Name.Variable: "#000000", # class: 'nv' - to be revised
53
+ Name.Variable.Class: "#000000", # class: 'vc' - to be revised
54
+ Name.Variable.Global: "#000000", # class: 'vg' - to be revised
55
+ Name.Variable.Instance: "#000000", # class: 'vi' - to be revised
56
+
57
+ Number: "#990000", # class: 'm'
58
+
59
+ Literal: "#000000", # class: 'l'
60
+ Literal.Date: "#000000", # class: 'ld'
61
+
62
+ String: "#4e9a06", # class: 's'
63
+ String.Backtick: "#4e9a06", # class: 'sb'
64
+ String.Char: "#4e9a06", # class: 'sc'
65
+ String.Doc: "italic #8f5902", # class: 'sd' - like a comment
66
+ String.Double: "#4e9a06", # class: 's2'
67
+ String.Escape: "#4e9a06", # class: 'se'
68
+ String.Heredoc: "#4e9a06", # class: 'sh'
69
+ String.Interpol: "#4e9a06", # class: 'si'
70
+ String.Other: "#4e9a06", # class: 'sx'
71
+ String.Regex: "#4e9a06", # class: 'sr'
72
+ String.Single: "#4e9a06", # class: 's1'
73
+ String.Symbol: "#4e9a06", # class: 'ss'
74
+
75
+ Generic: "#000000", # class: 'g'
76
+ Generic.Deleted: "#a40000", # class: 'gd'
77
+ Generic.Emph: "italic #000000", # class: 'ge'
78
+ Generic.Error: "#ef2929", # class: 'gr'
79
+ Generic.Heading: "bold #000080", # class: 'gh'
80
+ Generic.Inserted: "#00A000", # class: 'gi'
81
+ Generic.Output: "#888", # class: 'go'
82
+ Generic.Prompt: "#745334", # class: 'gp'
83
+ Generic.Strong: "bold #000000", # class: 'gs'
84
+ Generic.Subheading: "bold #800080", # class: 'gu'
85
+ Generic.Traceback: "bold #a40000", # class: 'gt'
86
+ }
@@ -0,0 +1,32 @@
1
+ {%- extends "basic/layout.html" %}
2
+ {%- block extrahead %}
3
+ {{ super() }}
4
+ {% if theme_touch_icon %}
5
+ <link rel="apple-touch-icon" href="{{ pathto('_static/' ~ theme_touch_icon, 1) }}" />
6
+ {% endif %}
7
+ <link media="only screen and (max-device-width: 480px)" href="{{
8
+ pathto('_static/small_flask.css', 1) }}" type= "text/css" rel="stylesheet" />
9
+ {% endblock %}
10
+ {%- block relbar2 %}{% endblock %}
11
+ {%- block footer %}
12
+ <div class="footer">
13
+ &copy; Copyright {{ copyright }}.
14
+ </div>
15
+ <a href="https://github.com/restcomm/restcomm-ruby">
16
+ <img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" />
17
+ </a>
18
+ <script type="text/javascript">
19
+ try {
20
+ var _gaq = _gaq || [];
21
+ _gaq.push(['_setAccount', 'UA-2900316-11']);
22
+ _gaq.push(['_trackPageview']);
23
+
24
+ (function() {
25
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
26
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
27
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
28
+ })();
29
+ } catch(err) {}
30
+ </script>
31
+
32
+ {%- endblock %}
@@ -0,0 +1,19 @@
1
+ <h3>Related Topics</h3>
2
+ <ul>
3
+ <li><a href="{{ pathto(master_doc) }}">Documentation overview</a><ul>
4
+ {%- for parent in parents %}
5
+ <li><a href="{{ parent.link|e }}">{{ parent.title }}</a><ul>
6
+ {%- endfor %}
7
+ {%- if prev %}
8
+ <li>Previous: <a href="{{ prev.link|e }}" title="{{ _('previous chapter')
9
+ }}">{{ prev.title }}</a></li>
10
+ {%- endif %}
11
+ {%- if next %}
12
+ <li>Next: <a href="{{ next.link|e }}" title="{{ _('next chapter')
13
+ }}">{{ next.title }}</a></li>
14
+ {%- endif %}
15
+ {%- for parent in parents %}
16
+ </ul></li>
17
+ {%- endfor %}
18
+ </ul></li>
19
+ </ul>
@@ -0,0 +1,469 @@
1
+ /*
2
+ * flasky.css_t
3
+ * ~~~~~~~~~~~~
4
+ *
5
+ * :copyright: Copyright 2010 by Armin Ronacher. Modifications by Kenneth Reitz.
6
+ * :license: Flask Design License, see LICENSE for details.
7
+ */
8
+
9
+ {% set page_width = '940px' %}
10
+ {% set sidebar_width = '220px' %}
11
+
12
+ @import url("basic.css");
13
+
14
+ /* -- page layout ----------------------------------------------------------- */
15
+
16
+ body {
17
+ font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro';
18
+ font-size: 17px;
19
+ background-color: white;
20
+ color: #000;
21
+ margin: 0;
22
+ padding: 0;
23
+ }
24
+
25
+ div.document {
26
+ width: {{ page_width }};
27
+ margin: 30px auto 0 auto;
28
+ }
29
+
30
+ div.documentwrapper {
31
+ float: left;
32
+ width: 100%;
33
+ }
34
+
35
+ div.bodywrapper {
36
+ margin: 0 0 0 {{ sidebar_width }};
37
+ }
38
+
39
+ div.sphinxsidebar {
40
+ width: {{ sidebar_width }};
41
+ }
42
+
43
+ hr {
44
+ border: 1px solid #B1B4B6;
45
+ }
46
+
47
+ div.body {
48
+ background-color: #ffffff;
49
+ color: #3E4349;
50
+ padding: 0 30px 0 30px;
51
+ }
52
+
53
+ img.floatingflask {
54
+ padding: 0 0 10px 10px;
55
+ float: right;
56
+ }
57
+
58
+ div.footer {
59
+ width: {{ page_width }};
60
+ margin: 20px auto 30px auto;
61
+ font-size: 14px;
62
+ color: #888;
63
+ text-align: right;
64
+ }
65
+
66
+ div.footer a {
67
+ color: #888;
68
+ }
69
+
70
+ div.related {
71
+ display: none;
72
+ }
73
+
74
+ div.sphinxsidebar a {
75
+ color: #444;
76
+ text-decoration: none;
77
+ border-bottom: 1px dotted #999;
78
+ }
79
+
80
+ div.sphinxsidebar a:hover {
81
+ border-bottom: 1px solid #999;
82
+ }
83
+
84
+ div.sphinxsidebar {
85
+ font-size: 14px;
86
+ line-height: 1.5;
87
+ }
88
+
89
+ div.sphinxsidebarwrapper {
90
+ padding: 18px 10px;
91
+ }
92
+
93
+ div.sphinxsidebarwrapper p.logo {
94
+ padding: 0;
95
+ margin: -10px 0 0 -20px;
96
+ text-align: center;
97
+ }
98
+
99
+ div.sphinxsidebar h3,
100
+ div.sphinxsidebar h4 {
101
+ font-family: 'Garamond', 'Georgia', serif;
102
+ color: #444;
103
+ font-size: 24px;
104
+ font-weight: normal;
105
+ margin: 0 0 5px 0;
106
+ padding: 0;
107
+ }
108
+
109
+ div.sphinxsidebar h4 {
110
+ font-size: 20px;
111
+ }
112
+
113
+ div.sphinxsidebar h3 a {
114
+ color: #444;
115
+ }
116
+
117
+ div.sphinxsidebar p.logo a,
118
+ div.sphinxsidebar h3 a,
119
+ div.sphinxsidebar p.logo a:hover,
120
+ div.sphinxsidebar h3 a:hover {
121
+ border: none;
122
+ }
123
+
124
+ div.sphinxsidebar p {
125
+ color: #555;
126
+ margin: 10px 0;
127
+ }
128
+
129
+ div.sphinxsidebar ul {
130
+ margin: 10px 0;
131
+ padding: 0;
132
+ color: #000;
133
+ }
134
+
135
+ div.sphinxsidebar input {
136
+ border: 1px solid #ccc;
137
+ font-family: 'Georgia', serif;
138
+ font-size: 1em;
139
+ }
140
+
141
+ /* -- body styles ----------------------------------------------------------- */
142
+
143
+ a {
144
+ color: #004B6B;
145
+ text-decoration: underline;
146
+ }
147
+
148
+ a:hover {
149
+ color: #6D4100;
150
+ text-decoration: underline;
151
+ }
152
+
153
+ div.body h1,
154
+ div.body h2,
155
+ div.body h3,
156
+ div.body h4,
157
+ div.body h5,
158
+ div.body h6 {
159
+ font-family: 'Garamond', 'Georgia', serif;
160
+ font-weight: normal;
161
+ margin: 30px 0px 10px 0px;
162
+ padding: 0;
163
+ }
164
+
165
+ div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; }
166
+ div.body h2 { font-size: 180%; }
167
+ div.body h3 { font-size: 150%; }
168
+ div.body h4 { font-size: 130%; }
169
+ div.body h5 { font-size: 100%; }
170
+ div.body h6 { font-size: 100%; }
171
+
172
+ a.headerlink {
173
+ color: #ddd;
174
+ padding: 0 4px;
175
+ text-decoration: none;
176
+ }
177
+
178
+ a.headerlink:hover {
179
+ color: #444;
180
+ background: #eaeaea;
181
+ }
182
+
183
+ div.body p, div.body dd, div.body li {
184
+ line-height: 1.4em;
185
+ }
186
+
187
+ div.admonition {
188
+ background: #fafafa;
189
+ margin: 20px -30px;
190
+ padding: 10px 30px;
191
+ border-top: 1px solid #ccc;
192
+ border-bottom: 1px solid #ccc;
193
+ }
194
+
195
+ div.admonition tt.xref, div.admonition a tt {
196
+ border-bottom: 1px solid #fafafa;
197
+ }
198
+
199
+ dd div.admonition {
200
+ margin-left: -60px;
201
+ padding-left: 60px;
202
+ }
203
+
204
+ div.admonition p.admonition-title {
205
+ font-family: 'Garamond', 'Georgia', serif;
206
+ font-weight: normal;
207
+ font-size: 24px;
208
+ margin: 0 0 10px 0;
209
+ padding: 0;
210
+ line-height: 1;
211
+ }
212
+
213
+ div.admonition p.last {
214
+ margin-bottom: 0;
215
+ }
216
+
217
+ div.highlight {
218
+ background-color: white;
219
+ }
220
+
221
+ dt:target, .highlight {
222
+ background: #FAF3E8;
223
+ }
224
+
225
+ div.note {
226
+ background-color: #eee;
227
+ border: 1px solid #ccc;
228
+ }
229
+
230
+ div.seealso {
231
+ background-color: #ffc;
232
+ border: 1px solid #ff6;
233
+ }
234
+
235
+ div.topic {
236
+ background-color: #eee;
237
+ }
238
+
239
+ p.admonition-title {
240
+ display: inline;
241
+ }
242
+
243
+ p.admonition-title:after {
244
+ content: ":";
245
+ }
246
+
247
+ pre, tt {
248
+ font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
249
+ font-size: 0.9em;
250
+ }
251
+
252
+ img.screenshot {
253
+ }
254
+
255
+ tt.descname, tt.descclassname {
256
+ font-size: 0.95em;
257
+ }
258
+
259
+ tt.descname {
260
+ padding-right: 0.08em;
261
+ }
262
+
263
+ img.screenshot {
264
+ -moz-box-shadow: 2px 2px 4px #eee;
265
+ -webkit-box-shadow: 2px 2px 4px #eee;
266
+ box-shadow: 2px 2px 4px #eee;
267
+ }
268
+
269
+ table.docutils {
270
+ border: 1px solid #888;
271
+ -moz-box-shadow: 2px 2px 4px #eee;
272
+ -webkit-box-shadow: 2px 2px 4px #eee;
273
+ box-shadow: 2px 2px 4px #eee;
274
+ }
275
+
276
+ table.docutils td, table.docutils th {
277
+ border: 1px solid #888;
278
+ padding: 0.25em 0.7em;
279
+ }
280
+
281
+ table.field-list, table.footnote {
282
+ border: none;
283
+ -moz-box-shadow: none;
284
+ -webkit-box-shadow: none;
285
+ box-shadow: none;
286
+ }
287
+
288
+ table.footnote {
289
+ margin: 15px 0;
290
+ width: 100%;
291
+ border: 1px solid #eee;
292
+ background: #fdfdfd;
293
+ font-size: 0.9em;
294
+ }
295
+
296
+ table.footnote + table.footnote {
297
+ margin-top: -15px;
298
+ border-top: none;
299
+ }
300
+
301
+ table.field-list th {
302
+ padding: 0 0.8em 0 0;
303
+ }
304
+
305
+ table.field-list td {
306
+ padding: 0;
307
+ }
308
+
309
+ table.footnote td.label {
310
+ width: 0px;
311
+ padding: 0.3em 0 0.3em 0.5em;
312
+ }
313
+
314
+ table.footnote td {
315
+ padding: 0.3em 0.5em;
316
+ }
317
+
318
+ dl {
319
+ margin: 0;
320
+ padding: 0;
321
+ }
322
+
323
+ dl dd {
324
+ margin-left: 30px;
325
+ }
326
+
327
+ blockquote {
328
+ margin: 0 0 0 30px;
329
+ padding: 0;
330
+ }
331
+
332
+ ul, ol {
333
+ margin: 10px 0 10px 30px;
334
+ padding: 0;
335
+ }
336
+
337
+ pre {
338
+ background: #eee;
339
+ padding: 7px 30px;
340
+ margin: 15px -30px;
341
+ line-height: 1.3em;
342
+ }
343
+
344
+ dl pre, blockquote pre, li pre {
345
+ margin-left: -60px;
346
+ padding-left: 60px;
347
+ }
348
+
349
+ dl dl pre {
350
+ margin-left: -90px;
351
+ padding-left: 90px;
352
+ }
353
+
354
+ tt {
355
+ background-color: #ecf0f3;
356
+ color: #222;
357
+ /* padding: 1px 2px; */
358
+ }
359
+
360
+ tt.xref, a tt {
361
+ background-color: #FBFBFB;
362
+ border-bottom: 1px solid white;
363
+ }
364
+
365
+ a.reference {
366
+ text-decoration: none;
367
+ border-bottom: 1px dotted #004B6B;
368
+ }
369
+
370
+ a.reference:hover {
371
+ border-bottom: 1px solid #6D4100;
372
+ }
373
+
374
+ a.footnote-reference {
375
+ text-decoration: none;
376
+ font-size: 0.7em;
377
+ vertical-align: top;
378
+ border-bottom: 1px dotted #004B6B;
379
+ }
380
+
381
+ a.footnote-reference:hover {
382
+ border-bottom: 1px solid #6D4100;
383
+ }
384
+
385
+ a:hover tt {
386
+ background: #EEE;
387
+ }
388
+
389
+
390
+ @media screen and (max-width: 600px) {
391
+
392
+ div.sphinxsidebar {
393
+ display: none;
394
+ }
395
+
396
+ div.documentwrapper {
397
+ margin-left: 0;
398
+ margin-top: 0;
399
+ margin-right: 0;
400
+ margin-bottom: 0;
401
+ }
402
+
403
+ div.bodywrapper {
404
+ margin-top: 0;
405
+ margin-right: 0;
406
+ margin-bottom: 0;
407
+ margin-left: 0;
408
+ }
409
+
410
+ ul {
411
+ margin-left: 0;
412
+ }
413
+
414
+ .document {
415
+ width: auto;
416
+ }
417
+
418
+ .bodywrapper {
419
+ margin: 0;
420
+ }
421
+
422
+ .footer {
423
+ width: auto;
424
+ }
425
+
426
+
427
+
428
+ }
429
+
430
+
431
+ /* scrollbars */
432
+
433
+ ::-webkit-scrollbar {
434
+ width: 6px;
435
+ height: 6px;
436
+ }
437
+
438
+ ::-webkit-scrollbar-button:start:decrement,
439
+ ::-webkit-scrollbar-button:end:increment {
440
+ display: block;
441
+ height: 10px;
442
+ }
443
+
444
+ ::-webkit-scrollbar-button:vertical:increment {
445
+ background-color: #fff;
446
+ }
447
+
448
+ ::-webkit-scrollbar-track-piece {
449
+ background-color: #eee;
450
+ -webkit-border-radius: 3px;
451
+ }
452
+
453
+ ::-webkit-scrollbar-thumb:vertical {
454
+ height: 50px;
455
+ background-color: #ccc;
456
+ -webkit-border-radius: 3px;
457
+ }
458
+
459
+ ::-webkit-scrollbar-thumb:horizontal {
460
+ width: 50px;
461
+ background-color: #ccc;
462
+ -webkit-border-radius: 3px;
463
+ }
464
+
465
+ /* misc. */
466
+
467
+ .revsys-inline {
468
+ display: none!important;
469
+ }