Sha256: d30f7388186319a1a53b3cf445a0123b9da6ec9188b06879c2ea8420f4bed886

Contents?: true

Size: 581 Bytes

Versions: 2

Compression:

Stored size: 581 Bytes

Contents

# frozen_string_literal: true

require 'grape_entity/delegator/base'
require 'grape_entity/delegator/hash_object'
require 'grape_entity/delegator/openstruct_object'
require 'grape_entity/delegator/plain_object'

module Grape
  class Entity
    module Delegator
      def self.new(object)
        delegator_klass =
          if object.is_a?(Hash)
            HashObject
          elsif defined?(OpenStruct) && object.is_a?(OpenStruct)
            OpenStructObject
          else
            PlainObject
          end

        delegator_klass.new(object)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
grape-entity-1.0.1 lib/grape_entity/delegator.rb
grape-entity-1.0.0 lib/grape_entity/delegator.rb