Sha256: e34ee50b07548c9a7f5fe54cbe2b5c96c9daf5f59da83ca3ebc97b0152cf04b0

Contents?: true

Size: 1.43 KB

Versions: 9

Compression:

Stored size: 1.43 KB

Contents

require_relative 'base'
module Legion
  module Extensions
    module Helpers
      module Core
        include Legion::Extensions::Helpers::Base

        def settings
          if Legion::Settings[:extensions].key?(lex_filename.to_sym)
            Legion::Settings[:extensions][lex_filename.to_sym]
          else
            { logger: { level: 'info', extended: false, internal: false } }
          end
        end

        # looks local, then in crypt, then settings, then cache, then env
        def find_setting(name, **opts)
          log.debug ".find_setting(#{name}) called"
          return opts[name.to_sym] if opts.key? name.to_sym

          string_name = "#{lex_name}_#{name.to_s.downcase}"
          if Legion::Settings[:crypt][:vault][:connected] && Legion::Crypt.exist?(lex_name)
            log.debug "looking for #{string_name} in Legion::Crypt"
            crypt_result = Legion::Crypt.get(lex_name)
            return crypt_result[name.to_sym] if crypt_result.is_a?(Hash) && crypt_result.key?(name.to_sym)
          end
          return settings[name.to_sym] if settings.key? name.to_sym

          if Legion::Settings[:cache][:connected]
            log.debug "looking for #{string_name} in Legion::Cache"
            cache_result = Legion::Cache.get(string_name)
            return cache_result unless cache_result.nil?
          end

          ENV[string_name] if ENV.key? string_name
          nil
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
legionio-1.2.1 lib/legion/extensions/helpers/core.rb
legionio-1.2.0 lib/legion/extensions/helpers/core.rb
legionio-0.4.3 lib/legion/extensions/helpers/core.rb
legionio-0.4.2 lib/legion/extensions/helpers/core.rb
legionio-0.4.1 lib/legion/extensions/helpers/core.rb
legionio-0.4.0 lib/legion/extensions/helpers/core.rb
legionio-0.3.2 lib/legion/extensions/helpers/core.rb
legionio-0.3.1 lib/legion/extensions/helpers/core.rb
legionio-0.3.0 lib/legion/extensions/helpers/core.rb