Sha256: 08eb15a30957997e4c55396cf835ed2afb51136de512fc5f9c1d21a188cbf49c

Contents?: true

Size: 846 Bytes

Versions: 1

Compression:

Stored size: 846 Bytes

Contents

module Fauna
  class ClassConfig < Fauna::Resource; end

  class Class < Fauna::Model
    class << self
      def inherited(base)
        fc = name.split("::").last.underscore
        Fauna.add_class(fc, base) unless Fauna.exists_class_for_name?(fc)
      end

      def config_ref
        "#{fauna_class}/config"
      end

      def data
        Fauna::Resource.find(config_ref).data
      end

      def update_data!(hash = {})
        meta = Fauna::Resource.find(config_ref)
        block_given? ? yield(meta.data) : meta.data = hash
        meta.save!
      end

      def update_data(hash = {})
        meta = Fauna::Resource.find(config_ref)
        block_given? ? yield(meta.data) : meta.data = hash
        meta.save
      end
    end

    private

    def post
      Fauna::Client.post(self.class.fauna_class, struct)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fauna-0.2.2 lib/fauna/model/class.rb