Sha256: 28de444e6b3f3b7b21b5e1c84bfb883f9330560d963d43487361586a9004e042

Contents?: true

Size: 660 Bytes

Versions: 4

Compression:

Stored size: 660 Bytes

Contents

# frozen_string_literal: true

require "delegate" unless defined?(SimpleDelegator)

module Lite
  module Decorator
    class Base < SimpleDelegator

      class << self

        def decorate(object)
          return new(object) unless object.respond_to?(:each)

          object.map { |obj| new(obj) }
        end

      end

      def class
        if object.class.respond_to?(:table_name)
          object.class
        else
          super
        end
      end

      def object
        __getobj__
      end

      def to_model
        if object.respond_to?(:to_model)
          super
        else
          object
        end
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lite-decorator-1.3.1 lib/lite/decorator/base.rb
lite-decorator-1.3.0 lib/lite/decorator/base.rb
lite-decorator-1.2.1 lib/lite/decorator/base.rb
lite-decorator-1.2.0 lib/lite/decorator/base.rb