Sha256: 5358d95dd0c5faec783337dea9f86754e469114094aa69ca3951f81eece5fd02

Contents?: true

Size: 1.84 KB

Versions: 1

Compression:

Stored size: 1.84 KB

Contents

module Eco
  module API
    class UseCases
      class OozeSamples
        module Helpers
          module Shortcuts

            # Offers multiple ways to compare two strings
            def same_string?(value1, value2, exact: false)
              case
              when value1.is_a?(String) && value2.is_a?(String)
                if exact
                  value1 == value2
                else
                  value1.to_s.strip.downcase == value2.to_s.strip.downcase
                end
              when value1.is_a?(Regexp) && value2.is_a?(String)
                value2 =~ value1
              when value1.is_a?(String) && value2.is_a?(Regexp)
                value1 =~ value2
              else
                value1 == value2
              end
            end

            def titleize(str)
              return nil unless str
              return str if str.strip.empty?
              str.split(/\s+/).map do |part|
                part[0] = part[0].upcase
                part[1..-1] = part[1..-1].downcase
                part
              end.join(" ")
            end

            def normalize_string(str)
              return nil unless str
              str.gsub(/[^[:print:]]/, '')
              .gsub(/[[:space:]]+/, ' ')
              .gsub(/[[:space:]]$/, '')
              .gsub(/[-\u2011\u2012\u2013]/, '-').yield_self do |str|
                str = yield(str) if block_given?
                str
              end
            end

            def clean_question(str)
              return nil unless str
              normalize_string(str) do |str|
                str.gsub(/\r\n/, ' ').yield_self do |str|
                  str = yield(str) if block_given?
                  str
                end
              end
            end

          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eco-helpers-2.0.33 lib/eco/api/usecases/ooze_samples/helpers/shortcuts.rb