Sha256: 4997fbdf226a6a805e1ea7020dd0c9b05d7fdc62bd768804f4fd38921efc0692

Contents?: true

Size: 882 Bytes

Versions: 1

Compression:

Stored size: 882 Bytes

Contents

module ZTK::DSL::Core

  # @author Zachary Patten <zachary AT jovelabs DOT com>
  # @api private
  module Dataset

    def self.included(base)
      base.class_eval do
        base.send(:extend, ZTK::DSL::Core::Dataset::ClassMethods)
      end
    end

    # @author Zachary Patten <zachary AT jovelabs DOT com>
    module ClassMethods

      def dataset
        klass = self.to_s.underscore.to_sym
        @@dataset ||= {}
        if @@dataset.key?(klass)
          @@dataset[klass]
        else
          @@dataset[klass] ||= []
        end
      end

      def purge
        if !@@dataset.nil?
          klass = self.to_s.underscore.to_sym
          @@dataset[klass] = []
        end
      end

      def next_id
        klass = self.to_s.underscore.to_sym
        @@id ||= {}
        @@id[klass] ||= 0

        @@id[klass] += 1
        @@id[klass]
      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ztk-1.6.17 lib/ztk/dsl/core/dataset.rb