restcomm-ruby 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS.md +38 -0
- data/CHANGES.md +171 -0
- data/Gemfile +11 -0
- data/LICENSE +662 -0
- data/LICENSE.md +19 -0
- data/Makefile +12 -0
- data/README.md +155 -0
- data/Rakefile +10 -0
- data/conf/cacert.pem +3376 -0
- data/docs/Makefile +130 -0
- data/docs/_themes/LICENSE +45 -0
- data/docs/_themes/README.rst +25 -0
- data/docs/_themes/flask_theme_support.py +86 -0
- data/docs/_themes/kr/layout.html +32 -0
- data/docs/_themes/kr/relations.html +19 -0
- data/docs/_themes/kr/static/flasky.css_t +469 -0
- data/docs/_themes/kr/static/small_flask.css +70 -0
- data/docs/_themes/kr/theme.conf +7 -0
- data/docs/_themes/kr_small/layout.html +22 -0
- data/docs/_themes/kr_small/static/flasky.css_t +287 -0
- data/docs/_themes/kr_small/theme.conf +10 -0
- data/docs/changelog.rst +1 -0
- data/docs/conf.py +266 -0
- data/docs/faq.rst +42 -0
- data/docs/getting-started.rst +100 -0
- data/docs/index.rst +109 -0
- data/docs/make.bat +170 -0
- data/docs/src/pip-delete-this-directory.txt +5 -0
- data/docs/usage/accounts.rst +96 -0
- data/docs/usage/addresses.rst +102 -0
- data/docs/usage/applications.rst +111 -0
- data/docs/usage/basics.rst +120 -0
- data/docs/usage/caller-ids.rst +47 -0
- data/docs/usage/conferences.rst +112 -0
- data/docs/usage/errors.rst +31 -0
- data/docs/usage/messages.rst +142 -0
- data/docs/usage/notifications.rst +72 -0
- data/docs/usage/phone-calls.rst +193 -0
- data/docs/usage/phone-numbers.rst +192 -0
- data/docs/usage/queues.rst +117 -0
- data/docs/usage/recordings.rst +102 -0
- data/docs/usage/sip.rst +108 -0
- data/docs/usage/token-generation.rst +96 -0
- data/docs/usage/transcriptions.rst +34 -0
- data/docs/usage/twiml.rst +69 -0
- data/docs/usage/validation.rst +107 -0
- data/examples/examples.rb +200 -0
- data/examples/print-call-log.rb +25 -0
- data/lib/rack/restcomm_webhook_authentication.rb +47 -0
- data/lib/restcomm-ruby.rb +103 -0
- data/lib/restcomm-ruby/rest/accounts.rb +17 -0
- data/lib/restcomm-ruby/rest/addresses.rb +12 -0
- data/lib/restcomm-ruby/rest/addresses/dependent_phone_numbers.rb +6 -0
- data/lib/restcomm-ruby/rest/applications.rb +6 -0
- data/lib/restcomm-ruby/rest/authorized_connect_apps.rb +6 -0
- data/lib/restcomm-ruby/rest/available_phone_numbers.rb +13 -0
- data/lib/restcomm-ruby/rest/available_phone_numbers/country.rb +10 -0
- data/lib/restcomm-ruby/rest/available_phone_numbers/local.rb +11 -0
- data/lib/restcomm-ruby/rest/available_phone_numbers/mobile.rb +11 -0
- data/lib/restcomm-ruby/rest/available_phone_numbers/toll_free.rb +11 -0
- data/lib/restcomm-ruby/rest/call_feedback.rb +28 -0
- data/lib/restcomm-ruby/rest/call_feedback_summary.rb +13 -0
- data/lib/restcomm-ruby/rest/calls.rb +37 -0
- data/lib/restcomm-ruby/rest/client.rb +555 -0
- data/lib/restcomm-ruby/rest/conferences.rb +12 -0
- data/lib/restcomm-ruby/rest/conferences/participants.rb +23 -0
- data/lib/restcomm-ruby/rest/connect_apps.rb +6 -0
- data/lib/restcomm-ruby/rest/errors.rb +14 -0
- data/lib/restcomm-ruby/rest/incoming_phone_numbers.rb +17 -0
- data/lib/restcomm-ruby/rest/incoming_phone_numbers/local.rb +13 -0
- data/lib/restcomm-ruby/rest/incoming_phone_numbers/mobile.rb +13 -0
- data/lib/restcomm-ruby/rest/incoming_phone_numbers/toll_free.rb +13 -0
- data/lib/restcomm-ruby/rest/instance_resource.rb +88 -0
- data/lib/restcomm-ruby/rest/list_resource.rb +132 -0
- data/lib/restcomm-ruby/rest/media.rb +14 -0
- data/lib/restcomm-ruby/rest/messages.rb +23 -0
- data/lib/restcomm-ruby/rest/next_gen_list_resource.rb +29 -0
- data/lib/restcomm-ruby/rest/notifications.rb +6 -0
- data/lib/restcomm-ruby/rest/outgoing_caller_ids.rb +25 -0
- data/lib/restcomm-ruby/rest/queues.rb +12 -0
- data/lib/restcomm-ruby/rest/queues/members.rb +29 -0
- data/lib/restcomm-ruby/rest/recordings.rb +35 -0
- data/lib/restcomm-ruby/rest/sandbox.rb +5 -0
- data/lib/restcomm-ruby/rest/sip.rb +10 -0
- data/lib/restcomm-ruby/rest/sip/credential_lists.rb +11 -0
- data/lib/restcomm-ruby/rest/sip/credential_lists/credentials.rb +6 -0
- data/lib/restcomm-ruby/rest/sip/domains.rb +12 -0
- data/lib/restcomm-ruby/rest/sip/domains/credential_list_mappings.rb +6 -0
- data/lib/restcomm-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +6 -0
- data/lib/restcomm-ruby/rest/sip/ip_access_control_lists.rb +11 -0
- data/lib/restcomm-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +6 -0
- data/lib/restcomm-ruby/rest/sms.rb +11 -0
- data/lib/restcomm-ruby/rest/sms/messages.rb +39 -0
- data/lib/restcomm-ruby/rest/sms/short_codes.rb +8 -0
- data/lib/restcomm-ruby/rest/task_router/activities.rb +8 -0
- data/lib/restcomm-ruby/rest/task_router/events.rb +8 -0
- data/lib/restcomm-ruby/rest/task_router/reservations.rb +8 -0
- data/lib/restcomm-ruby/rest/task_router/task_queues.rb +8 -0
- data/lib/restcomm-ruby/rest/task_router/task_queues_statistics.rb +15 -0
- data/lib/restcomm-ruby/rest/task_router/tasks.rb +15 -0
- data/lib/restcomm-ruby/rest/task_router/workers.rb +8 -0
- data/lib/restcomm-ruby/rest/task_router/workers_statistics.rb +8 -0
- data/lib/restcomm-ruby/rest/task_router/workflow_statistics.rb +7 -0
- data/lib/restcomm-ruby/rest/task_router/workflows.rb +8 -0
- data/lib/restcomm-ruby/rest/task_router/workspace_statistics.rb +7 -0
- data/lib/restcomm-ruby/rest/task_router/workspaces.rb +15 -0
- data/lib/restcomm-ruby/rest/tokens.rb +7 -0
- data/lib/restcomm-ruby/rest/transcriptions.rb +6 -0
- data/lib/restcomm-ruby/rest/usage.rb +10 -0
- data/lib/restcomm-ruby/rest/usage/records.rb +21 -0
- data/lib/restcomm-ruby/rest/usage/triggers.rb +12 -0
- data/lib/restcomm-ruby/rest/utils.rb +49 -0
- data/lib/restcomm-ruby/task_router.rb +0 -0
- data/lib/restcomm-ruby/task_router/capability.rb +87 -0
- data/lib/restcomm-ruby/twiml/response.rb +16 -0
- data/lib/restcomm-ruby/util.rb +15 -0
- data/lib/restcomm-ruby/util/capability.rb +64 -0
- data/lib/restcomm-ruby/util/configuration.rb +7 -0
- data/lib/restcomm-ruby/util/request_validator.rb +37 -0
- data/lib/restcomm-ruby/version.rb +3 -0
- data/restcomm-ruby.gemspec +34 -0
- data/spec/rack/twilio_webhook_authentication_spec.rb +110 -0
- data/spec/rest/account_spec.rb +89 -0
- data/spec/rest/address_spec.rb +11 -0
- data/spec/rest/call_feedback_spec.rb +12 -0
- data/spec/rest/call_feedback_summary_spec.rb +9 -0
- data/spec/rest/call_spec.rb +22 -0
- data/spec/rest/client_spec.rb +258 -0
- data/spec/rest/conference_spec.rb +11 -0
- data/spec/rest/instance_resource_spec.rb +15 -0
- data/spec/rest/message_spec.rb +12 -0
- data/spec/rest/numbers_spec.rb +58 -0
- data/spec/rest/queue_spec.rb +11 -0
- data/spec/rest/recording_spec.rb +11 -0
- data/spec/rest/sms/message_spec.rb +37 -0
- data/spec/rest/sms/messages_spec.rb +36 -0
- data/spec/rest/task_router/reservation_spec.rb +9 -0
- data/spec/rest/task_router/task_queue_spec.rb +9 -0
- data/spec/rest/token_spec.rb +7 -0
- data/spec/rest/utils_spec.rb +45 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/support/fakeweb.rb +2 -0
- data/spec/task_router_spec.rb +114 -0
- data/spec/twilio_spec.rb +15 -0
- data/spec/util/capability_spec.rb +186 -0
- data/spec/util/configuration_spec.rb +13 -0
- data/spec/util/request_validator_spec.rb +93 -0
- data/spec/util/url_encode_spec.rb +12 -0
- 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
|
+
© 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
|
+
}
|