psenv 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 591d97b58e03c096568edec93a85a77de2146fa3
4
- data.tar.gz: 6d1d3a96f477c5bc49e367a924bc1f30b78d4338
3
+ metadata.gz: 4a3cb8ac68113ab45fbc68fe0edf735faeb004a1
4
+ data.tar.gz: 7bd20027deea01387d1d88c109f4ef2c43823eb6
5
5
  SHA512:
6
- metadata.gz: a66dd9102879c4dc24b514d6699f3497bbf629d4126f5641540df7ab7abba43be6ee685e6b7abfe9cfad70b33a50204d87d4b2c69b25c0dc3b617778a2d657ae
7
- data.tar.gz: f6f737d73f2e0ee158e06e6db28eeb7e72b0d8df04642d21fc6ccc5f155f3a47bacc6eb03a761ba6a4a04867a6800b54d51d1cc77cc9c04d7913da4a1298e228
6
+ metadata.gz: 337abcaf74c79fb3fb63932e9fe3c2a2db4448cfc4b6b7a023ba2d5624c916c8a69279144b057952683f1db600392ec8d6393295d2494aa4988f203431da88d8
7
+ data.tar.gz: 7f495cefa99eb41a9f0d4e544a15bbfadf379e3b637672adba1964b5311925e1b2ced54cc23694fce08bd194b282db370b565cc72426456f49e09ed5c759a250
@@ -0,0 +1,653 @@
1
+ AllCops:
2
+ Exclude:
3
+ - db/schema.rb
4
+
5
+ Metrics/LineLength:
6
+ Description: 'Limit lines to 80 characters.'
7
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
8
+ Max: 80
9
+ Exclude:
10
+ - ./*.gemspec
11
+
12
+
13
+ Naming/AccessorMethodName:
14
+ Description: Check the naming of accessor methods for get_/set_.
15
+ Enabled: false
16
+
17
+ Style/Alias:
18
+ Description: 'Use alias_method instead of alias.'
19
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
20
+ Enabled: false
21
+
22
+ Style/ArrayJoin:
23
+ Description: 'Use Array#join instead of Array#*.'
24
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
25
+ Enabled: false
26
+
27
+ Style/AsciiComments:
28
+ Description: 'Use only ascii symbols in comments.'
29
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
30
+ Enabled: false
31
+
32
+ Naming/AsciiIdentifiers:
33
+ Description: 'Use only ascii symbols in identifiers.'
34
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
35
+ Enabled: false
36
+
37
+ Style/Attr:
38
+ Description: 'Checks for uses of Module#attr.'
39
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
40
+ Enabled: false
41
+
42
+ Metrics/BlockNesting:
43
+ Description: 'Avoid excessive block nesting'
44
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
45
+ Enabled: false
46
+
47
+ Style/CaseEquality:
48
+ Description: 'Avoid explicit use of the case equality operator(===).'
49
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
50
+ Enabled: false
51
+
52
+ Style/CharacterLiteral:
53
+ Description: 'Checks for uses of character literals.'
54
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
55
+ Enabled: false
56
+
57
+ Style/ClassAndModuleChildren:
58
+ Description: 'Checks style of children classes and modules.'
59
+ Enabled: true
60
+ EnforcedStyle: nested
61
+
62
+ Metrics/ClassLength:
63
+ Description: 'Avoid classes longer than 100 lines of code.'
64
+ Enabled: false
65
+
66
+ Metrics/ModuleLength:
67
+ Description: 'Avoid modules longer than 100 lines of code.'
68
+ Enabled: false
69
+
70
+ Style/ClassVars:
71
+ Description: 'Avoid the use of class variables.'
72
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
73
+ Enabled: false
74
+
75
+ Style/CollectionMethods:
76
+ Enabled: true
77
+ PreferredMethods:
78
+ find: detect
79
+ inject: reduce
80
+ collect: map
81
+ find_all: select
82
+
83
+ Style/ColonMethodCall:
84
+ Description: 'Do not use :: for method call.'
85
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
86
+ Enabled: false
87
+
88
+ Style/CommentAnnotation:
89
+ Description: >-
90
+ Checks formatting of special comments
91
+ (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
92
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
93
+ Enabled: false
94
+
95
+ Metrics/AbcSize:
96
+ Description: >-
97
+ A calculated magnitude based on number of assignments,
98
+ branches, and conditions.
99
+ Enabled: false
100
+
101
+ Metrics/BlockLength:
102
+ CountComments: true # count full line comments?
103
+ Max: 25
104
+ ExcludedMethods: []
105
+ Exclude:
106
+ - "spec/**/*"
107
+
108
+ Metrics/CyclomaticComplexity:
109
+ Description: >-
110
+ A complexity metric that is strongly correlated to the number
111
+ of test cases needed to validate a method.
112
+ Enabled: false
113
+
114
+ Rails/Delegate:
115
+ Description: 'Prefer delegate method for delegations.'
116
+ Enabled: false
117
+
118
+ Style/PreferredHashMethods:
119
+ Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
120
+ StyleGuide: '#hash-key'
121
+ Enabled: false
122
+
123
+ Style/Documentation:
124
+ Description: 'Document classes and non-namespace modules.'
125
+ Enabled: false
126
+
127
+ Style/DoubleNegation:
128
+ Description: 'Checks for uses of double negation (!!).'
129
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
130
+ Enabled: false
131
+
132
+ Style/EachWithObject:
133
+ Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
134
+ Enabled: false
135
+
136
+ Style/EmptyLiteral:
137
+ Description: 'Prefer literals to Array.new/Hash.new/String.new.'
138
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
139
+ Enabled: false
140
+
141
+ # Checks whether the source file has a utf-8 encoding comment or not
142
+ # AutoCorrectEncodingComment must match the regex
143
+ # /#.*coding\s?[:=]\s?(?:UTF|utf)-8/
144
+ Style/Encoding:
145
+ Enabled: false
146
+
147
+ Style/EvenOdd:
148
+ Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
149
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
150
+ Enabled: false
151
+
152
+ Naming/FileName:
153
+ Description: 'Use snake_case for source file names.'
154
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
155
+ Enabled: false
156
+
157
+ Style/FrozenStringLiteralComment:
158
+ Description: >-
159
+ Add the frozen_string_literal comment to the top of files
160
+ to help transition from Ruby 2.3.0 to Ruby 3.0.
161
+ Enabled: false
162
+
163
+ Style/FlipFlop:
164
+ Description: 'Checks for flip flops'
165
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
166
+ Enabled: false
167
+
168
+ Style/FormatString:
169
+ Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
170
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
171
+ Enabled: false
172
+
173
+ Style/GlobalVars:
174
+ Description: 'Do not introduce global variables.'
175
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
176
+ Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
177
+ Enabled: false
178
+
179
+ Style/GuardClause:
180
+ Description: 'Check for conditionals that can be replaced with guard clauses'
181
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
182
+ Enabled: false
183
+
184
+ Style/IfUnlessModifier:
185
+ Description: >-
186
+ Favor modifier if/unless usage when you have a
187
+ single-line body.
188
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
189
+ Enabled: false
190
+
191
+ Style/IfWithSemicolon:
192
+ Description: 'Do not use if x; .... Use the ternary operator instead.'
193
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
194
+ Enabled: false
195
+
196
+ Style/InlineComment:
197
+ Description: 'Avoid inline comments.'
198
+ Enabled: false
199
+
200
+ Style/Lambda:
201
+ Description: 'Use the new lambda literal syntax for single-line blocks.'
202
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
203
+ Enabled: false
204
+
205
+ Style/LambdaCall:
206
+ Description: 'Use lambda.call(...) instead of lambda.(...).'
207
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
208
+ Enabled: false
209
+
210
+ Style/LineEndConcatenation:
211
+ Description: >-
212
+ Use \ instead of + or << to concatenate two string literals at
213
+ line end.
214
+ Enabled: false
215
+
216
+ Metrics/MethodLength:
217
+ Description: 'Avoid methods longer than 10 lines of code.'
218
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
219
+ Enabled: false
220
+
221
+ Style/ModuleFunction:
222
+ Description: 'Checks for usage of `extend self` in modules.'
223
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
224
+ Enabled: false
225
+
226
+ Style/MultilineBlockChain:
227
+ Description: 'Avoid multi-line chains of blocks.'
228
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
229
+ Enabled: false
230
+
231
+ Style/NegatedIf:
232
+ Description: >-
233
+ Favor unless over if for negative conditions
234
+ (or control flow or).
235
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
236
+ Enabled: false
237
+
238
+ Style/NegatedWhile:
239
+ Description: 'Favor until over while for negative conditions.'
240
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
241
+ Enabled: false
242
+
243
+ Style/Next:
244
+ Description: 'Use `next` to skip iteration instead of a condition at the end.'
245
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
246
+ Enabled: false
247
+
248
+ Style/NilComparison:
249
+ Description: 'Prefer x.nil? to x == nil.'
250
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
251
+ Enabled: false
252
+
253
+ Style/Not:
254
+ Description: 'Use ! instead of not.'
255
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
256
+ Enabled: false
257
+
258
+ Style/NumericLiterals:
259
+ Description: >-
260
+ Add underscores to large numeric literals to improve their
261
+ readability.
262
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
263
+ Enabled: false
264
+
265
+ Style/OneLineConditional:
266
+ Description: >-
267
+ Favor the ternary operator(?:) over
268
+ if/then/else/end constructs.
269
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
270
+ Enabled: false
271
+
272
+ Naming/BinaryOperatorParameterName:
273
+ Description: 'When defining binary operators, name the argument other.'
274
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
275
+ Enabled: false
276
+
277
+ Metrics/ParameterLists:
278
+ Description: 'Avoid parameter lists longer than three or four parameters.'
279
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
280
+ Enabled: false
281
+
282
+ Style/PercentLiteralDelimiters:
283
+ Description: 'Use `%`-literal delimiters consistently'
284
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
285
+ Enabled: false
286
+
287
+ Style/PerlBackrefs:
288
+ Description: 'Avoid Perl-style regex back references.'
289
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
290
+ Enabled: false
291
+
292
+ Naming/PredicateName:
293
+ Description: 'Check the names of predicate methods.'
294
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
295
+ NamePrefixBlacklist:
296
+ - is_
297
+ Exclude:
298
+ - spec/**/*
299
+
300
+ Style/Proc:
301
+ Description: 'Use proc instead of Proc.new.'
302
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
303
+ Enabled: false
304
+
305
+ Style/RaiseArgs:
306
+ Description: 'Checks the arguments passed to raise/fail.'
307
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
308
+ Enabled: false
309
+
310
+ Style/RegexpLiteral:
311
+ Description: 'Use / or %r around regular expressions.'
312
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
313
+ Enabled: false
314
+
315
+ Style/SelfAssignment:
316
+ Description: >-
317
+ Checks for places where self-assignment shorthand should have
318
+ been used.
319
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
320
+ Enabled: false
321
+
322
+ Style/SingleLineBlockParams:
323
+ Description: 'Enforces the names of some block params.'
324
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
325
+ Enabled: false
326
+
327
+ Style/SingleLineMethods:
328
+ Description: 'Avoid single-line methods.'
329
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
330
+ Enabled: false
331
+
332
+ Style/SignalException:
333
+ Description: 'Checks for proper usage of fail and raise.'
334
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
335
+ Enabled: false
336
+
337
+ Style/SpecialGlobalVars:
338
+ Description: 'Avoid Perl-style global variables.'
339
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
340
+ Enabled: false
341
+
342
+ Style/StringLiterals:
343
+ Description: 'Checks if uses of quotes match the configured preference.'
344
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
345
+ EnforcedStyle: double_quotes
346
+ Enabled: true
347
+
348
+ Style/TrailingCommaInArguments:
349
+ Description: 'Checks for trailing comma in argument lists.'
350
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
351
+ EnforcedStyleForMultiline: comma
352
+ SupportedStylesForMultiline:
353
+ - comma
354
+ - consistent_comma
355
+ - no_comma
356
+ Enabled: true
357
+
358
+ Style/TrailingCommaInArrayLiteral:
359
+ Description: 'Checks for trailing comma in array literals.'
360
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
361
+ EnforcedStyleForMultiline: comma
362
+ SupportedStylesForMultiline:
363
+ - comma
364
+ - consistent_comma
365
+ - no_comma
366
+ Enabled: true
367
+
368
+ Style/TrailingCommaInHashLiteral:
369
+ Description: 'Checks for trailing comma in hash literals.'
370
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
371
+ EnforcedStyleForMultiline: comma
372
+ SupportedStylesForMultiline:
373
+ - comma
374
+ - consistent_comma
375
+ - no_comma
376
+ Enabled: true
377
+
378
+ Style/TrivialAccessors:
379
+ Description: 'Prefer attr_* methods to trivial readers/writers.'
380
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
381
+ Enabled: false
382
+
383
+ Style/VariableInterpolation:
384
+ Description: >-
385
+ Don't interpolate global, instance and class variables
386
+ directly in strings.
387
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
388
+ Enabled: false
389
+
390
+ Style/WhenThen:
391
+ Description: 'Use when x then ... for one-line cases.'
392
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
393
+ Enabled: false
394
+
395
+ Style/WhileUntilModifier:
396
+ Description: >-
397
+ Favor modifier while/until usage when you have a
398
+ single-line body.
399
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
400
+ Enabled: false
401
+
402
+ Style/WordArray:
403
+ Description: 'Use %w or %W for arrays of words.'
404
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
405
+ Enabled: false
406
+
407
+ # Layout
408
+
409
+ Layout/AlignParameters:
410
+ Description: 'Here we check if the parameters on a multi-line method call or definition are aligned.'
411
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
412
+ Enabled: false
413
+
414
+ Layout/ConditionPosition:
415
+ Description: >-
416
+ Checks for condition placed in a confusing position relative to
417
+ the keyword.
418
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
419
+ Enabled: false
420
+
421
+ Layout/DotPosition:
422
+ Description: 'Checks the position of the dot in multi-line method calls.'
423
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
424
+ EnforcedStyle: trailing
425
+
426
+ Layout/ExtraSpacing:
427
+ Description: 'Do not use unnecessary spacing.'
428
+ Enabled: true
429
+
430
+ Layout/MultilineOperationIndentation:
431
+ Description: >-
432
+ Checks indentation of binary operations that span more than
433
+ one line.
434
+ Enabled: true
435
+ EnforcedStyle: indented
436
+
437
+ Layout/MultilineMethodCallIndentation:
438
+ Description: >-
439
+ Checks indentation of method calls with the dot operator
440
+ that span more than one line.
441
+ Enabled: true
442
+ EnforcedStyle: indented
443
+
444
+ Layout/InitialIndentation:
445
+ Description: >-
446
+ Checks the indentation of the first non-blank non-comment line in a file.
447
+ Enabled: false
448
+
449
+ # Lint
450
+
451
+ Lint/AmbiguousOperator:
452
+ Description: >-
453
+ Checks for ambiguous operators in the first argument of a
454
+ method invocation without parentheses.
455
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
456
+ Enabled: false
457
+
458
+ Lint/AmbiguousRegexpLiteral:
459
+ Description: >-
460
+ Checks for ambiguous regexp literals in the first argument of
461
+ a method invocation without parenthesis.
462
+ Enabled: false
463
+
464
+ Lint/AssignmentInCondition:
465
+ Description: "Don't use assignment in conditions."
466
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
467
+ Enabled: false
468
+
469
+ Lint/CircularArgumentReference:
470
+ Description: "Don't refer to the keyword argument in the default value."
471
+ Enabled: false
472
+
473
+ Lint/DeprecatedClassMethods:
474
+ Description: 'Check for deprecated class method calls.'
475
+ Enabled: false
476
+
477
+ Lint/DuplicatedKey:
478
+ Description: 'Check for duplicate keys in hash literals.'
479
+ Enabled: false
480
+
481
+ Lint/EachWithObjectArgument:
482
+ Description: 'Check for immutable argument given to each_with_object.'
483
+ Enabled: false
484
+
485
+ Lint/ElseLayout:
486
+ Description: 'Check for odd code arrangement in an else block.'
487
+ Enabled: false
488
+
489
+ Lint/FormatParameterMismatch:
490
+ Description: 'The number of parameters to format/sprint must match the fields.'
491
+ Enabled: false
492
+
493
+ Lint/HandleExceptions:
494
+ Description: "Don't suppress exception."
495
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
496
+ Enabled: false
497
+
498
+ Lint/LiteralAsCondition:
499
+ Description: 'Checks of literals used in conditions.'
500
+ Enabled: false
501
+
502
+ Lint/LiteralInInterpolation:
503
+ Description: 'Checks for literals used in interpolation.'
504
+ Enabled: false
505
+
506
+ Lint/Loop:
507
+ Description: >-
508
+ Use Kernel#loop with break rather than begin/end/until or
509
+ begin/end/while for post-loop tests.
510
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
511
+ Enabled: false
512
+
513
+ Lint/NestedMethodDefinition:
514
+ Description: 'Do not use nested method definitions.'
515
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
516
+ Enabled: false
517
+
518
+ Lint/NonLocalExitFromIterator:
519
+ Description: 'Do not use return in iterator to cause non-local exit.'
520
+ Enabled: false
521
+
522
+ Lint/ParenthesesAsGroupedExpression:
523
+ Description: >-
524
+ Checks for method calls with a space before the opening
525
+ parenthesis.
526
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
527
+ Enabled: false
528
+
529
+ Lint/RequireParentheses:
530
+ Description: >-
531
+ Use parentheses in the method call to avoid confusion
532
+ about precedence.
533
+ Enabled: false
534
+
535
+ Lint/UnderscorePrefixedVariableName:
536
+ Description: 'Do not use prefix `_` for a variable that is used.'
537
+ Enabled: false
538
+
539
+ Lint/UnneededCopDisableDirective:
540
+ Description: >-
541
+ Checks for rubocop:disable comments that can be removed.
542
+ Note: this cop is not disabled when disabling all cops.
543
+ It must be explicitly disabled.
544
+ Enabled: false
545
+
546
+ Lint/Void:
547
+ Description: 'Possible use of operator/literal/variable in void context.'
548
+ Enabled: false
549
+
550
+ # Performance
551
+
552
+ Performance/CaseWhenSplat:
553
+ Description: >-
554
+ Place `when` conditions that use splat at the end
555
+ of the list of `when` branches.
556
+ Enabled: false
557
+
558
+ Performance/Count:
559
+ Description: >-
560
+ Use `count` instead of `select...size`, `reject...size`,
561
+ `select...count`, `reject...count`, `select...length`,
562
+ and `reject...length`.
563
+ Enabled: false
564
+
565
+ Performance/Detect:
566
+ Description: >-
567
+ Use `detect` instead of `select.first`, `find_all.first`,
568
+ `select.last`, and `find_all.last`.
569
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
570
+ Enabled: false
571
+
572
+ Performance/FlatMap:
573
+ Description: >-
574
+ Use `Enumerable#flat_map`
575
+ instead of `Enumerable#map...Array#flatten(1)`
576
+ or `Enumberable#collect..Array#flatten(1)`
577
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
578
+ Enabled: false
579
+
580
+ Performance/ReverseEach:
581
+ Description: 'Use `reverse_each` instead of `reverse.each`.'
582
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
583
+ Enabled: false
584
+
585
+ Performance/Sample:
586
+ Description: >-
587
+ Use `sample` instead of `shuffle.first`,
588
+ `shuffle.last`, and `shuffle[Fixnum]`.
589
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
590
+ Enabled: false
591
+
592
+ Performance/Size:
593
+ Description: >-
594
+ Use `size` instead of `count` for counting
595
+ the number of elements in `Array` and `Hash`.
596
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
597
+ Enabled: false
598
+
599
+ Performance/StringReplacement:
600
+ Description: >-
601
+ Use `tr` instead of `gsub` when you are replacing the same
602
+ number of characters. Use `delete` instead of `gsub` when
603
+ you are deleting characters.
604
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
605
+ Enabled: false
606
+
607
+ # Rails
608
+
609
+ Rails/ActionFilter:
610
+ Description: 'Enforces consistent use of action filter methods.'
611
+ Enabled: false
612
+
613
+ Rails/Date:
614
+ Description: >-
615
+ Checks the correct usage of date aware methods,
616
+ such as Date.today, Date.current etc.
617
+ Enabled: false
618
+
619
+ Rails/FindBy:
620
+ Description: 'Prefer find_by over where.first.'
621
+ Enabled: false
622
+
623
+ Rails/FindEach:
624
+ Description: 'Prefer all.find_each over all.find.'
625
+ Enabled: false
626
+
627
+ Rails/HasAndBelongsToMany:
628
+ Description: 'Prefer has_many :through to has_and_belongs_to_many.'
629
+ Enabled: false
630
+
631
+ Rails/Output:
632
+ Description: 'Checks for calls to puts, print, etc.'
633
+ Enabled: false
634
+
635
+ Rails/ReadWriteAttribute:
636
+ Description: >-
637
+ Checks for read_attribute(:attr) and
638
+ write_attribute(:attr, val).
639
+ Enabled: false
640
+
641
+ Rails/ScopeArgs:
642
+ Description: 'Checks the arguments of ActiveRecord scopes.'
643
+ Enabled: false
644
+
645
+ Rails/TimeZone:
646
+ Description: 'Checks the correct usage of time zone aware methods.'
647
+ StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
648
+ Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
649
+ Enabled: false
650
+
651
+ Rails/Validation:
652
+ Description: 'Use validates :attribute, hash of validations.'
653
+ Enabled: false
data/Gemfile CHANGED
@@ -1,8 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in parameter_store_loader.gemspec
6
6
  gemspec name: "psenv"
7
7
  gemspec name: "psenv-rails"
8
-
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- psenv (0.0.1)
4
+ psenv (0.1.0)
5
5
  aws-sdk-ssm (~> 1)
6
- psenv-rails (0.0.1)
7
- psenv (= 0.0.1)
6
+ psenv-rails (0.1.0)
7
+ psenv (= 0.1.0)
8
8
  railties (>= 3.2, < 5.2)
9
9
 
10
10
  GEM
@@ -28,7 +28,10 @@ GEM
28
28
  i18n (~> 0.7)
29
29
  minitest (~> 5.1)
30
30
  tzinfo (~> 1.1)
31
- aws-partitions (1.71.0)
31
+ addressable (2.5.2)
32
+ public_suffix (>= 2.0.2, < 4.0)
33
+ ast (2.4.0)
34
+ aws-partitions (1.72.0)
32
35
  aws-sdk-core (3.17.1)
33
36
  aws-partitions (~> 1.0)
34
37
  aws-sigv4 (~> 1.0)
@@ -39,9 +42,12 @@ GEM
39
42
  aws-sigv4 (1.0.2)
40
43
  builder (3.2.3)
41
44
  concurrent-ruby (1.0.5)
45
+ crack (0.4.3)
46
+ safe_yaml (~> 1.0.0)
42
47
  crass (1.0.3)
43
48
  diff-lcs (1.3)
44
49
  erubi (1.7.1)
50
+ hashdiff (0.3.7)
45
51
  i18n (0.9.5)
46
52
  concurrent-ruby (~> 1.0)
47
53
  jmespath (1.3.1)
@@ -53,6 +59,11 @@ GEM
53
59
  minitest (5.11.3)
54
60
  nokogiri (1.8.2)
55
61
  mini_portile2 (~> 2.3.0)
62
+ parallel (1.12.1)
63
+ parser (2.5.0.5)
64
+ ast (~> 2.4.0)
65
+ powerpack (0.1.1)
66
+ public_suffix (3.0.2)
56
67
  rack (2.0.4)
57
68
  rack-test (0.8.3)
58
69
  rack (>= 1.0, < 3)
@@ -67,6 +78,7 @@ GEM
67
78
  method_source
68
79
  rake (>= 0.8.7)
69
80
  thor (>= 0.18.1, < 2.0)
81
+ rainbow (3.0.0)
70
82
  rake (10.5.0)
71
83
  rspec (3.7.0)
72
84
  rspec-core (~> 3.7.0)
@@ -81,10 +93,24 @@ GEM
81
93
  diff-lcs (>= 1.2.0, < 2.0)
82
94
  rspec-support (~> 3.7.0)
83
95
  rspec-support (3.7.1)
96
+ rubocop (0.54.0)
97
+ parallel (~> 1.10)
98
+ parser (>= 2.5)
99
+ powerpack (~> 0.1)
100
+ rainbow (>= 2.2.2, < 4.0)
101
+ ruby-progressbar (~> 1.7)
102
+ unicode-display_width (~> 1.0, >= 1.0.1)
103
+ ruby-progressbar (1.9.0)
104
+ safe_yaml (1.0.4)
84
105
  thor (0.20.0)
85
106
  thread_safe (0.3.6)
86
107
  tzinfo (1.2.5)
87
108
  thread_safe (~> 0.1)
109
+ unicode-display_width (1.3.0)
110
+ webmock (3.3.0)
111
+ addressable (>= 2.3.6)
112
+ crack (>= 0.3.2)
113
+ hashdiff
88
114
 
89
115
  PLATFORMS
90
116
  ruby
@@ -95,6 +121,8 @@ DEPENDENCIES
95
121
  psenv-rails!
96
122
  rake (~> 10.0)
97
123
  rspec (~> 3.0)
124
+ rubocop (= 0.54)
125
+ webmock (~> 3.3)
98
126
 
99
127
  BUNDLED WITH
100
128
  1.16.1
data/Rakefile CHANGED
@@ -7,9 +7,9 @@ end
7
7
 
8
8
  namespace "psenv-rails" do
9
9
  class ParameterStoreEnvRailsGemHelper < Bundler::GemHelper
10
- def guard_already_tagged; end # noop
10
+ def guard_already_tagged; end
11
11
 
12
- def tag_version; end # noop
12
+ def tag_version; end
13
13
  end
14
14
 
15
15
  ParameterStoreEnvRailsGemHelper.install_tasks name: "psenv-rails"
@@ -21,4 +21,4 @@ task release: ["psenv:release", "psenv-rails:release"]
21
21
 
22
22
  RSpec::Core::RakeTask.new(:spec)
23
23
 
24
- task :default => :spec
24
+ task default: :spec
@@ -6,15 +6,15 @@ if defined?(Rake.application)
6
6
  end
7
7
 
8
8
  module Psenv
9
- class Railtie < Rails::Railtie
10
- def load
11
- Psenv.load
12
- end
9
+ class Railtie < Rails::Railtie
10
+ def load
11
+ Psenv.load
12
+ end
13
13
 
14
- def self.load
15
- instance.load
16
- end
14
+ def self.load
15
+ instance.load
16
+ end
17
17
 
18
18
  config.before_configuration { load }
19
- end
19
+ end
20
20
  end
@@ -1,3 +1,5 @@
1
+ require "psenv/environment"
2
+ require "psenv/retriever"
1
3
  require "psenv/version"
2
4
 
3
5
  require "aws-sdk-ssm"
@@ -5,19 +7,17 @@ require "aws-sdk-ssm"
5
7
  module Psenv
6
8
  module_function
7
9
 
8
- def load
9
- if ENV["PARAMETER_STORE_PATH"] != nil
10
- ssm = Aws::SSM::Client.new
10
+ def load(*paths)
11
+ paths.unshift(ENV["PARAMETER_STORE_PATH"]) if ENV["PARAMETER_STORE_PATH"]
12
+ Environment.create(*paths.map { |path| retrieve_variables(path) }).apply
13
+ end
14
+
15
+ def overload(*paths)
16
+ paths.unshift(ENV["PARAMETER_STORE_PATH"]) if ENV["PARAMETER_STORE_PATH"]
17
+ Environment.create(*paths.map { |path| retrieve_variables(path) }).apply!
18
+ end
11
19
 
12
- ssm.
13
- get_parameters_by_path(
14
- path: ENV["PARAMETER_STORE_PATH"],
15
- with_decryption: true,
16
- ).
17
- parameters.
18
- each do |param|
19
- ENV.store(param.name.split("/").last, param.value)
20
- end
21
- end
20
+ def retrieve_variables(path)
21
+ Retriever.new(path).call
22
22
  end
23
23
  end
@@ -0,0 +1,15 @@
1
+ module Psenv
2
+ class Environment < Hash
3
+ def apply
4
+ each { |k, v| ENV.store(k, v) unless ENV.has_key?(k) }
5
+ end
6
+
7
+ def apply!
8
+ each { |k, v| ENV.store(k, v) }
9
+ end
10
+
11
+ def self.create(*variables)
12
+ Environment[variables.reverse.reduce({}, :merge)]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,48 @@
1
+ require "aws-sdk-ssm"
2
+
3
+ module Psenv
4
+ class RetrieveError < StandardError; end
5
+
6
+ class Parameter
7
+ attr_reader :name, :value
8
+
9
+ def initialize(parameter)
10
+ @name = parameter[:name].split("/").last
11
+ @value = parameter[:value]
12
+ @type = parameter[:type]
13
+ @version = parameter[:version]
14
+ end
15
+ end
16
+
17
+ class Retriever
18
+ def initialize(path)
19
+ @path = path
20
+ end
21
+
22
+ def call
23
+ Hash[
24
+ parameters.
25
+ map { |parameter| Parameter.new(parameter) }.
26
+ map { |parameter| [parameter.name, parameter.value] }
27
+ ]
28
+ end
29
+
30
+ def self.call(path)
31
+ new(path).call
32
+ end
33
+
34
+ private
35
+
36
+ def ssm
37
+ @ssm ||= Aws::SSM::Client.new
38
+ end
39
+
40
+ def parameters
41
+ ssm.
42
+ get_parameters_by_path(path: @path, with_decryption: true).
43
+ parameters
44
+ rescue StandardError => error
45
+ raise RetrieveError, error
46
+ end
47
+ end
48
+ end
@@ -1,3 +1,3 @@
1
1
  module Psenv
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0".freeze
3
3
  end
@@ -1,5 +1,5 @@
1
1
 
2
- lib = File.expand_path("../lib", __FILE__)
2
+ lib = File.expand_path("lib", __dir__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require "psenv/version"
5
5
 
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Andrew Tomaka"]
10
10
  spec.email = ["atomaka@gmail.com"]
11
11
 
12
- spec.summary = %q{Load AWS SSM Parameter Store values into your Rails environment.}
12
+ spec.summary = "Load AWS SSM Parameter Store values into your Rails environment."
13
13
  spec.homepage = "https://github.com/atomaka/psenv"
14
14
  spec.license = "MIT"
15
15
 
@@ -1,5 +1,5 @@
1
1
 
2
- lib = File.expand_path("../lib", __FILE__)
2
+ lib = File.expand_path("lib", __dir__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require "psenv/version"
5
5
 
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Andrew Tomaka"]
10
10
  spec.email = ["atomaka@gmail.com"]
11
11
 
12
- spec.summary = %q{Load AWS SSM Parameter Store values into your environment.}
12
+ spec.summary = "Load AWS SSM Parameter Store values into your environment."
13
13
  spec.homepage = "https://github.com/atomaka/psenv"
14
14
  spec.license = "MIT"
15
15
 
@@ -23,6 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "bundler", "~> 1.16"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
25
  spec.add_development_dependency "rspec", "~> 3.0"
26
+ spec.add_development_dependency "rubocop", "0.54"
27
+ spec.add_development_dependency "webmock", "~> 3.3"
26
28
 
27
29
  spec.add_dependency "aws-sdk-ssm", "~> 1"
28
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: psenv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Tomaka
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-22 00:00:00.000000000 Z
11
+ date: 2018-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: '0.54'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: '0.54'
69
+ - !ruby/object:Gem::Dependency
70
+ name: webmock
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.3'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: aws-sdk-ssm
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +103,7 @@ extra_rdoc_files: []
75
103
  files:
76
104
  - ".gitignore"
77
105
  - ".rspec"
106
+ - ".rubocop.yml"
78
107
  - ".travis.yml"
79
108
  - Gemfile
80
109
  - Gemfile.lock
@@ -85,6 +114,8 @@ files:
85
114
  - bin/setup
86
115
  - lib/psenv-rails.rb
87
116
  - lib/psenv.rb
117
+ - lib/psenv/environment.rb
118
+ - lib/psenv/retriever.rb
88
119
  - lib/psenv/version.rb
89
120
  - psenv-rails.gemspec
90
121
  - psenv.gemspec