Sha256: 56db4f1db2d425baf16ce47b38fde770794a81ef380f4f0f059b25ced5ebfd43

Contents?: true

Size: 863 Bytes

Versions: 5

Compression:

Stored size: 863 Bytes

Contents

module Ecoportal
  module API
    module Common
      module GraphQL
        module ClassHelpers
          module InstanceMethods
            def becomes(klass)
              klass.new.tap do |becoming|
                instance_variables.each do |var|
                  becoming.instance_variable_set(var, instance_variable_get(var))
                end
              end
            end

            def becomes_parent_class
              becomes(self.class.superclass)
            end
          end

          module ClassMethods
            include Ecoportal::API::Common::Content::ClassHelpers
          end

          class << self
            def included(base)
              base.send(:include, InstanceMethods)
              base.extend(ClassMethods)
            end
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ecoportal-api-graphql-0.1.4 lib/ecoportal/api/common/graphql/class_helpers.rb
ecoportal-api-graphql-0.1.3 lib/ecoportal/api/common/graphql/class_helpers.rb
ecoportal-api-graphql-0.1.2 lib/ecoportal/api/common/graphql/class_helpers.rb
ecoportal-api-graphql-0.1.1 lib/ecoportal/api/common/graphql/class_helpers.rb
ecoportal-api-graphql-0.1.0 lib/ecoportal/api/common/graphql/class_helpers.rb