Sha256: bdb6e9286d6f57e7796c5b7a48313d3f75afa48aa58042bab3c50766ebca138b

Contents?: true

Size: 1.32 KB

Versions: 11

Compression:

Stored size: 1.32 KB

Contents

# File: ./lib/skn_utils/env_string_handler.rb
#
# Wrapping a string in this class gives you a prettier way to test
# for equality. The value returned by <tt>Rails.env</tt> is wrapped
# in a StringInquirer object so instead of calling this:
#
#   Rails.env == 'production'
#   SknSettings.env == 'production'
#
# you can call this:
#
#   Rails.env.production?
#   SknSettings.env.productcion?
#
# Create a EnvStringHandler to support: SknSettings.env.development?
# Yes, its YAML trick
# in config/settings.yml
#   ...
#   env: !ruby/string:SknUtils::EnvStringHandler <%= ENV['RACK_ENV'] %>
#  root: !ruby/string:SknUtils::EnvStringHandler <%= Dir.pwd %>
#   ...
# #
module SknUtils
  class EnvStringHandler < String
    private

    def respond_to_missing?(method_name, _include_private = false)
      method_name[-1] == '?' || method_name.to_s.eql?('join') || super
    end

    def method_missing(method_name, *arguments)
      if method_name[-1] == '?'
        self == method_name[0..-2]

        # Only handle the :join method, else to super
      elsif Pathname.public_instance_methods(false).include?(method_name)
        method_name.to_s.eql?('join') ?
            Pathname(self).send(method_name, *arguments).realdirpath.to_s  :
            Pathname(self).send(method_name, *arguments)

      else
        super
      end
    end

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
skn_utils-5.4.0 lib/skn_utils/env_string_handler.rb
skn_utils-5.3.0 lib/skn_utils/env_string_handler.rb
skn_utils-5.2.0 lib/skn_utils/env_string_handler.rb
skn_utils-5.1.3 lib/skn_utils/env_string_handler.rb
skn_utils-5.1.2 lib/skn_utils/env_string_handler.rb
skn_utils-5.1.1 lib/skn_utils/env_string_handler.rb
skn_utils-5.1.0 lib/skn_utils/env_string_handler.rb
skn_utils-5.0.2 lib/skn_utils/env_string_handler.rb
skn_utils-5.0.1 lib/skn_utils/env_string_handler.rb
skn_utils-5.0.0 lib/skn_utils/env_string_handler.rb
skn_utils-4.0.4 lib/skn_utils/env_string_handler.rb