Sha256: 46c389e97bb12556360b968d3517b020168e461f9d56e0182379db5a4113f41f

Contents?: true

Size: 769 Bytes

Versions: 2

Compression:

Stored size: 769 Bytes

Contents

module Trailblazer
  class Finder
    # Helper module
    module Utils
      class Extra
        def self.ensure_included(item, collection)
          if collection.include? item
            item
          else
            collection.first
          end
        end

        def self.deep_copy(object) # rubocop:disable Metrics/MethodLength
          case object
          when Array
            object.map { |element| deep_copy(element) }
          when Hash
            object.each_with_object({}) do |(key, value), result|
              result[key] = deep_copy(value)
            end
          when NilClass, FalseClass, TrueClass, Symbol, Method, Numeric
            object
          else
            object.dup
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
trailblazer-finder-0.1.1 lib/trailblazer/finder/utils/extra.rb
trailblazer-finder-0.1.0 lib/trailblazer/finder/utils/extra.rb