Sha256: 94976fa80546b2fa3e9555fe2014ec3002980cc5ea624e6eb0c3883f146445eb

Contents?: true

Size: 822 Bytes

Versions: 3

Compression:

Stored size: 822 Bytes

Contents

# frozen_string_literal: true

module Decanter
  module Parser
    module Utils
      # extract string transformation strategies
      def symbol_to_string(klass_or_sym)
        if singular_class_present?(klass_or_sym)
          singularize_and_camelize_str(klass_or_sym)
        else
          camelize_str(klass_or_sym)
        end
      end

      def singular_class_present?(klass_or_sym)
        parser_str = singularize_and_camelize_str(klass_or_sym)
        concat_str(parser_str).safe_constantize.present?
      end

      def singularize_and_camelize_str(klass_or_sym)
        klass_or_sym.to_s.singularize.camelize
      end

      def camelize_str(klass_or_sym)
        klass_or_sym.to_s.camelize
      end

      def concat_str(parser_str)
        'Decanter::Parser::' + parser_str
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
decanter-2.1.2 lib/decanter/parser/utils.rb
decanter-2.1.1 lib/decanter/parser/utils.rb
decanter-2.1.0 lib/decanter/parser/utils.rb