psenv 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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