claim 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: eb59deb1ae20b777e152a25a1ddf822cb3b668a81f19262c8f5a940a27173ffa
4
+ data.tar.gz: 44d1c8c0ad5f9b1cf99916bc55d520f7cd72c447ec69fd41629e8d139b341d0f
5
+ SHA512:
6
+ metadata.gz: a20b5302c449d633aedd6e31e31fd30c23fdb5a4eb4c6494dd98b408495b7840c772842d2c7de8a71357e73ac50178e0946d59acab304fac7e318bbf959088b9
7
+ data.tar.gz: 7c9fc7c84e936ca1651cdd3ba79597187ad8cbb533ea00d40b2e75e2226a1cfdf5f36d349dcaf7f4e947640bac56328179a8d677c6dfe88cf1974f76063dabb1
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /Gemfile.lock
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+
11
+ # rspec failure tracking
12
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,39 @@
1
+ AllCops:
2
+ Exclude:
3
+ - Rakefile
4
+ - Gemfile
5
+ UseCache: true
6
+ TargetRubyVersion: 2.6
7
+
8
+ Metrics/BlockLength:
9
+ Enabled: false
10
+
11
+ Metrics/LineLength:
12
+ Max: 120
13
+
14
+ Style/GuardClause:
15
+ Enabled: false
16
+
17
+ Style/SymbolArray:
18
+ EnforcedStyle: brackets
19
+
20
+ Style/SymbolProc:
21
+ Enabled: false
22
+
23
+ Style/TrailingUnderscoreVariable:
24
+ Enabled: false
25
+
26
+ Layout/EmptyLinesAroundClassBody:
27
+ EnforcedStyle: empty_lines_except_namespace
28
+
29
+ Layout/EmptyLinesAroundModuleBody:
30
+ EnforcedStyle: empty_lines_except_namespace
31
+
32
+ Layout/MultilineMethodCallIndentation:
33
+ EnforcedStyle: aligned
34
+
35
+ Layout/SpaceInsideArrayLiteralBrackets:
36
+ EnforcedStyle: space
37
+
38
+ Layout/SpaceInsidePercentLiteralDelimiters:
39
+ Enabled: false
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.6.2
7
+ before_install: gem install bundler -v 1.17.3
File without changes
data/COPYING ADDED
@@ -0,0 +1,599 @@
1
+ Source code distributed under the Eclipse Public License - v 1.0:
2
+
3
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
4
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
5
+ THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
6
+
7
+ 1. DEFINITIONS
8
+
9
+ "Contribution" means:
10
+
11
+ a) in the case of the initial Contributor, the initial code and
12
+ documentation distributed under this Agreement, and
13
+
14
+ b) in the case of each subsequent Contributor:
15
+
16
+ i) changes to the Program, and
17
+
18
+ ii) additions to the Program;
19
+
20
+ where such changes and/or additions to the Program originate from and
21
+ are distributed by that particular Contributor. A Contribution
22
+ 'originates' from a Contributor if it was added to the Program by such
23
+ Contributor itself or anyone acting on such Contributor's
24
+ behalf. Contributions do not include additions to the Program which:
25
+ (i) are separate modules of software distributed in conjunction with
26
+ the Program under their own license agreement, and (ii) are not
27
+ derivative works of the Program.
28
+
29
+ "Contributor" means any person or entity that distributes the Program.
30
+
31
+ "Licensed Patents" mean patent claims licensable by a Contributor
32
+ which are necessarily infringed by the use or sale of its Contribution
33
+ alone or when combined with the Program.
34
+
35
+ "Program" means the Contributions distributed in accordance with this
36
+ Agreement.
37
+
38
+ "Recipient" means anyone who receives the Program under this
39
+ Agreement, including all Contributors.
40
+
41
+ 2. GRANT OF RIGHTS
42
+
43
+ a) Subject to the terms of this Agreement, each Contributor hereby
44
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
45
+ license to reproduce, prepare derivative works of, publicly display,
46
+ publicly perform, distribute and sublicense the Contribution of such
47
+ Contributor, if any, and such derivative works, in source code and
48
+ object code form.
49
+
50
+ b) Subject to the terms of this Agreement, each Contributor hereby
51
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
52
+ license under Licensed Patents to make, use, sell, offer to sell,
53
+ import and otherwise transfer the Contribution of such Contributor, if
54
+ any, in source code and object code form. This patent license shall
55
+ apply to the combination of the Contribution and the Program if, at
56
+ the time the Contribution is added by the Contributor, such addition
57
+ of the Contribution causes such combination to be covered by the
58
+ Licensed Patents. The patent license shall not apply to any other
59
+ combinations which include the Contribution. No hardware per se is
60
+ licensed hereunder.
61
+
62
+ c) Recipient understands that although each Contributor grants the
63
+ licenses to its Contributions set forth herein, no assurances are
64
+ provided by any Contributor that the Program does not infringe the
65
+ patent or other intellectual property rights of any other entity. Each
66
+ Contributor disclaims any liability to Recipient for claims brought by
67
+ any other entity based on infringement of intellectual property rights
68
+ or otherwise. As a condition to exercising the rights and licenses
69
+ granted hereunder, each Recipient hereby assumes sole responsibility
70
+ to secure any other intellectual property rights needed, if any. For
71
+ example, if a third party patent license is required to allow
72
+ Recipient to distribute the Program, it is Recipient's responsibility
73
+ to acquire that license before distributing the Program.
74
+
75
+ d) Each Contributor represents that to its knowledge it has sufficient
76
+ copyright rights in its Contribution, if any, to grant the copyright
77
+ license set forth in this Agreement.
78
+
79
+ 3. REQUIREMENTS
80
+
81
+ A Contributor may choose to distribute the Program in object code form
82
+ under its own license agreement, provided that:
83
+
84
+ a) it complies with the terms and conditions of this Agreement; and
85
+
86
+ b) its license agreement:
87
+
88
+ i) effectively disclaims on behalf of all Contributors all warranties
89
+ and conditions, express and implied, including warranties or
90
+ conditions of title and non-infringement, and implied warranties or
91
+ conditions of merchantability and fitness for a particular purpose;
92
+
93
+ ii) effectively excludes on behalf of all Contributors all liability
94
+ for damages, including direct, indirect, special, incidental and
95
+ consequential damages, such as lost profits;
96
+
97
+ iii) states that any provisions which differ from this Agreement are
98
+ offered by that Contributor alone and not by any other party; and
99
+
100
+ iv) states that source code for the Program is available from such
101
+ Contributor, and informs licensees how to obtain it in a reasonable
102
+ manner on or through a medium customarily used for software exchange.
103
+
104
+ When the Program is made available in source code form:
105
+
106
+ a) it must be made available under this Agreement; and
107
+
108
+ b) a copy of this Agreement must be included with each copy of the Program.
109
+
110
+ Contributors may not remove or alter any copyright notices contained
111
+ within the Program.
112
+
113
+ Each Contributor must identify itself as the originator of its
114
+ Contribution, if any, in a manner that reasonably allows subsequent
115
+ Recipients to identify the originator of the Contribution.
116
+
117
+ 4. COMMERCIAL DISTRIBUTION
118
+
119
+ Commercial distributors of software may accept certain
120
+ responsibilities with respect to end users, business partners and the
121
+ like. While this license is intended to facilitate the commercial use
122
+ of the Program, the Contributor who includes the Program in a
123
+ commercial product offering should do so in a manner which does not
124
+ create potential liability for other Contributors. Therefore, if a
125
+ Contributor includes the Program in a commercial product offering,
126
+ such Contributor ("Commercial Contributor") hereby agrees to defend
127
+ and indemnify every other Contributor ("Indemnified Contributor")
128
+ against any losses, damages and costs (collectively "Losses") arising
129
+ from claims, lawsuits and other legal actions brought by a third party
130
+ against the Indemnified Contributor to the extent caused by the acts
131
+ or omissions of such Commercial Contributor in connection with its
132
+ distribution of the Program in a commercial product offering. The
133
+ obligations in this section do not apply to any claims or Losses
134
+ relating to any actual or alleged intellectual property
135
+ infringement. In order to qualify, an Indemnified Contributor must: a)
136
+ promptly notify the Commercial Contributor in writing of such claim,
137
+ and b) allow the Commercial Contributor to control, and cooperate with
138
+ the Commercial Contributor in, the defense and any related settlement
139
+ negotiations. The Indemnified Contributor may participate in any such
140
+ claim at its own expense.
141
+
142
+ For example, a Contributor might include the Program in a commercial
143
+ product offering, Product X. That Contributor is then a Commercial
144
+ Contributor. If that Commercial Contributor then makes performance
145
+ claims, or offers warranties related to Product X, those performance
146
+ claims and warranties are such Commercial Contributor's responsibility
147
+ alone. Under this section, the Commercial Contributor would have to
148
+ defend claims against the other Contributors related to those
149
+ performance claims and warranties, and if a court requires any other
150
+ Contributor to pay any damages as a result, the Commercial Contributor
151
+ must pay those damages.
152
+
153
+ 5. NO WARRANTY
154
+
155
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
156
+ PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
157
+ KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
158
+ WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
159
+ OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
160
+ responsible for determining the appropriateness of using and
161
+ distributing the Program and assumes all risks associated with its
162
+ exercise of rights under this Agreement , including but not limited to
163
+ the risks and costs of program errors, compliance with applicable
164
+ laws, damage to or loss of data, programs or equipment, and
165
+ unavailability or interruption of operations.
166
+
167
+ 6. DISCLAIMER OF LIABILITY
168
+
169
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
170
+ ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
171
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
172
+ WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
173
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
174
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
175
+ DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
176
+ HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
177
+
178
+ 7. GENERAL
179
+
180
+ If any provision of this Agreement is invalid or unenforceable under
181
+ applicable law, it shall not affect the validity or enforceability of
182
+ the remainder of the terms of this Agreement, and without further
183
+ action by the parties hereto, such provision shall be reformed to the
184
+ minimum extent necessary to make such provision valid and enforceable.
185
+
186
+ If Recipient institutes patent litigation against any entity
187
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
188
+ the Program itself (excluding combinations of the Program with other
189
+ software or hardware) infringes such Recipient's patent(s), then such
190
+ Recipient's rights granted under Section 2(b) shall terminate as of
191
+ the date such litigation is filed.
192
+
193
+ All Recipient's rights under this Agreement shall terminate if it
194
+ fails to comply with any of the material terms or conditions of this
195
+ Agreement and does not cure such failure in a reasonable period of
196
+ time after becoming aware of such noncompliance. If all Recipient's
197
+ rights under this Agreement terminate, Recipient agrees to cease use
198
+ and distribution of the Program as soon as reasonably
199
+ practicable. However, Recipient's obligations under this Agreement and
200
+ any licenses granted by Recipient relating to the Program shall
201
+ continue and survive.
202
+
203
+ Everyone is permitted to copy and distribute copies of this Agreement,
204
+ but in order to avoid inconsistency the Agreement is copyrighted and
205
+ may only be modified in the following manner. The Agreement Steward
206
+ reserves the right to publish new versions (including revisions) of
207
+ this Agreement from time to time. No one other than the Agreement
208
+ Steward has the right to modify this Agreement. The Eclipse Foundation
209
+ is the initial Agreement Steward. The Eclipse Foundation may assign
210
+ the responsibility to serve as the Agreement Steward to a suitable
211
+ separate entity. Each new version of the Agreement will be given a
212
+ distinguishing version number. The Program (including Contributions)
213
+ may always be distributed subject to the version of the Agreement
214
+ under which it was received. In addition, after a new version of the
215
+ Agreement is published, Contributor may elect to distribute the
216
+ Program (including its Contributions) under the new version. Except as
217
+ expressly stated in Sections 2(a) and 2(b) above, Recipient receives
218
+ no rights or licenses to the intellectual property of any Contributor
219
+ under this Agreement, whether expressly, by implication, estoppel or
220
+ otherwise. All rights in the Program not expressly granted under this
221
+ Agreement are reserved.
222
+
223
+ This Agreement is governed by the laws of the State of New York and
224
+ the intellectual property laws of the United States of America. No
225
+ party to this Agreement will bring a legal action under this Agreement
226
+ more than one year after the cause of action arose. Each party waives
227
+ its rights to a jury trial in any resulting litigation.
228
+
229
+
230
+
231
+ Images distributed under the Creative Commons Attribution + ShareAlike
232
+ License version 3.0:
233
+
234
+ THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
235
+ CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS
236
+ PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE
237
+ WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS
238
+ PROHIBITED.
239
+
240
+ BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND
241
+ AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS
242
+ LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU
243
+ THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH
244
+ TERMS AND CONDITIONS.
245
+
246
+ 1. Definitions
247
+
248
+ "Adaptation" means a work based upon the Work, or upon the Work
249
+ and other pre-existing works, such as a translation, adaptation,
250
+ derivative work, arrangement of music or other alterations of a
251
+ literary or artistic work, or phonogram or performance and
252
+ includes cinematographic adaptations or any other form in which
253
+ the Work may be recast, transformed, or adapted including in any
254
+ form recognizably derived from the original, except that a work
255
+ that constitutes a Collection will not be considered an Adaptation
256
+ for the purpose of this License. For the avoidance of doubt, where
257
+ the Work is a musical work, performance or phonogram, the
258
+ synchronization of the Work in timed-relation with a moving image
259
+ ("synching") will be considered an Adaptation for the purpose of
260
+ this License.
261
+
262
+ "Collection" means a collection of literary or artistic works,
263
+ such as encyclopedias and anthologies, or performances, phonograms
264
+ or broadcasts, or other works or subject matter other than works
265
+ listed in Section 1(f) below, which, by reason of the selection
266
+ and arrangement of their contents, constitute intellectual
267
+ creations, in which the Work is included in its entirety in
268
+ unmodified form along with one or more other contributions, each
269
+ constituting separate and independent works in themselves, which
270
+ together are assembled into a collective whole. A work that
271
+ constitutes a Collection will not be considered an Adaptation (as
272
+ defined below) for the purposes of this License.
273
+
274
+ "Creative Commons Compatible License" means a license that is
275
+ listed at http://creativecommons.org/compatiblelicenses that has
276
+ been approved by Creative Commons as being essentially equivalent
277
+ to this License, including, at a minimum, because that license:
278
+ (i) contains terms that have the same purpose, meaning and effect
279
+ as the License Elements of this License; and, (ii) explicitly
280
+ permits the relicensing of adaptations of works made available
281
+ under that license under this License or a Creative Commons
282
+ jurisdiction license with the same License Elements as this
283
+ License.
284
+
285
+ "Distribute" means to make available to the public the original
286
+ and copies of the Work or Adaptation, as appropriate, through sale
287
+ or other transfer of ownership.
288
+
289
+ "License Elements" means the following high-level license
290
+ attributes as selected by Licensor and indicated in the title of
291
+ this License: Attribution, ShareAlike.
292
+
293
+ "Licensor" means the individual, individuals, entity or entities
294
+ that offer(s) the Work under the terms of this License.
295
+
296
+ "Original Author" means, in the case of a literary or artistic
297
+ work, the individual, individuals, entity or entities who created
298
+ the Work or if no individual or entity can be identified, the
299
+ publisher; and in addition (i) in the case of a performance the
300
+ actors, singers, musicians, dancers, and other persons who act,
301
+ sing, deliver, declaim, play in, interpret or otherwise perform
302
+ literary or artistic works or expressions of folklore; (ii) in the
303
+ case of a phonogram the producer being the person or legal entity
304
+ who first fixes the sounds of a performance or other sounds; and,
305
+ (iii) in the case of broadcasts, the organization that transmits
306
+ the broadcast.
307
+
308
+ "Work" means the literary and/or artistic work offered under the
309
+ terms of this License including without limitation any production
310
+ in the literary, scientific and artistic domain, whatever may be
311
+ the mode or form of its expression including digital form, such as
312
+ a book, pamphlet and other writing; a lecture, address, sermon or
313
+ other work of the same nature; a dramatic or dramatico-musical
314
+ work; a choreographic work or entertainment in dumb show; a
315
+ musical composition with or without words; a cinematographic work
316
+ to which are assimilated works expressed by a process analogous to
317
+ cinematography; a work of drawing, painting, architecture,
318
+ sculpture, engraving or lithography; a photographic work to which
319
+ are assimilated works expressed by a process analogous to
320
+ photography; a work of applied art; an illustration, map, plan,
321
+ sketch or three-dimensional work relative to geography,
322
+ topography, architecture or science; a performance; a broadcast; a
323
+ phonogram; a compilation of data to the extent it is protected as
324
+ a copyrightable work; or a work performed by a variety or circus
325
+ performer to the extent it is not otherwise considered a literary
326
+ or artistic work.
327
+
328
+ "You" means an individual or entity exercising rights under this
329
+ License who has not previously violated the terms of this License
330
+ with respect to the Work, or who has received express permission
331
+ from the Licensor to exercise rights under this License despite a
332
+ previous violation.
333
+
334
+ "Publicly Perform" means to perform public recitations of the Work
335
+ and to communicate to the public those public recitations, by any
336
+ means or process, including by wire or wireless means or public
337
+ digital performances; to make available to the public Works in
338
+ such a way that members of the public may access these Works from
339
+ a place and at a place individually chosen by them; to perform the
340
+ Work to the public by any means or process and the communication
341
+ to the public of the performances of the Work, including by public
342
+ digital performance; to broadcast and rebroadcast the Work by any
343
+ means including signs, sounds or images.
344
+
345
+ "Reproduce" means to make copies of the Work by any means
346
+ including without limitation by sound or visual recordings and the
347
+ right of fixation and reproducing fixations of the Work, including
348
+ storage of a protected performance or phonogram in digital form or
349
+ other electronic medium.
350
+
351
+ 2. Fair Dealing Rights. Nothing in this License is intended to reduce,
352
+ limit, or restrict any uses free from copyright or rights arising from
353
+ limitations or exceptions that are provided for in connection with the
354
+ copyright protection under copyright law or other applicable laws.
355
+
356
+ 3. License Grant. Subject to the terms and conditions of this License,
357
+ Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
358
+ perpetual (for the duration of the applicable copyright) license to
359
+ exercise the rights in the Work as stated below:
360
+
361
+ to Reproduce the Work, to incorporate the Work into one or more
362
+ Collections, and to Reproduce the Work as incorporated in the
363
+ Collections;
364
+
365
+ to create and Reproduce Adaptations provided that any such
366
+ Adaptation, including any translation in any medium, takes
367
+ reasonable steps to clearly label, demarcate or otherwise identify
368
+ that changes were made to the original Work. For example, a
369
+ translation could be marked "The original work was translated from
370
+ English to Spanish," or a modification could indicate "The
371
+ original work has been modified.";
372
+
373
+ to Distribute and Publicly Perform the Work including as
374
+ incorporated in Collections; and,
375
+
376
+ to Distribute and Publicly Perform Adaptations.
377
+
378
+ For the avoidance of doubt:
379
+
380
+ Non-waivable Compulsory License Schemes. In those
381
+ jurisdictions in which the right to collect royalties through
382
+ any statutory or compulsory licensing scheme cannot be waived,
383
+ the Licensor reserves the exclusive right to collect such
384
+ royalties for any exercise by You of the rights granted under
385
+ this License;
386
+
387
+ Waivable Compulsory License Schemes. In those jurisdictions in
388
+ which the right to collect royalties through any statutory or
389
+ compulsory licensing scheme can be waived, the Licensor waives
390
+ the exclusive right to collect such royalties for any exercise
391
+ by You of the rights granted under this License; and,
392
+
393
+ Voluntary License Schemes. The Licensor waives the right to
394
+ collect royalties, whether individually or, in the event that
395
+ the Licensor is a member of a collecting society that
396
+ administers voluntary licensing schemes, via that society,
397
+ from any exercise by You of the rights granted under this
398
+ License.
399
+
400
+ The above rights may be exercised in all media and formats whether now
401
+ known or hereafter devised. The above rights include the right to make
402
+ such modifications as are technically necessary to exercise the rights
403
+ in other media and formats. Subject to Section 8(f), all rights not
404
+ expressly granted by Licensor are hereby reserved.
405
+
406
+ 4. Restrictions. The license granted in Section 3 above is expressly
407
+ made subject to and limited by the following restrictions:
408
+
409
+ You may Distribute or Publicly Perform the Work only under the
410
+ terms of this License. You must include a copy of, or the Uniform
411
+ Resource Identifier (URI) for, this License with every copy of the
412
+ Work You Distribute or Publicly Perform. You may not offer or
413
+ impose any terms on the Work that restrict the terms of this
414
+ License or the ability of the recipient of the Work to exercise
415
+ the rights granted to that recipient under the terms of the
416
+ License. You may not sublicense the Work. You must keep intact all
417
+ notices that refer to this License and to the disclaimer of
418
+ warranties with every copy of the Work You Distribute or Publicly
419
+ Perform. When You Distribute or Publicly Perform the Work, You may
420
+ not impose any effective technological measures on the Work that
421
+ restrict the ability of a recipient of the Work from You to
422
+ exercise the rights granted to that recipient under the terms of
423
+ the License. This Section 4(a) applies to the Work as incorporated
424
+ in a Collection, but this does not require the Collection apart
425
+ from the Work itself to be made subject to the terms of this
426
+ License. If You create a Collection, upon notice from any Licensor
427
+ You must, to the extent practicable, remove from the Collection
428
+ any credit as required by Section 4(c), as requested. If You
429
+ create an Adaptation, upon notice from any Licensor You must, to
430
+ the extent practicable, remove from the Adaptation any credit as
431
+ required by Section 4(c), as requested.
432
+
433
+ You may Distribute or Publicly Perform an Adaptation only under
434
+ the terms of: (i) this License; (ii) a later version of this
435
+ License with the same License Elements as this License; (iii) a
436
+ Creative Commons jurisdiction license (either this or a later
437
+ license version) that contains the same License Elements as this
438
+ License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative
439
+ Commons Compatible License. If you license the Adaptation under
440
+ one of the licenses mentioned in (iv), you must comply with the
441
+ terms of that license. If you license the Adaptation under the
442
+ terms of any of the licenses mentioned in (i), (ii) or (iii) (the
443
+ "Applicable License"), you must comply with the terms of the
444
+ Applicable License generally and the following provisions: (I) You
445
+ must include a copy of, or the URI for, the Applicable License
446
+ with every copy of each Adaptation You Distribute or Publicly
447
+ Perform; (II) You may not offer or impose any terms on the
448
+ Adaptation that restrict the terms of the Applicable License or
449
+ the ability of the recipient of the Adaptation to exercise the
450
+ rights granted to that recipient under the terms of the Applicable
451
+ License; (III) You must keep intact all notices that refer to the
452
+ Applicable License and to the disclaimer of warranties with every
453
+ copy of the Work as included in the Adaptation You Distribute or
454
+ Publicly Perform; (IV) when You Distribute or Publicly Perform the
455
+ Adaptation, You may not impose any effective technological
456
+ measures on the Adaptation that restrict the ability of a
457
+ recipient of the Adaptation from You to exercise the rights
458
+ granted to that recipient under the terms of the Applicable
459
+ License. This Section 4(b) applies to the Adaptation as
460
+ incorporated in a Collection, but this does not require the
461
+ Collection apart from the Adaptation itself to be made subject to
462
+ the terms of the Applicable License.
463
+
464
+ If You Distribute, or Publicly Perform the Work or any Adaptations
465
+ or Collections, You must, unless a request has been made pursuant
466
+ to Section 4(a), keep intact all copyright notices for the Work
467
+ and provide, reasonable to the medium or means You are utilizing:
468
+ (i) the name of the Original Author (or pseudonym, if applicable)
469
+ if supplied, and/or if the Original Author and/or Licensor
470
+ designate another party or parties (e.g., a sponsor institute,
471
+ publishing entity, journal) for attribution ("Attribution
472
+ Parties") in Licensor's copyright notice, terms of service or by
473
+ other reasonable means, the name of such party or parties; (ii)
474
+ the title of the Work if supplied; (iii) to the extent reasonably
475
+ practicable, the URI, if any, that Licensor specifies to be
476
+ associated with the Work, unless such URI does not refer to the
477
+ copyright notice or licensing information for the Work; and (iv) ,
478
+ consistent with Ssection 3(b), in the case of an Adaptation, a
479
+ credit identifying the use of the Work in the Adaptation (e.g.,
480
+ "French translation of the Work by Original Author," or
481
+ "Screenplay based on original Work by Original Author"). The
482
+ credit required by this Section 4(c) may be implemented in any
483
+ reasonable manner; provided, however, that in the case of a
484
+ Adaptation or Collection, at a minimum such credit will appear, if
485
+ a credit for all contributing authors of the Adaptation or
486
+ Collection appears, then as part of these credits and in a manner
487
+ at least as prominent as the credits for the other contributing
488
+ authors. For the avoidance of doubt, You may only use the credit
489
+ required by this Section for the purpose of attribution in the
490
+ manner set out above and, by exercising Your rights under this
491
+ License, You may not implicitly or explicitly assert or imply any
492
+ connection with, sponsorship or endorsement by the Original
493
+ Author, Licensor and/or Attribution Parties, as appropriate, of
494
+ You or Your use of the Work, without the separate, express prior
495
+ written permission of the Original Author, Licensor and/or
496
+ Attribution Parties.
497
+
498
+ Except as otherwise agreed in writing by the Licensor or as may be
499
+ otherwise permitted by applicable law, if You Reproduce,
500
+ Distribute or Publicly Perform the Work either by itself or as
501
+ part of any Adaptations or Collections, You must not distort,
502
+ mutilate, modify or take other derogatory action in relation to
503
+ the Work which would be prejudicial to the Original Author's honor
504
+ or reputation. Licensor agrees that in those jurisdictions
505
+ (e.g. Japan), in which any exercise of the right granted in
506
+ Section 3(b) of this License (the right to make Adaptations) would
507
+ be deemed to be a distortion, mutilation, modification or other
508
+ derogatory action prejudicial to the Original Author's honor and
509
+ reputation, the Licensor will waive or not assert, as appropriate,
510
+ this Section, to the fullest extent permitted by the applicable
511
+ national law, to enable You to reasonably exercise Your right
512
+ under Section 3(b) of this License (right to make Adaptations) but
513
+ not otherwise.
514
+
515
+ 5. Representations, Warranties and Disclaimer
516
+
517
+ UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING,
518
+ LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR
519
+ WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED,
520
+ STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF
521
+ TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE,
522
+ NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY,
523
+ OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT
524
+ DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED
525
+ WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
526
+
527
+ 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY
528
+ APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY
529
+ LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR
530
+ EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK,
531
+ EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
532
+
533
+ 7. Termination
534
+
535
+ This License and the rights granted hereunder will terminate
536
+ automatically upon any breach by You of the terms of this
537
+ License. Individuals or entities who have received Adaptations or
538
+ Collections from You under this License, however, will not have
539
+ their licenses terminated provided such individuals or entities
540
+ remain in full compliance with those licenses. Sections 1, 2, 5,
541
+ 6, 7, and 8 will survive any termination of this License.
542
+
543
+ Subject to the above terms and conditions, the license granted
544
+ here is perpetual (for the duration of the applicable copyright in
545
+ the Work). Notwithstanding the above, Licensor reserves the right
546
+ to release the Work under different license terms or to stop
547
+ distributing the Work at any time; provided, however that any such
548
+ election will not serve to withdraw this License (or any other
549
+ license that has been, or is required to be, granted under the
550
+ terms of this License), and this License will continue in full
551
+ force and effect unless terminated as stated above.
552
+
553
+ 8. Miscellaneous
554
+
555
+ Each time You Distribute or Publicly Perform the Work or a
556
+ Collection, the Licensor offers to the recipient a license to the
557
+ Work on the same terms and conditions as the license granted to
558
+ You under this License.
559
+
560
+ Each time You Distribute or Publicly Perform an Adaptation,
561
+ Licensor offers to the recipient a license to the original Work on
562
+ the same terms and conditions as the license granted to You under
563
+ this License.
564
+
565
+ If any provision of this License is invalid or unenforceable under
566
+ applicable law, it shall not affect the validity or enforceability
567
+ of the remainder of the terms of this License, and without further
568
+ action by the parties to this agreement, such provision shall be
569
+ reformed to the minimum extent necessary to make such provision
570
+ valid and enforceable.
571
+
572
+ No term or provision of this License shall be deemed waived and no
573
+ breach consented to unless such waiver or consent shall be in
574
+ writing and signed by the party to be charged with such waiver or
575
+ consent.
576
+
577
+ This License constitutes the entire agreement between the parties
578
+ with respect to the Work licensed here. There are no
579
+ understandings, agreements or representations with respect to the
580
+ Work not specified here. Licensor shall not be bound by any
581
+ additional provisions that may appear in any communication from
582
+ You. This License may not be modified without the mutual written
583
+ agreement of the Licensor and You.
584
+
585
+ The rights granted under, and the subject matter referenced, in
586
+ this License were drafted utilizing the terminology of the Berne
587
+ Convention for the Protection of Literary and Artistic Works (as
588
+ amended on September 28, 1979), the Rome Convention of 1961, the
589
+ WIPO Copyright Treaty of 1996, the WIPO Performances and
590
+ Phonograms Treaty of 1996 and the Universal Copyright Convention
591
+ (as revised on July 24, 1971). These rights and subject matter
592
+ take effect in the relevant jurisdiction in which the License
593
+ terms are sought to be enforced according to the corresponding
594
+ provisions of the implementation of those treaty provisions in the
595
+ applicable national law. If the standard suite of rights granted
596
+ under applicable copyright law includes additional rights not
597
+ granted under this License, such additional rights are deemed to
598
+ be included in the License; this License is not intended to
599
+ restrict the license of any rights under applicable law.
@@ -0,0 +1,54 @@
1
+ FROM ruby:2.6.2
2
+
3
+ # Bundler options
4
+ #
5
+ # The default value is taken from Heroku's build options, so they should be
6
+ # good enough for most cases. For development, be sure to set a blank default
7
+ # in docker-compose.override.yml.
8
+ ARG BUNDLER_OPTS="--without development:test \
9
+ --jobs 4 \
10
+ --deployment"
11
+
12
+ # The home directory of the application.
13
+ #
14
+ # During development, make sure that the APP_DIR environment variable is
15
+ # identical to the variable in your docker-compose.override.yml file,
16
+ # otherwise things might not work as expected.
17
+ ENV APP_DIR="/opt/claim"
18
+
19
+ # Create a non-root user
20
+ RUN groupadd -r deploy \
21
+ && useradd -m -r -g deploy deploy
22
+ RUN mkdir -p ${APP_DIR} \
23
+ && chown -R deploy:deploy ${APP_DIR}
24
+
25
+ # Move the the application folder to perform all the following tasks.
26
+ WORKDIR ${APP_DIR}
27
+ # Use the non-root user to perform any commands from this point forward.
28
+ #
29
+ # NOTE: The COPY command requires the --chown flag set otherwise it will
30
+ # copy things as root.
31
+ USER deploy
32
+
33
+ # Copy the Gemfile and Gemfile.lock files so `bundle install` can run when the
34
+ # container is initialized.
35
+ #
36
+ # The added benefit is that Docker will cache this file and will not trigger
37
+ # the bundle install unless the Gemfile changed on the filesystem.
38
+ #
39
+ # NOTE: If the command fails because of the --chown flag, make sure you have a
40
+ # recent stable version of Docker.
41
+ COPY --chown=deploy:deploy Gemfile* ./
42
+ RUN bundle install ${BUNDLER_OPTS}
43
+
44
+ # Copy over the files, in case the Docker Compose file does not specify a
45
+ # mount point.
46
+ COPY --chown=deploy:deploy . ./
47
+
48
+ # Setup the Rails app to run when the container is created, using the CMD as
49
+ # extra params that can be overriden via the command-line or docker-compose.yml
50
+ #
51
+ # In this case, we're prefixing everything with `bundle exec` so we don't have
52
+ # to do this every time we start the container or when running commands.
53
+ ENTRYPOINT ["bundle", "exec"]
54
+ CMD ["rspec"]
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in claim.gemspec
6
+ gemspec
data/NEWS.md ADDED
@@ -0,0 +1,3 @@
1
+ # Claim News -- history of user-visible changes
2
+
3
+ ## CURRENT / 2019-04-01
@@ -0,0 +1,42 @@
1
+ # Claim
2
+
3
+ > JWTs represent a set of claims as a JSON object that is encoded in a
4
+ > JWS and/or JWE structure. This JSON object is the JWT Claims Set.
5
+ > As per Section 4 of RFC 7159 [RFC7159], the JSON object consists of
6
+ > zero or more name/value pairs (or members), where the names are
7
+ > strings and the values are arbitrary JSON values. These members are
8
+ > the claims represented by the JWT.
9
+ >
10
+ > - from [RFC 7519: JSON Web Token (JWT)](https://tools.ietf.org/html/rfc7519#section-3)
11
+
12
+ ActiveForum::Claim is a library inspired by the
13
+ [Warden authentication framework](https://github.com/wardencommunity/warden)
14
+ that validates the JWT and provides an easy way to authenticate and authorize
15
+ the user or connected application.
16
+
17
+
18
+ ## Architecture
19
+
20
+ TBD
21
+
22
+
23
+ ## Basic Usage
24
+
25
+ TBD
26
+
27
+
28
+ ## Configuration
29
+
30
+ TBD
31
+
32
+
33
+ ## Documentation
34
+
35
+ TBD
36
+
37
+
38
+ ## License
39
+
40
+ Soruce Copyright (c) 2019 Andrei Maxim and
41
+ [contributors](https://github.com/andreimaxim/claim/contributors).
42
+ Distributed under the Eclipse Public License. See the file COPYING.
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler/setup'
5
+ require 'claim'
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require 'irb'
15
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'claim/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'claim'
9
+ spec.version = Claim::VERSION
10
+ spec.authors = [ 'Andrei Maxim' ]
11
+ spec.email = [ 'andrei@andreimaxim.ro' ]
12
+
13
+ spec.summary = 'Rack authentication for JWT-based APIs'
14
+ spec.homepage = 'https://github.com/andreimaxim/claim'
15
+
16
+ # Specify which files should be added to the gem when it is released.
17
+ # The `git ls-files -z` loads the files in the RubyGem that have been added
18
+ # into git.
19
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ end
22
+
23
+ spec.bindir = 'exe'
24
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
+ spec.require_paths = [ 'lib' ]
26
+
27
+ spec.add_dependency 'concurrent-ruby', '~> 1.1'
28
+ spec.add_dependency 'dry-monads', '~> 1.2'
29
+
30
+ spec.add_development_dependency 'bundler', '~> 1.17'
31
+ spec.add_development_dependency 'rake', '~> 10.0'
32
+ spec.add_development_dependency 'rspec', '~> 3.0'
33
+ end
@@ -0,0 +1,15 @@
1
+ version: '3'
2
+
3
+ services:
4
+
5
+ app:
6
+ env_file: .env
7
+ command: bin/console
8
+ build:
9
+ context: .
10
+ args:
11
+ BUNDLER_OPTS: '--jobs 4'
12
+ RACK_ENV: 'development'
13
+ volumes:
14
+ # The volume must be identical to the application home in Dockerfile
15
+ - .:/opt/claim
@@ -0,0 +1,6 @@
1
+ version: '3'
2
+
3
+ services:
4
+
5
+ app:
6
+ build: .
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'claim/version'
4
+
5
+ module Claim
6
+ class Error < StandardError; end
7
+ # Your code goes here...
8
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Claim
4
+
5
+ VERSION = '0.0.1'
6
+
7
+ end
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: claim
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andrei Maxim
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-03-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: concurrent-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dry-monads
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.17'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.17'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ description:
84
+ email:
85
+ - andrei@andreimaxim.ro
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - ".rspec"
92
+ - ".rubocop.yml"
93
+ - ".travis.yml"
94
+ - CONTRIBUTING.md
95
+ - COPYING
96
+ - Dockerfile
97
+ - Gemfile
98
+ - NEWS.md
99
+ - README.md
100
+ - Rakefile
101
+ - bin/console
102
+ - bin/setup
103
+ - claim.gemspec
104
+ - docker-compose.override.yml
105
+ - docker-compose.yml
106
+ - lib/claim.rb
107
+ - lib/claim/version.rb
108
+ homepage: https://github.com/andreimaxim/claim
109
+ licenses: []
110
+ metadata: {}
111
+ post_install_message:
112
+ rdoc_options: []
113
+ require_paths:
114
+ - lib
115
+ required_ruby_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ requirements: []
126
+ rubygems_version: 3.0.3
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: Rack authentication for JWT-based APIs
130
+ test_files: []