pdc 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.editorconfig +27 -0
- data/.gitignore +10 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +21 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +32 -0
- data/Guardfile +36 -0
- data/LICENSE +21 -0
- data/LICENSE.txt +21 -0
- data/README.md +41 -0
- data/Rakefile +11 -0
- data/bin/console +11 -0
- data/bin/setup +11 -0
- data/docs/.gitignore +3 -0
- data/docs/LICENSE_sphinx_deployment +27 -0
- data/docs/Makefile +179 -0
- data/docs/source/conf.py +257 -0
- data/docs/source/example.rst +10 -0
- data/docs/source/index.rst +23 -0
- data/docs/sphinx_deployment.mk +117 -0
- data/examples/active_attr.rb +33 -0
- data/examples/http_failures.rb +18 -0
- data/examples/local_pdc_dev.rb +15 -0
- data/examples/logger.rb +50 -0
- data/examples/pdc_curb_access_token.rb +36 -0
- data/examples/pdc_resource_tests.rb +173 -0
- data/examples/pdc_test_cache.rb +48 -0
- data/examples/prod_failures.rb +26 -0
- data/examples/prod_pdc.rb +14 -0
- data/lib/pdc/base.rb +14 -0
- data/lib/pdc/config.rb +157 -0
- data/lib/pdc/errors.rb +8 -0
- data/lib/pdc/http/errors.rb +43 -0
- data/lib/pdc/http/request/append_slash.rb +19 -0
- data/lib/pdc/http/request.rb +12 -0
- data/lib/pdc/http/response/pagination.rb +43 -0
- data/lib/pdc/http/response/parser.rb +62 -0
- data/lib/pdc/http/response/raise_error.rb +13 -0
- data/lib/pdc/http/response.rb +3 -0
- data/lib/pdc/http/result.rb +28 -0
- data/lib/pdc/http.rb +12 -0
- data/lib/pdc/logger.rb +19 -0
- data/lib/pdc/resource/attribute_modifier.rb +43 -0
- data/lib/pdc/resource/attribute_store.rb +22 -0
- data/lib/pdc/resource/attributes.rb +144 -0
- data/lib/pdc/resource/errors.rb +3 -0
- data/lib/pdc/resource/identity.rb +75 -0
- data/lib/pdc/resource/path.rb +63 -0
- data/lib/pdc/resource/per_thread_registry.rb +54 -0
- data/lib/pdc/resource/relation/finder.rb +24 -0
- data/lib/pdc/resource/relation/pagination.rb +33 -0
- data/lib/pdc/resource/relation/query.rb +14 -0
- data/lib/pdc/resource/relation.rb +81 -0
- data/lib/pdc/resource/rest_api.rb +34 -0
- data/lib/pdc/resource/scope_registry.rb +19 -0
- data/lib/pdc/resource/scopes.rb +29 -0
- data/lib/pdc/resource/value_parser.rb +31 -0
- data/lib/pdc/resource/wip.rb +0 -0
- data/lib/pdc/resource.rb +12 -0
- data/lib/pdc/v1/arch.rb +6 -0
- data/lib/pdc/v1/product.rb +5 -0
- data/lib/pdc/v1/release.rb +18 -0
- data/lib/pdc/v1/release_variant.rb +17 -0
- data/lib/pdc/v1.rb +8 -0
- data/lib/pdc/version.rb +3 -0
- data/lib/pdc.rb +25 -0
- data/pdc.gemspec +38 -0
- data/spec/fixtures/vcr/_page_count_returns_total_count.yml +141 -0
- data/spec/fixtures/vcr/brew_can_be_nil.yml +61 -0
- data/spec/fixtures/vcr/brew_may_be_present.yml +50 -0
- data/spec/fixtures/vcr/caches_multiple_response.yml +173 -0
- data/spec/fixtures/vcr/caches_response_with_a_query.yml +64 -0
- data/spec/fixtures/vcr/caches_response_with_multiple_query.yml +64 -0
- data/spec/fixtures/vcr/caches_response_without_query.yml +61 -0
- data/spec/fixtures/vcr/can_iterate_using_each.yml +187 -0
- data/spec/fixtures/vcr/fetches_variants_of_a_release.yml +663 -0
- data/spec/fixtures/vcr/must_return_number_of_resources.yml +61 -0
- data/spec/fixtures/vcr/preserves_the_filters.yml +49 -0
- data/spec/fixtures/vcr/returns_resources_on_that_page.yml +49 -0
- data/spec/fixtures/vcr/returns_the_total_count_and_not_items_in_page.yml +135 -0
- data/spec/fixtures/vcr/should_not_be_in_the_list_of_attributes.yml +95 -0
- data/spec/fixtures/vcr/works_with_where.yml +49 -0
- data/spec/pdc/config_spec.rb +115 -0
- data/spec/pdc/http/errors_spec.rb +58 -0
- data/spec/pdc/resource/attributes_spec.rb +231 -0
- data/spec/pdc/resource/cache_spec.rb +88 -0
- data/spec/pdc/resource/count_spec.rb +45 -0
- data/spec/pdc/resource/identity_spec.rb +96 -0
- data/spec/pdc/resource/pagination_spec.rb +51 -0
- data/spec/pdc/resource/path_spec.rb +30 -0
- data/spec/pdc/resource/relation_spec.rb +94 -0
- data/spec/pdc/resource/rest_api_spec.rb +23 -0
- data/spec/pdc/resource/value_parser_spec.rb +15 -0
- data/spec/pdc/resource/wip_spec.rb +0 -0
- data/spec/pdc/v1/arch_spec.rb +34 -0
- data/spec/pdc/v1/release_spec.rb +54 -0
- data/spec/pdc/version_spec.rb +5 -0
- data/spec/spec_helper.rb +39 -0
- data/spec/support/fixtures.rb +116 -0
- data/spec/support/vcr.rb +10 -0
- data/spec/support/webmock.rb +34 -0
- metadata +295 -0
data/docs/source/conf.py
ADDED
@@ -0,0 +1,257 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# PDC documentation build configuration file, created by
|
4
|
+
# sphinx-quickstart on Tue Nov 18 14:45:45 2014.
|
5
|
+
#
|
6
|
+
# This file is execfile()d with the current directory set to its
|
7
|
+
# containing dir.
|
8
|
+
#
|
9
|
+
# Note that not all possible configuration values are present in this
|
10
|
+
# autogenerated file.
|
11
|
+
#
|
12
|
+
# All configuration values have a default; values that are commented out
|
13
|
+
# serve to show the default.
|
14
|
+
|
15
|
+
|
16
|
+
# If extensions (or modules to document with autodoc) are in another directory,
|
17
|
+
# add these directories to sys.path here. If the directory is relative to the
|
18
|
+
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
19
|
+
#sys.path.insert(0, os.path.abspath('.'))
|
20
|
+
|
21
|
+
# -- General configuration ------------------------------------------------
|
22
|
+
|
23
|
+
# If your documentation needs a minimal Sphinx version, state it here.
|
24
|
+
#needs_sphinx = '1.0'
|
25
|
+
|
26
|
+
# Add any Sphinx extension module names here, as strings. They can be
|
27
|
+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
28
|
+
# ones.
|
29
|
+
extensions = [
|
30
|
+
]
|
31
|
+
|
32
|
+
# Add any paths that contain templates here, relative to this directory.
|
33
|
+
templates_path = ['_templates']
|
34
|
+
|
35
|
+
# The suffix of source filenames.
|
36
|
+
source_suffix = '.rst'
|
37
|
+
|
38
|
+
# The encoding of source files.
|
39
|
+
#source_encoding = 'utf-8-sig'
|
40
|
+
|
41
|
+
# The master toctree document.
|
42
|
+
master_doc = 'index'
|
43
|
+
|
44
|
+
# General information about the project.
|
45
|
+
project = u'PDC Client'
|
46
|
+
copyright = u'2014-2016, PDC Devel Team'
|
47
|
+
|
48
|
+
# The version info for the project you're documenting, acts as replacement for
|
49
|
+
# |version| and |release|, also used in various other places throughout the
|
50
|
+
# built documents.
|
51
|
+
#
|
52
|
+
|
53
|
+
version = '0.1'
|
54
|
+
# The full version, including alpha/beta/rc tags.
|
55
|
+
release = '0.1.0-1'
|
56
|
+
|
57
|
+
# The language for content autogenerated by Sphinx. Refer to documentation
|
58
|
+
# for a list of supported languages.
|
59
|
+
#language = None
|
60
|
+
|
61
|
+
# There are two options for replacing |today|: either, you set today to some
|
62
|
+
# non-false value, then it is used:
|
63
|
+
#today = ''
|
64
|
+
# Else, today_fmt is used as the format for a strftime call.
|
65
|
+
#today_fmt = '%B %d, %Y'
|
66
|
+
|
67
|
+
# List of patterns, relative to source directory, that match files and
|
68
|
+
# directories to ignore when looking for source files.
|
69
|
+
exclude_patterns = []
|
70
|
+
|
71
|
+
# The reST default role (used for this markup: `text`) to use for all
|
72
|
+
# documents.
|
73
|
+
#default_role = None
|
74
|
+
|
75
|
+
# If true, '()' will be appended to :func: etc. cross-reference text.
|
76
|
+
#add_function_parentheses = True
|
77
|
+
|
78
|
+
# If true, the current module name will be prepended to all description
|
79
|
+
# unit titles (such as .. function::).
|
80
|
+
#add_module_names = True
|
81
|
+
|
82
|
+
# If true, sectionauthor and moduleauthor directives will be shown in the
|
83
|
+
# output. They are ignored by default.
|
84
|
+
#show_authors = False
|
85
|
+
|
86
|
+
# The name of the Pygments (syntax highlighting) style to use.
|
87
|
+
pygments_style = 'sphinx'
|
88
|
+
|
89
|
+
# A list of ignored prefixes for module index sorting.
|
90
|
+
#modindex_common_prefix = []
|
91
|
+
|
92
|
+
# If true, keep warnings as "system message" paragraphs in the built documents.
|
93
|
+
#keep_warnings = False
|
94
|
+
|
95
|
+
|
96
|
+
# -- Options for HTML output ----------------------------------------------
|
97
|
+
|
98
|
+
# The theme to use for HTML and HTML Help pages. See the documentation for
|
99
|
+
# a list of builtin themes.
|
100
|
+
html_theme = 'default'
|
101
|
+
|
102
|
+
# Theme options are theme-specific and customize the look and feel of a theme
|
103
|
+
# further. For a list of options available for each theme, see the
|
104
|
+
# documentation.
|
105
|
+
#html_theme_options = {}
|
106
|
+
|
107
|
+
# Add any paths that contain custom themes here, relative to this directory.
|
108
|
+
#html_theme_path = []
|
109
|
+
|
110
|
+
# The name for this set of Sphinx documents. If None, it defaults to
|
111
|
+
# "<project> v<release> documentation".
|
112
|
+
#html_title = None
|
113
|
+
|
114
|
+
# A shorter title for the navigation bar. Default is the same as html_title.
|
115
|
+
#html_short_title = None
|
116
|
+
|
117
|
+
# The name of an image file (relative to this directory) to place at the top
|
118
|
+
# of the sidebar.
|
119
|
+
#html_logo = None
|
120
|
+
|
121
|
+
# The name of an image file (within the static path) to use as favicon of the
|
122
|
+
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
123
|
+
# pixels large.
|
124
|
+
#html_favicon = None
|
125
|
+
|
126
|
+
# Add any paths that contain custom static files (such as style sheets) here,
|
127
|
+
# relative to this directory. They are copied after the builtin static files,
|
128
|
+
# so a file named "default.css" will overwrite the builtin "default.css".
|
129
|
+
html_static_path = ['_static']
|
130
|
+
|
131
|
+
# Add any extra paths that contain custom files (such as robots.txt or
|
132
|
+
# .htaccess) here, relative to this directory. These files are copied
|
133
|
+
# directly to the root of the documentation.
|
134
|
+
#html_extra_path = []
|
135
|
+
|
136
|
+
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
137
|
+
# using the given strftime format.
|
138
|
+
#html_last_updated_fmt = '%b %d, %Y'
|
139
|
+
|
140
|
+
# If true, SmartyPants will be used to convert quotes and dashes to
|
141
|
+
# typographically correct entities.
|
142
|
+
#html_use_smartypants = True
|
143
|
+
|
144
|
+
# Custom sidebar templates, maps document names to template names.
|
145
|
+
#html_sidebars = {}
|
146
|
+
|
147
|
+
# Additional templates that should be rendered to pages, maps page names to
|
148
|
+
# template names.
|
149
|
+
#html_additional_pages = {}
|
150
|
+
|
151
|
+
# If false, no module index is generated.
|
152
|
+
#html_domain_indices = True
|
153
|
+
|
154
|
+
# If false, no index is generated.
|
155
|
+
#html_use_index = True
|
156
|
+
|
157
|
+
# If true, the index is split into individual pages for each letter.
|
158
|
+
#html_split_index = False
|
159
|
+
|
160
|
+
# If true, links to the reST sources are added to the pages.
|
161
|
+
#html_show_sourcelink = True
|
162
|
+
|
163
|
+
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
164
|
+
#html_show_sphinx = True
|
165
|
+
|
166
|
+
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
167
|
+
#html_show_copyright = True
|
168
|
+
|
169
|
+
# If true, an OpenSearch description file will be output, and all pages will
|
170
|
+
# contain a <link> tag referring to it. The value of this option must be the
|
171
|
+
# base URL from which the finished HTML is served.
|
172
|
+
#html_use_opensearch = ''
|
173
|
+
|
174
|
+
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
175
|
+
#html_file_suffix = None
|
176
|
+
|
177
|
+
# Output file base name for HTML help builder.
|
178
|
+
htmlhelp_basename = 'PDCRubyGemdoc'
|
179
|
+
|
180
|
+
|
181
|
+
# -- Options for LaTeX output ---------------------------------------------
|
182
|
+
|
183
|
+
latex_elements = {
|
184
|
+
# The paper size ('letterpaper' or 'a4paper').
|
185
|
+
#'papersize': 'letterpaper',
|
186
|
+
|
187
|
+
# The font size ('10pt', '11pt' or '12pt').
|
188
|
+
#'pointsize': '10pt',
|
189
|
+
|
190
|
+
# Additional stuff for the LaTeX preamble.
|
191
|
+
#'preamble': '',
|
192
|
+
}
|
193
|
+
|
194
|
+
# Grouping the document tree into LaTeX files. List of tuples
|
195
|
+
# (source start file, target name, title,
|
196
|
+
# author, documentclass [howto, manual, or own class]).
|
197
|
+
#latex_documents = [
|
198
|
+
# ('index', 'PDC_client.tex', u'PDC Ruby Gem Documentation',
|
199
|
+
# u'PDC Devel Team', 'manual'),
|
200
|
+
#]
|
201
|
+
|
202
|
+
# The name of an image file (relative to this directory) to place at the top of
|
203
|
+
# the title page.
|
204
|
+
#latex_logo = None
|
205
|
+
|
206
|
+
# For "manual" documents, if this is true, then toplevel headings are parts,
|
207
|
+
# not chapters.
|
208
|
+
#latex_use_parts = False
|
209
|
+
|
210
|
+
# If true, show page references after internal links.
|
211
|
+
#latex_show_pagerefs = False
|
212
|
+
|
213
|
+
# If true, show URL addresses after external links.
|
214
|
+
#latex_show_urls = False
|
215
|
+
|
216
|
+
# Documents to append as an appendix to all manuals.
|
217
|
+
#latex_appendices = []
|
218
|
+
|
219
|
+
# If false, no module index is generated.
|
220
|
+
#latex_domain_indices = True
|
221
|
+
|
222
|
+
|
223
|
+
# -- Options for manual page output ---------------------------------------
|
224
|
+
|
225
|
+
# One entry per manual page. List of tuples
|
226
|
+
# (source start file, name, description, authors, manual section).
|
227
|
+
#man_pages = [
|
228
|
+
# ('index', 'pdc client', u'PDC Client Documentation',
|
229
|
+
# [u'PDC Devel Team'], 1)
|
230
|
+
#]
|
231
|
+
|
232
|
+
# If true, show URL addresses after external links.
|
233
|
+
#man_show_urls = False
|
234
|
+
|
235
|
+
|
236
|
+
# -- Options for Texinfo output -------------------------------------------
|
237
|
+
|
238
|
+
# Grouping the document tree into Texinfo files. List of tuples
|
239
|
+
# (source start file, target name, title, author,
|
240
|
+
# dir menu entry, description, category)
|
241
|
+
#texinfo_documents = [
|
242
|
+
# ('index', 'PDC Client', u'PDC Client Documentation',
|
243
|
+
# u'PDC Devel Team', 'PDC', 'One line description of project.',
|
244
|
+
# 'Miscellaneous'),
|
245
|
+
#]
|
246
|
+
|
247
|
+
# Documents to append as an appendix to all manuals.
|
248
|
+
#texinfo_appendices = []
|
249
|
+
|
250
|
+
# If false, no module index is generated.
|
251
|
+
#texinfo_domain_indices = True
|
252
|
+
|
253
|
+
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
254
|
+
#texinfo_show_urls = 'footnote'
|
255
|
+
|
256
|
+
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
257
|
+
#texinfo_no_detailmenu = False
|
@@ -0,0 +1,23 @@
|
|
1
|
+
.. PDC Ruby Gem documentation master file, created by
|
2
|
+
sphinx-quickstart on Tue Aug 17 14:45:45 2016.
|
3
|
+
You can adapt this file completely to your liking, but it should at least
|
4
|
+
contain the root `toctree` directive.
|
5
|
+
|
6
|
+
Welcome to PDC Ruby Gem's documentation!
|
7
|
+
===============================
|
8
|
+
|
9
|
+
Contents:
|
10
|
+
|
11
|
+
.. toctree::
|
12
|
+
:maxdepth: 3
|
13
|
+
:numbered:
|
14
|
+
|
15
|
+
example
|
16
|
+
|
17
|
+
|
18
|
+
Indices and tables
|
19
|
+
==================
|
20
|
+
|
21
|
+
* :ref:`genindex`
|
22
|
+
* :ref:`search`
|
23
|
+
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# Copyright (c) Teracy, Inc. and individual contributors.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
5
|
+
# are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
# 1. Redistributions of source code must retain the above copyright notice,
|
8
|
+
# this list of conditions and the following disclaimer.
|
9
|
+
|
10
|
+
# 2. Redistributions in binary form must reproduce the above copyright
|
11
|
+
# notice, this list of conditions and the following disclaimer in the
|
12
|
+
# documentation and/or other materials provided with the distribution.
|
13
|
+
|
14
|
+
# 3. Neither the name of Teracy, Inc. nor the names of its contributors may be used
|
15
|
+
# to endorse or promote products derived from this software without
|
16
|
+
# specific prior written permission.
|
17
|
+
|
18
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
19
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
20
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
21
|
+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
22
|
+
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
23
|
+
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
24
|
+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
25
|
+
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
26
|
+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
27
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
28
|
+
|
29
|
+
# Deployment configurations from sphinx_deployment project
|
30
|
+
|
31
|
+
# default deployment when $ make deploy
|
32
|
+
# deploy_gh_pages : to $ make deploy_gh_pages
|
33
|
+
|
34
|
+
# default value: deploy_gh_pages
|
35
|
+
ifndef DEPLOY_DEFAULT
|
36
|
+
DEPLOY_DEFAULT = deploy_gh_pages
|
37
|
+
endif
|
38
|
+
|
39
|
+
# The deployment directory to be deployed
|
40
|
+
ifndef DEPLOY_DIR
|
41
|
+
DEPLOY_DIR = _deploy
|
42
|
+
endif
|
43
|
+
|
44
|
+
# The heroku deployment directory to be deployed
|
45
|
+
# we must create this separated dir to avoid any conflict with _deploy (rsync and gh_pages)
|
46
|
+
ifndef DEPLOY_DIR_HEROKU
|
47
|
+
DEPLOY_DIR_HEROKU = _deploy_heroku
|
48
|
+
endif
|
49
|
+
|
50
|
+
# Copy contents from $(BUILDDIR) to $(DEPLOY_DIR)/$(DEPLOY_HTML_DIR) directory
|
51
|
+
ifndef DEPLOY_HTML_DIR
|
52
|
+
DEPLOY_HTML_DIR = .
|
53
|
+
endif
|
54
|
+
|
55
|
+
## -- Github Pages Deploy config -- ##
|
56
|
+
|
57
|
+
# Configure the right deployment branch
|
58
|
+
ifndef DEPLOY_BRANCH_GITHUB
|
59
|
+
DEPLOY_BRANCH_GITHUB = gh-pages
|
60
|
+
endif
|
61
|
+
|
62
|
+
#if REPO_URL_GITHUB was NOT defined by travis-ci
|
63
|
+
ifndef REPO_URL_GITHUB
|
64
|
+
# Configure your right github project repo
|
65
|
+
# REPO_URL_GITHUB = https://github.com/product-definition-center/pdc-client
|
66
|
+
endif
|
67
|
+
|
68
|
+
## end deployment configuration, don't edit anything below this line ##
|
69
|
+
#######################################################################
|
70
|
+
|
71
|
+
ifeq ($(RSYNC_DELETE), true)
|
72
|
+
RSYNC_DELETE_OPT = --delete
|
73
|
+
endif
|
74
|
+
|
75
|
+
init_gh_pages:
|
76
|
+
@rm -rf $(DEPLOY_DIR)
|
77
|
+
@mkdir -p $(DEPLOY_DIR)
|
78
|
+
@cd $(DEPLOY_DIR); git init;\
|
79
|
+
echo 'sphinx docs comming soon...' > index.html;\
|
80
|
+
touch .nojekyll;\
|
81
|
+
git add .; git commit -m "sphinx docs init";\
|
82
|
+
git branch -m $(DEPLOY_BRANCH_GITHUB);\
|
83
|
+
git remote add origin $(REPO_URL_GITHUB);
|
84
|
+
@cd $(DEPLOY_DIR);\
|
85
|
+
if ! git ls-remote origin $(DEPLOY_BRANCH_GITHUB) | grep $(DEPLOY_BRANCH_GITHUB) ; then \
|
86
|
+
echo "Preparing Github deployment branch: $(DEPLOY_BRANCH_GITHUB) for the first time only...";\
|
87
|
+
git push -u origin $(DEPLOY_BRANCH_GITHUB);\
|
88
|
+
fi
|
89
|
+
|
90
|
+
setup_gh_pages: init_gh_pages
|
91
|
+
@echo "Setting up gh-pages deployment..."
|
92
|
+
@cd $(DEPLOY_DIR);\
|
93
|
+
git fetch origin;\
|
94
|
+
git reset --hard origin/$(DEPLOY_BRANCH_GITHUB);\
|
95
|
+
git branch --set-upstream $(DEPLOY_BRANCH_GITHUB) origin/$(DEPLOY_BRANCH_GITHUB)
|
96
|
+
@echo "Now you can deploy to Github Pages with 'make generate' and then 'make deploy_gh_pages'"
|
97
|
+
|
98
|
+
generate: html
|
99
|
+
|
100
|
+
prepare_gh_pages_deployment:
|
101
|
+
@echo "Preparing gh_pages deployment..."
|
102
|
+
@echo "Pulling any updates from Github Pages..."
|
103
|
+
@cd $(DEPLOY_DIR); git pull;
|
104
|
+
@mkdir -p $(DEPLOY_DIR)/$(DEPLOY_HTML_DIR)
|
105
|
+
@echo "Copying files from '$(BUILDDIR)/html/.' to '$(DEPLOY_DIR)/$(DEPLOY_HTML_DIR)'"
|
106
|
+
@cp -r $(BUILDDIR)/html/. $(DEPLOY_DIR)/$(DEPLOY_HTML_DIR)
|
107
|
+
|
108
|
+
deploy_gh_pages: prepare_gh_pages_deployment
|
109
|
+
@echo "Deploying on github pages now..."
|
110
|
+
@cd $(DEPLOY_DIR); git add -A; git commit -m "docs updated at `LC_ALL=en_US.utf8 date -u`";\
|
111
|
+
git push origin $(DEPLOY_BRANCH) --quiet
|
112
|
+
@echo "Github Pages deploy was completed at `LC_ALL=en_US.utf8 date -u`"
|
113
|
+
|
114
|
+
|
115
|
+
deploy: $(DEPLOY_DEFAULT)
|
116
|
+
|
117
|
+
gen_deploy: generate deploy
|
@@ -0,0 +1,33 @@
|
|
1
|
+
|
2
|
+
# module PDC
|
3
|
+
# class Base
|
4
|
+
# include ActiveAttr::Model
|
5
|
+
# include Resource::Identity
|
6
|
+
# end
|
7
|
+
# end
|
8
|
+
#
|
9
|
+
# module PDC::V1
|
10
|
+
# class Release < PDC::Base
|
11
|
+
# attribute :first_name
|
12
|
+
# attribute :last_name
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
#
|
17
|
+
#
|
18
|
+
#
|
19
|
+
# describe PDC::V1::Release do
|
20
|
+
# let(:release_class) { PDC::V1::Release }
|
21
|
+
# it 'works' do
|
22
|
+
# person = release_class.new
|
23
|
+
# person.first_name = "Chris"
|
24
|
+
# person.last_name = "Griego"
|
25
|
+
# person.attributes #=> {"first_name"=>"Chris", "last_name"=>"Griego"}
|
26
|
+
# person.first_name = "Chris"
|
27
|
+
# person.last_name = "Griego"
|
28
|
+
# require 'pry'; binding.pry
|
29
|
+
# person.attributes #=> {"first_name"=>"Chris", "last_name"=>"Griego"}
|
30
|
+
# end
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
#
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'ap'
|
2
|
+
require './lib/pdc'
|
3
|
+
|
4
|
+
PDC.configure do |config|
|
5
|
+
# invalid
|
6
|
+
config.site = 'http://localhost:8000/foo/bar/baz'
|
7
|
+
config.enable_logging = true
|
8
|
+
config.auth_type = :basic
|
9
|
+
config.use_ssl = false
|
10
|
+
end
|
11
|
+
|
12
|
+
begin
|
13
|
+
release = PDC::V1::Release.all
|
14
|
+
release.to_a
|
15
|
+
rescue PDC::Error::ResourceNotFound => e
|
16
|
+
ap e
|
17
|
+
puts "Got resource not found as expected: #{e.response[:status]}".yellowish
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'ap'
|
2
|
+
require_relative '../lib/pdc'
|
3
|
+
|
4
|
+
def main
|
5
|
+
PDC.configure do |config|
|
6
|
+
config.site = 'http://localhost:8000'
|
7
|
+
config.requires_token = false
|
8
|
+
config.log_level = :debug
|
9
|
+
end
|
10
|
+
|
11
|
+
releases = PDC::V1::Release.all!.to_a
|
12
|
+
ap releases
|
13
|
+
end
|
14
|
+
|
15
|
+
main if __FILE__ == $PROGRAM_NAME
|
data/examples/logger.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
require_relative '../lib/pdc'
|
2
|
+
require 'ap'
|
3
|
+
|
4
|
+
class FakeLogger
|
5
|
+
attr_accessor :level
|
6
|
+
|
7
|
+
def debug(*args)
|
8
|
+
end
|
9
|
+
def info(*args)
|
10
|
+
end
|
11
|
+
def warn(*args)
|
12
|
+
end
|
13
|
+
def fatal(*args)
|
14
|
+
end
|
15
|
+
|
16
|
+
def error(*args)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
#PDC.logger = FakeLogger.new
|
21
|
+
|
22
|
+
|
23
|
+
logger = PDC.logger
|
24
|
+
|
25
|
+
logger.debug("Debug will be logged")
|
26
|
+
logger.info("Info will be logged as well")
|
27
|
+
|
28
|
+
logger.level = Logger::WARN
|
29
|
+
|
30
|
+
logger.debug("Created logger") # won't be logged
|
31
|
+
logger.info("Program started") # won't be logged
|
32
|
+
logger.warn("Nothing to do!")
|
33
|
+
logger.error("Error something really went wrong")
|
34
|
+
|
35
|
+
path = "a_non_existent_file"
|
36
|
+
|
37
|
+
begin
|
38
|
+
File.foreach(path) do |line|
|
39
|
+
unless line =~ /^(\w+) = (.*)$/
|
40
|
+
logger.error("Line in wrong format: #{line.chomp}")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
rescue => err
|
44
|
+
logger.fatal("Caught exception; exiting")
|
45
|
+
logger.fatal(err)
|
46
|
+
end
|
47
|
+
|
48
|
+
logger.level = Logger::INFO
|
49
|
+
logger.info("will continue here")
|
50
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'ap'
|
2
|
+
require 'curb'
|
3
|
+
require 'json'
|
4
|
+
require './lib/pdc'
|
5
|
+
|
6
|
+
def obtain_token
|
7
|
+
url = PDC.config.site + PDC.config.rest_api_path + '/' + PDC.config.token_obtain_path
|
8
|
+
|
9
|
+
c = Curl::Easy.new(url) do |request|
|
10
|
+
request.headers["Accept"] = "application/json"
|
11
|
+
request.http_auth_types = :gssnegotiate
|
12
|
+
|
13
|
+
# The curl man page (http://curl.haxx.se/docs/manpage.html) specifes
|
14
|
+
# setting a fake username when using Negotiate auth, and use ':'
|
15
|
+
# in their example.
|
16
|
+
request.username = ':'
|
17
|
+
end
|
18
|
+
c.perform
|
19
|
+
raise "Obtain token from #{url} failed: #{c.body_str}" if c.response_code != 200
|
20
|
+
result = JSON.parse(c.body_str)
|
21
|
+
ap result
|
22
|
+
c.close
|
23
|
+
result['token']
|
24
|
+
end
|
25
|
+
|
26
|
+
PDC.configure do |config|
|
27
|
+
# invalid
|
28
|
+
config.site = 'https://pdc.engineering.redhat.com/'
|
29
|
+
end
|
30
|
+
|
31
|
+
def show_releases
|
32
|
+
releases = PDC::V1::Release.all
|
33
|
+
ap releases.to_a
|
34
|
+
end
|
35
|
+
|
36
|
+
show_releases
|