diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 97f6725..389d3b1 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -15,7 +15,7 @@ jobs: run: | gem install bundler bundle install --jobs 4 --retry 3 - bundle exec rubocop + bundle exec standardrb test: runs-on: ubuntu-latest diff --git a/.rubocop.yml b/.rubocop.yml deleted file mode 100644 index 8dc1533..0000000 --- a/.rubocop.yml +++ /dev/null @@ -1,655 +0,0 @@ -AllCops: - Exclude: - - db/schema.rb - - vendor/**/* - - spec/rails/**/* - -Metrics/LineLength: - Description: 'Limit lines to 80 characters.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits' - Max: 80 - Exclude: - - ./*.gemspec - - -Naming/AccessorMethodName: - Description: Check the naming of accessor methods for get_/set_. - Enabled: false - -Style/Alias: - Description: 'Use alias_method instead of alias.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method' - Enabled: false - -Style/ArrayJoin: - Description: 'Use Array#join instead of Array#*.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join' - Enabled: false - -Style/AsciiComments: - Description: 'Use only ascii symbols in comments.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments' - Enabled: false - -Naming/AsciiIdentifiers: - Description: 'Use only ascii symbols in identifiers.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers' - Enabled: false - -Style/Attr: - Description: 'Checks for uses of Module#attr.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr' - Enabled: false - -Metrics/BlockNesting: - Description: 'Avoid excessive block nesting' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count' - Enabled: false - -Style/CaseEquality: - Description: 'Avoid explicit use of the case equality operator(===).' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality' - Enabled: false - -Style/CharacterLiteral: - Description: 'Checks for uses of character literals.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals' - Enabled: false - -Style/ClassAndModuleChildren: - Description: 'Checks style of children classes and modules.' - Enabled: true - EnforcedStyle: nested - -Metrics/ClassLength: - Description: 'Avoid classes longer than 100 lines of code.' - Enabled: false - -Metrics/ModuleLength: - Description: 'Avoid modules longer than 100 lines of code.' - Enabled: false - -Style/ClassVars: - Description: 'Avoid the use of class variables.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars' - Enabled: false - -Style/CollectionMethods: - Enabled: true - PreferredMethods: - find: detect - inject: reduce - collect: map - find_all: select - -Style/ColonMethodCall: - Description: 'Do not use :: for method call.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons' - Enabled: false - -Style/CommentAnnotation: - Description: >- - Checks formatting of special comments - (TODO, FIXME, OPTIMIZE, HACK, REVIEW). - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords' - Enabled: false - -Metrics/AbcSize: - Description: >- - A calculated magnitude based on number of assignments, - branches, and conditions. - Enabled: false - -Metrics/BlockLength: - CountComments: true # count full line comments? - Max: 25 - ExcludedMethods: [] - Exclude: - - "spec/**/*" - -Metrics/CyclomaticComplexity: - Description: >- - A complexity metric that is strongly correlated to the number - of test cases needed to validate a method. - Enabled: false - -Rails/Delegate: - Description: 'Prefer delegate method for delegations.' - Enabled: false - -Style/PreferredHashMethods: - Description: 'Checks use of `has_key?` and `has_value?` Hash methods.' - StyleGuide: '#hash-key' - Enabled: false - -Style/Documentation: - Description: 'Document classes and non-namespace modules.' - Enabled: false - -Style/DoubleNegation: - Description: 'Checks for uses of double negation (!!).' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang' - Enabled: false - -Style/EachWithObject: - Description: 'Prefer `each_with_object` over `inject` or `reduce`.' - Enabled: false - -Style/EmptyLiteral: - Description: 'Prefer literals to Array.new/Hash.new/String.new.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash' - Enabled: false - -# Checks whether the source file has a utf-8 encoding comment or not -# AutoCorrectEncodingComment must match the regex -# /#.*coding\s?[:=]\s?(?:UTF|utf)-8/ -Style/Encoding: - Enabled: false - -Style/EvenOdd: - Description: 'Favor the use of Fixnum#even? && Fixnum#odd?' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods' - Enabled: false - -Naming/FileName: - Description: 'Use snake_case for source file names.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files' - Enabled: false - -Style/FrozenStringLiteralComment: - Description: >- - Add the frozen_string_literal comment to the top of files - to help transition from Ruby 2.3.0 to Ruby 3.0. - Enabled: false - -Style/FlipFlop: - Description: 'Checks for flip flops' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops' - Enabled: false - -Style/FormatString: - Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf' - Enabled: false - -Style/GlobalVars: - Description: 'Do not introduce global variables.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars' - Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html' - Enabled: false - -Style/GuardClause: - Description: 'Check for conditionals that can be replaced with guard clauses' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals' - Enabled: false - -Style/IfUnlessModifier: - Description: >- - Favor modifier if/unless usage when you have a - single-line body. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier' - Enabled: false - -Style/IfWithSemicolon: - Description: 'Do not use if x; .... Use the ternary operator instead.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs' - Enabled: false - -Style/InlineComment: - Description: 'Avoid inline comments.' - Enabled: false - -Style/Lambda: - Description: 'Use the new lambda literal syntax for single-line blocks.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line' - Enabled: false - -Style/LambdaCall: - Description: 'Use lambda.call(...) instead of lambda.(...).' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call' - Enabled: false - -Style/LineEndConcatenation: - Description: >- - Use \ instead of + or << to concatenate two string literals at - line end. - Enabled: false - -Metrics/MethodLength: - Description: 'Avoid methods longer than 10 lines of code.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods' - Enabled: false - -Style/ModuleFunction: - Description: 'Checks for usage of `extend self` in modules.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function' - Enabled: false - -Style/MultilineBlockChain: - Description: 'Avoid multi-line chains of blocks.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks' - Enabled: false - -Style/NegatedIf: - Description: >- - Favor unless over if for negative conditions - (or control flow or). - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives' - Enabled: false - -Style/NegatedWhile: - Description: 'Favor until over while for negative conditions.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives' - Enabled: false - -Style/Next: - Description: 'Use `next` to skip iteration instead of a condition at the end.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals' - Enabled: false - -Style/NilComparison: - Description: 'Prefer x.nil? to x == nil.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods' - Enabled: false - -Style/Not: - Description: 'Use ! instead of not.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not' - Enabled: false - -Style/NumericLiterals: - Description: >- - Add underscores to large numeric literals to improve their - readability. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics' - Enabled: false - -Style/OneLineConditional: - Description: >- - Favor the ternary operator(?:) over - if/then/else/end constructs. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator' - Enabled: false - -Naming/BinaryOperatorParameterName: - Description: 'When defining binary operators, name the argument other.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg' - Enabled: false - -Metrics/ParameterLists: - Description: 'Avoid parameter lists longer than three or four parameters.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params' - Enabled: false - -Style/PercentLiteralDelimiters: - Description: 'Use `%`-literal delimiters consistently' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces' - Enabled: false - -Style/PerlBackrefs: - Description: 'Avoid Perl-style regex back references.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers' - Enabled: false - -Naming/PredicateName: - Description: 'Check the names of predicate methods.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark' - NamePrefixBlacklist: - - is_ - Exclude: - - spec/**/* - -Style/Proc: - Description: 'Use proc instead of Proc.new.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc' - Enabled: false - -Style/RaiseArgs: - Description: 'Checks the arguments passed to raise/fail.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages' - Enabled: false - -Style/RegexpLiteral: - Description: 'Use / or %r around regular expressions.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r' - Enabled: false - -Style/SelfAssignment: - Description: >- - Checks for places where self-assignment shorthand should have - been used. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment' - Enabled: false - -Style/SingleLineBlockParams: - Description: 'Enforces the names of some block params.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks' - Enabled: false - -Style/SingleLineMethods: - Description: 'Avoid single-line methods.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods' - Enabled: false - -Style/SignalException: - Description: 'Checks for proper usage of fail and raise.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method' - Enabled: false - -Style/SpecialGlobalVars: - Description: 'Avoid Perl-style global variables.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms' - Enabled: false - -Style/StringLiterals: - Description: 'Checks if uses of quotes match the configured preference.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals' - EnforcedStyle: double_quotes - Enabled: true - -Style/TrailingCommaInArguments: - Description: 'Checks for trailing comma in argument lists.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas' - EnforcedStyleForMultiline: comma - SupportedStylesForMultiline: - - comma - - consistent_comma - - no_comma - Enabled: true - -Style/TrailingCommaInArrayLiteral: - Description: 'Checks for trailing comma in array literals.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas' - EnforcedStyleForMultiline: comma - SupportedStylesForMultiline: - - comma - - consistent_comma - - no_comma - Enabled: true - -Style/TrailingCommaInHashLiteral: - Description: 'Checks for trailing comma in hash literals.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas' - EnforcedStyleForMultiline: comma - SupportedStylesForMultiline: - - comma - - consistent_comma - - no_comma - Enabled: true - -Style/TrivialAccessors: - Description: 'Prefer attr_* methods to trivial readers/writers.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family' - Enabled: false - -Style/VariableInterpolation: - Description: >- - Don't interpolate global, instance and class variables - directly in strings. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate' - Enabled: false - -Style/WhenThen: - Description: 'Use when x then ... for one-line cases.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases' - Enabled: false - -Style/WhileUntilModifier: - Description: >- - Favor modifier while/until usage when you have a - single-line body. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier' - Enabled: false - -Style/WordArray: - Description: 'Use %w or %W for arrays of words.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w' - Enabled: false - -# Layout - -Layout/AlignParameters: - Description: 'Here we check if the parameters on a multi-line method call or definition are aligned.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent' - Enabled: false - -Layout/ConditionPosition: - Description: >- - Checks for condition placed in a confusing position relative to - the keyword. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition' - Enabled: false - -Layout/DotPosition: - Description: 'Checks the position of the dot in multi-line method calls.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains' - EnforcedStyle: trailing - -Layout/ExtraSpacing: - Description: 'Do not use unnecessary spacing.' - Enabled: true - -Layout/MultilineOperationIndentation: - Description: >- - Checks indentation of binary operations that span more than - one line. - Enabled: true - EnforcedStyle: indented - -Layout/MultilineMethodCallIndentation: - Description: >- - Checks indentation of method calls with the dot operator - that span more than one line. - Enabled: true - EnforcedStyle: indented - -Layout/InitialIndentation: - Description: >- - Checks the indentation of the first non-blank non-comment line in a file. - Enabled: false - -# Lint - -Lint/AmbiguousOperator: - Description: >- - Checks for ambiguous operators in the first argument of a - method invocation without parentheses. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args' - Enabled: false - -Lint/AmbiguousRegexpLiteral: - Description: >- - Checks for ambiguous regexp literals in the first argument of - a method invocation without parenthesis. - Enabled: false - -Lint/AssignmentInCondition: - Description: "Don't use assignment in conditions." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition' - Enabled: false - -Lint/CircularArgumentReference: - Description: "Don't refer to the keyword argument in the default value." - Enabled: false - -Lint/DeprecatedClassMethods: - Description: 'Check for deprecated class method calls.' - Enabled: false - -Lint/DuplicatedKey: - Description: 'Check for duplicate keys in hash literals.' - Enabled: false - -Lint/EachWithObjectArgument: - Description: 'Check for immutable argument given to each_with_object.' - Enabled: false - -Lint/ElseLayout: - Description: 'Check for odd code arrangement in an else block.' - Enabled: false - -Lint/FormatParameterMismatch: - Description: 'The number of parameters to format/sprint must match the fields.' - Enabled: false - -Lint/HandleExceptions: - Description: "Don't suppress exception." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions' - Enabled: false - -Lint/LiteralAsCondition: - Description: 'Checks of literals used in conditions.' - Enabled: false - -Lint/LiteralInInterpolation: - Description: 'Checks for literals used in interpolation.' - Enabled: false - -Lint/Loop: - Description: >- - Use Kernel#loop with break rather than begin/end/until or - begin/end/while for post-loop tests. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break' - Enabled: false - -Lint/NestedMethodDefinition: - Description: 'Do not use nested method definitions.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods' - Enabled: false - -Lint/NonLocalExitFromIterator: - Description: 'Do not use return in iterator to cause non-local exit.' - Enabled: false - -Lint/ParenthesesAsGroupedExpression: - Description: >- - Checks for method calls with a space before the opening - parenthesis. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces' - Enabled: false - -Lint/RequireParentheses: - Description: >- - Use parentheses in the method call to avoid confusion - about precedence. - Enabled: false - -Lint/UnderscorePrefixedVariableName: - Description: 'Do not use prefix `_` for a variable that is used.' - Enabled: false - -Lint/UnneededCopDisableDirective: - Description: >- - Checks for rubocop:disable comments that can be removed. - Note: this cop is not disabled when disabling all cops. - It must be explicitly disabled. - Enabled: false - -Lint/Void: - Description: 'Possible use of operator/literal/variable in void context.' - Enabled: false - -# Performance - -Performance/CaseWhenSplat: - Description: >- - Place `when` conditions that use splat at the end - of the list of `when` branches. - Enabled: false - -Performance/Count: - Description: >- - Use `count` instead of `select...size`, `reject...size`, - `select...count`, `reject...count`, `select...length`, - and `reject...length`. - Enabled: false - -Performance/Detect: - Description: >- - Use `detect` instead of `select.first`, `find_all.first`, - `select.last`, and `find_all.last`. - Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code' - Enabled: false - -Performance/FlatMap: - Description: >- - Use `Enumerable#flat_map` - instead of `Enumerable#map...Array#flatten(1)` - or `Enumberable#collect..Array#flatten(1)` - Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code' - Enabled: false - -Performance/ReverseEach: - Description: 'Use `reverse_each` instead of `reverse.each`.' - Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code' - Enabled: false - -Performance/Sample: - Description: >- - Use `sample` instead of `shuffle.first`, - `shuffle.last`, and `shuffle[Fixnum]`. - Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code' - Enabled: false - -Performance/Size: - Description: >- - Use `size` instead of `count` for counting - the number of elements in `Array` and `Hash`. - Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code' - Enabled: false - -Performance/StringReplacement: - Description: >- - Use `tr` instead of `gsub` when you are replacing the same - number of characters. Use `delete` instead of `gsub` when - you are deleting characters. - Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code' - Enabled: false - -# Rails - -Rails/ActionFilter: - Description: 'Enforces consistent use of action filter methods.' - Enabled: false - -Rails/Date: - Description: >- - Checks the correct usage of date aware methods, - such as Date.today, Date.current etc. - Enabled: false - -Rails/FindBy: - Description: 'Prefer find_by over where.first.' - Enabled: false - -Rails/FindEach: - Description: 'Prefer all.find_each over all.find.' - Enabled: false - -Rails/HasAndBelongsToMany: - Description: 'Prefer has_many :through to has_and_belongs_to_many.' - Enabled: false - -Rails/Output: - Description: 'Checks for calls to puts, print, etc.' - Enabled: false - -Rails/ReadWriteAttribute: - Description: >- - Checks for read_attribute(:attr) and - write_attribute(:attr, val). - Enabled: false - -Rails/ScopeArgs: - Description: 'Checks the arguments of ActiveRecord scopes.' - Enabled: false - -Rails/TimeZone: - Description: 'Checks the correct usage of time zone aware methods.' - StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time' - Reference: 'http://danilenko.org/2012/7/6/rails_timezones' - Enabled: false - -Rails/Validation: - Description: 'Use validates :attribute, hash of validations.' - Enabled: false diff --git a/Rakefile b/Rakefile index 312dfb4..7bb0b6b 100644 --- a/Rakefile +++ b/Rakefile @@ -8,9 +8,11 @@ end namespace "psenv-rails" do class ParameterStoreEnvRailsGemHelper < Bundler::GemHelper - def guard_already_tagged; end + def guard_already_tagged + end - def tag_version; end + def tag_version + end end ParameterStoreEnvRailsGemHelper.install_tasks name: "psenv-rails" diff --git a/lib/psenv/environment.rb b/lib/psenv/environment.rb index 79bf446..88fc485 100644 --- a/lib/psenv/environment.rb +++ b/lib/psenv/environment.rb @@ -6,7 +6,7 @@ module Psenv def apply @variables.each do |k, v| - ENV.store(k.to_s, v) unless ENV.has_key?(k.to_s) + ENV.store(k.to_s, v) unless ENV.key?(k.to_s) end end diff --git a/lib/psenv/retriever.rb b/lib/psenv/retriever.rb index 420809d..8e77401 100644 --- a/lib/psenv/retriever.rb +++ b/lib/psenv/retriever.rb @@ -21,9 +21,9 @@ module Psenv def call Hash[ - parameters. - map { |parameter| Parameter.new(parameter) }. - map { |parameter| [parameter.name, parameter.value] } + parameters + .map { |parameter| Parameter.new(parameter) } + .map { |parameter| [parameter.name, parameter.value] } ] end @@ -48,7 +48,7 @@ module Psenv end parameters.flatten - rescue StandardError => error + rescue => error raise RetrieveError, error end end diff --git a/psenv-rails.gemspec b/psenv-rails.gemspec index 745f2ec..be51e44 100644 --- a/psenv-rails.gemspec +++ b/psenv-rails.gemspec @@ -1,25 +1,24 @@ - lib = File.expand_path("lib", __dir__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require "psenv/version" Gem::Specification.new do |spec| - spec.name = "psenv-rails" - spec.version = Psenv::VERSION - spec.authors = ["Andrew Tomaka"] - spec.email = ["atomaka@gmail.com"] + spec.name = "psenv-rails" + spec.version = Psenv::VERSION + spec.authors = ["Andrew Tomaka"] + spec.email = ["atomaka@gmail.com"] - spec.summary = "Load AWS SSM Parameter Store values into your Rails environment." - spec.homepage = "https://github.com/atomaka/psenv" - spec.license = "MIT" + spec.summary = "Load AWS SSM Parameter Store values into your Rails environment." + spec.homepage = "https://github.com/atomaka/psenv" + spec.license = "MIT" - spec.files = `git ls-files lib | grep rails`. - split($OUTPUT_RECORD_SEPARATOR). - reject do |f| + spec.files = `git ls-files lib | grep rails` + .split($OUTPUT_RECORD_SEPARATOR) + .reject do |f| f.match(%r{^(test|spec|features)/}) end + ["README.md", "LICENSE.txt"] - spec.bindir = "exe" - spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } + spec.bindir = "exe" + spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] spec.add_dependency "psenv", Psenv::VERSION diff --git a/psenv.gemspec b/psenv.gemspec index d89c299..b3f8bab 100644 --- a/psenv.gemspec +++ b/psenv.gemspec @@ -1,29 +1,28 @@ - lib = File.expand_path("lib", __dir__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require "psenv/version" Gem::Specification.new do |spec| - spec.name = "psenv" - spec.version = Psenv::VERSION - spec.authors = ["Andrew Tomaka"] - spec.email = ["atomaka@gmail.com"] + spec.name = "psenv" + spec.version = Psenv::VERSION + spec.authors = ["Andrew Tomaka"] + spec.email = ["atomaka@gmail.com"] - spec.summary = "Load AWS SSM Parameter Store values into your environment." - spec.homepage = "https://github.com/atomaka/psenv" - spec.license = "MIT" + spec.summary = "Load AWS SSM Parameter Store values into your environment." + spec.homepage = "https://github.com/atomaka/psenv" + spec.license = "MIT" - spec.files = `git ls-files -z`.split("\x0").reject do |f| + spec.files = `git ls-files -z`.split("\x0").reject do |f| f.match(%r{^(test|spec|features)/}) end - spec.bindir = "exe" - spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } + spec.bindir = "exe" + spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] spec.add_development_dependency "pry" spec.add_development_dependency "rake", "~> 10.0" spec.add_development_dependency "rspec", "~> 3.0" - spec.add_development_dependency "rubocop", "0.54" + spec.add_development_dependency "standard", "~> 0.1.9" spec.add_development_dependency "webmock", "~> 3.3" spec.add_dependency "aws-sdk-ssm", "~> 1" diff --git a/spec/environment_spec.rb b/spec/environment_spec.rb index 4121dd0..b1a723e 100644 --- a/spec/environment_spec.rb +++ b/spec/environment_spec.rb @@ -1,8 +1,8 @@ require "spec_helper" RSpec.describe Psenv::Environment do - let(:environment1) { { A: "1", B: "1" } } - let(:environment2) { { B: "2", C: "2" } } + let(:environment1) { {A: "1", B: "1"} } + let(:environment2) { {B: "2", C: "2"} } context ".new" do subject { Psenv::Environment.new(environment1, environment2) } diff --git a/spec/psenv_spec.rb b/spec/psenv_spec.rb index 6b30950..bcff177 100644 --- a/spec/psenv_spec.rb +++ b/spec/psenv_spec.rb @@ -3,9 +3,9 @@ require "spec_helper" RSpec.describe Psenv do let(:env_path) { "/env/" } let(:arg_paths) { ["/arg1/", "/arg2"] } - let(:env_variables) { { TEST: "env", ANOTHER: "env" } } + let(:env_variables) { {TEST: "env", ANOTHER: "env"} } let(:arg_variables) do - [{ ONE: "arg1", TWO: "arg1" }, { TWO: "arg2", THREE: "arg2" }] + [{ONE: "arg1", TWO: "arg1"}, {TWO: "arg2", THREE: "arg2"}] end let(:retriever1) { double(:retriever) } let(:retriever2) { double(:retriever) } @@ -42,8 +42,8 @@ RSpec.describe Psenv do end it "creates the environment with the correct variables" do - expect(Psenv::Environment). - to have_received(:new).with(env_variables) + expect(Psenv::Environment) + .to have_received(:new).with(env_variables) end it "applies the environment" do @@ -61,8 +61,8 @@ RSpec.describe Psenv do end it "creates the environment with the correct variables" do - expect(Psenv::Environment). - to have_received(:new).with(*arg_variables) + expect(Psenv::Environment) + .to have_received(:new).with(*arg_variables) end it "apples the environment" do @@ -83,8 +83,8 @@ RSpec.describe Psenv do end it "creates the environment with the correct variables" do - expect(Psenv::Environment). - to have_received(:new).with(env_variables) + expect(Psenv::Environment) + .to have_received(:new).with(env_variables) end it "applies the environment" do @@ -102,8 +102,8 @@ RSpec.describe Psenv do end it "creates the environment with the correct variables" do - expect(Psenv::Environment). - to have_received(:new).with(*arg_variables) + expect(Psenv::Environment) + .to have_received(:new).with(*arg_variables) end it "apples the environment" do diff --git a/spec/rails/Gemfile b/spec/rails/Gemfile index 767fcef..ec2b183 100644 --- a/spec/rails/Gemfile +++ b/spec/rails/Gemfile @@ -1,31 +1,31 @@ -source 'https://rubygems.org' +source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' -gem 'rails', '~> 6.0.0' +gem "rails", "~> 6.0.0" # Use Puma as the app server -gem 'puma', '~> 3.11' +gem "puma", "~> 3.11" # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder # gem 'jbuilder', '~> 2.7' # Use Active Model has_secure_password # gem 'bcrypt', '~> 3.1.7' # Reduces boot times through caching; required in config/boot.rb -gem 'bootsnap', '>= 1.4.2', require: false +gem "bootsnap", ">= 1.4.2", require: false # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible # gem 'rack-cors' -gem 'psenv-rails', path: '../../' +gem "psenv-rails", path: "../../" group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console - gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] + gem "byebug", platforms: [:mri, :mingw, :x64_mingw] end group :development do - gem 'listen', '>= 3.0.5', '< 3.2' + gem "listen", ">= 3.0.5", "< 3.2" end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem -gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] +gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/spec/rails/Rakefile b/spec/rails/Rakefile index e85f913..9a5ea73 100644 --- a/spec/rails/Rakefile +++ b/spec/rails/Rakefile @@ -1,6 +1,6 @@ # Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. -require_relative 'config/application' +require_relative "config/application" Rails.application.load_tasks diff --git a/spec/rails/app/services/environment_tester.rb b/spec/rails/app/services/environment_tester.rb index e78250d..c34b39b 100644 --- a/spec/rails/app/services/environment_tester.rb +++ b/spec/rails/app/services/environment_tester.rb @@ -1,5 +1,5 @@ class EnvironmentTester def self.call - ENV.fetch('API_KEY', '') + ENV.fetch("API_KEY", "") end end diff --git a/spec/rails/bin/bundle b/spec/rails/bin/bundle index 4f5e057..1a4d56e 100755 --- a/spec/rails/bin/bundle +++ b/spec/rails/bin/bundle @@ -10,7 +10,7 @@ require "rubygems" -m = Module.new do +m = Module.new { module_function def invoked_as_script? @@ -78,13 +78,13 @@ m = Module.new do if Gem::Version.correct?(bundler_version) && Gem::Version.new(bundler_version).release < Gem::Version.new("2.0") bundler_version = "< 2" end - gem_error = activation_error_handling do + gem_error = activation_error_handling { gem "bundler", bundler_version - end + } return if gem_error.nil? - require_error = activation_error_handling do + require_error = activation_error_handling { require "bundler/version" - end + } return if require_error.nil? && Gem::Requirement.new(bundler_version).satisfied_by?(Gem::Version.new(Bundler::VERSION)) warn "Activating bundler (#{bundler_version}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_version}'`" exit 42 @@ -96,7 +96,7 @@ m = Module.new do rescue StandardError, LoadError => e e end -end +} m.load_bundler! diff --git a/spec/rails/bin/rails b/spec/rails/bin/rails index 5badb2f..40d2d5e 100755 --- a/spec/rails/bin/rails +++ b/spec/rails/bin/rails @@ -1,9 +1,9 @@ #!/usr/bin/env ruby begin - load File.expand_path('../spring', __FILE__) + load File.expand_path("../spring", __FILE__) rescue LoadError => e - raise unless e.message.include?('spring') + raise unless e.message.include?("spring") end -APP_PATH = File.expand_path('../config/application', __dir__) -require_relative '../config/boot' -require 'rails/commands' +APP_PATH = File.expand_path("../config/application", __dir__) +require_relative "../config/boot" +require "rails/commands" diff --git a/spec/rails/bin/rake b/spec/rails/bin/rake index d87d5f5..3df5805 100755 --- a/spec/rails/bin/rake +++ b/spec/rails/bin/rake @@ -1,9 +1,9 @@ #!/usr/bin/env ruby begin - load File.expand_path('../spring', __FILE__) + load File.expand_path("../spring", __FILE__) rescue LoadError => e - raise unless e.message.include?('spring') + raise unless e.message.include?("spring") end -require_relative '../config/boot' -require 'rake' +require_relative "../config/boot" +require "rake" Rake.application.run diff --git a/spec/rails/bin/setup b/spec/rails/bin/setup index 2e29ac1..7e1934d 100755 --- a/spec/rails/bin/setup +++ b/spec/rails/bin/setup @@ -1,8 +1,8 @@ #!/usr/bin/env ruby -require 'fileutils' +require "fileutils" # path to your application root. -APP_ROOT = File.expand_path('..', __dir__) +APP_ROOT = File.expand_path("..", __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") @@ -13,13 +13,13 @@ FileUtils.chdir APP_ROOT do # This script is idempotent, so that you can run it at anytime and get an expectable outcome. # Add necessary setup steps to this file. - puts '== Installing dependencies ==' - system! 'gem install bundler --conservative' - system('bundle check') || system!('bundle install') + puts "== Installing dependencies ==" + system! "gem install bundler --conservative" + system("bundle check") || system!("bundle install") puts "\n== Removing old logs and tempfiles ==" - system! 'bin/rails log:clear tmp:clear' + system! "bin/rails log:clear tmp:clear" puts "\n== Restarting application server ==" - system! 'bin/rails restart' + system! "bin/rails restart" end diff --git a/spec/rails/bin/spring b/spec/rails/bin/spring index d89ee49..cbe59c6 100755 --- a/spec/rails/bin/spring +++ b/spec/rails/bin/spring @@ -4,14 +4,14 @@ # It gets overwritten when you run the `spring binstub` command. unless defined?(Spring) - require 'rubygems' - require 'bundler' + require "rubygems" + require "bundler" lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) - spring = lockfile.specs.detect { |spec| spec.name == 'spring' } + spring = lockfile.specs.detect { |spec| spec.name == "spring" } if spring Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path - gem 'spring', spring.version - require 'spring/binstub' + gem "spring", spring.version + require "spring/binstub" end end diff --git a/spec/rails/config.ru b/spec/rails/config.ru index f7ba0b5..441e6ff 100644 --- a/spec/rails/config.ru +++ b/spec/rails/config.ru @@ -1,5 +1,5 @@ # This file is used by Rack-based servers to start the application. -require_relative 'config/environment' +require_relative "config/environment" run Rails.application diff --git a/spec/rails/config/application.rb b/spec/rails/config/application.rb index d48c329..6c65484 100644 --- a/spec/rails/config/application.rb +++ b/spec/rails/config/application.rb @@ -1,4 +1,4 @@ -require_relative 'boot' +require_relative "boot" require "rails" # Pick the frameworks you want: diff --git a/spec/rails/config/boot.rb b/spec/rails/config/boot.rb index b9e460c..988a5dd 100644 --- a/spec/rails/config/boot.rb +++ b/spec/rails/config/boot.rb @@ -1,4 +1,4 @@ -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) -require 'bundler/setup' # Set up gems listed in the Gemfile. -require 'bootsnap/setup' # Speed up boot time by caching expensive operations. +require "bundler/setup" # Set up gems listed in the Gemfile. +require "bootsnap/setup" # Speed up boot time by caching expensive operations. diff --git a/spec/rails/config/environment.rb b/spec/rails/config/environment.rb index 426333b..cac5315 100644 --- a/spec/rails/config/environment.rb +++ b/spec/rails/config/environment.rb @@ -1,5 +1,5 @@ # Load the Rails application. -require_relative 'application' +require_relative "application" # Initialize the Rails application. Rails.application.initialize! diff --git a/spec/rails/config/environments/development.rb b/spec/rails/config/environments/development.rb index 96892b3..9a4b1a4 100644 --- a/spec/rails/config/environments/development.rb +++ b/spec/rails/config/environments/development.rb @@ -14,10 +14,10 @@ Rails.application.configure do # Enable/disable caching. By default caching is disabled. # Run rails dev:cache to toggle caching. - if Rails.root.join('tmp', 'caching-dev.txt').exist? + if Rails.root.join("tmp", "caching-dev.txt").exist? config.cache_store = :memory_store config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{2.days.to_i}" + "Cache-Control" => "public, max-age=#{2.days.to_i}", } else # config.action_controller.perform_caching = false @@ -28,7 +28,6 @@ Rails.application.configure do # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log - # Raises error for missing translations. # config.action_view.raise_on_missing_translations = true diff --git a/spec/rails/config/environments/production.rb b/spec/rails/config/environments/production.rb index 9edb779..ff62d96 100644 --- a/spec/rails/config/environments/production.rb +++ b/spec/rails/config/environments/production.rb @@ -11,7 +11,7 @@ Rails.application.configure do config.eager_load = true # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false + config.consider_all_requests_local = false # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). @@ -19,7 +19,7 @@ Rails.application.configure do # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? # Enable serving of images, stylesheets, and JavaScripts from an asset server. # config.action_controller.asset_host = 'http://assets.example.com' @@ -36,7 +36,7 @@ Rails.application.configure do config.log_level = :debug # Prepend all log lines with the following tags. - config.log_tags = [ :request_id ] + config.log_tags = [:request_id] # Use a different cache store in production. # config.cache_store = :mem_cache_store @@ -60,9 +60,9 @@ Rails.application.configure do # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') if ENV["RAILS_LOG_TO_STDOUT"].present? - logger = ActiveSupport::Logger.new(STDOUT) + logger = ActiveSupport::Logger.new(STDOUT) logger.formatter = config.log_formatter - config.logger = ActiveSupport::TaggedLogging.new(logger) + config.logger = ActiveSupport::TaggedLogging.new(logger) end # Inserts middleware to perform automatic connection switching. diff --git a/spec/rails/config/environments/test.rb b/spec/rails/config/environments/test.rb index c752dfc..50d6697 100644 --- a/spec/rails/config/environments/test.rb +++ b/spec/rails/config/environments/test.rb @@ -16,11 +16,11 @@ Rails.application.configure do # Configure public file server for tests with Cache-Control for performance. config.public_file_server.enabled = true config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{1.hour.to_i}" + "Cache-Control" => "public, max-age=#{1.hour.to_i}", } # Show full error reports and disable caching. - config.consider_all_requests_local = true + config.consider_all_requests_local = true # config.action_controller.perform_caching = false config.cache_store = :null_store diff --git a/spec/rails/config/puma.rb b/spec/rails/config/puma.rb index 5ed4437..2d3d969 100644 --- a/spec/rails/config/puma.rb +++ b/spec/rails/config/puma.rb @@ -10,7 +10,7 @@ threads min_threads_count, max_threads_count # Specifies the `port` that Puma will listen on to receive requests; default is 3000. # -port ENV.fetch("PORT") { 3000 } +port ENV.fetch("PORT") { 3000 } # Specifies the `environment` that Puma will run in. # diff --git a/spec/rails/test/services/environment_tester_test.rb b/spec/rails/test/services/environment_tester_test.rb index 5a0533a..14a1d7d 100644 --- a/spec/rails/test/services/environment_tester_test.rb +++ b/spec/rails/test/services/environment_tester_test.rb @@ -1,10 +1,10 @@ -require 'test_helper' +require "test_helper" class EnvironmentTesterTest < Minitest::Test - describe '.call' do + describe ".call" do subject { ::EnvironmentTester.call } - it 'returns the environment variable value' do - assert_equal 'api_key_value', subject + it "returns the environment variable value" do + assert_equal "api_key_value", subject end end end diff --git a/spec/rails/test/test_helper.rb b/spec/rails/test/test_helper.rb index 75f0fe1..86e461a 100644 --- a/spec/rails/test/test_helper.rb +++ b/spec/rails/test/test_helper.rb @@ -1,7 +1,7 @@ -ENV['RAILS_ENV'] ||= 'test' -require_relative '../config/environment' -require 'rails/test_help' -require 'minitest/spec' +ENV["RAILS_ENV"] ||= "test" +require_relative "../config/environment" +require "rails/test_help" +require "minitest/spec" class ActiveSupport::TestCase # Run tests in parallel with specified workers