Sha256: fd4e733657e3b0193ddef62391c7a0cc4d736a9a7bb7ceda0a8e52885f37534a

Contents?: true

Size: 698 Bytes

Versions: 1

Compression:

Stored size: 698 Bytes

Contents

module CouchPotato
  module Persistence
    class SimpleProperty
      attr_accessor :name
      
      def initialize(owner_clazz, name, options = {})
        self.name = name
        owner_clazz.class_eval do
          attr_accessor name
          define_method "#{name}?" do
            !self.send(name).nil? && !self.send(name).try(:blank?)
          end
        end
      end
      
      def build(object, json)
        object.send "#{name}=", json.stringify_keys[name.to_s]
      end
      
      def save(object)
        
      end
      
      def destroy(object)
        
      end
      
      def serialize(json, object)
        json[name] = object.send name
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
langalex-couch_potato-0.1 lib/couch_potato/persistence/simple_property.rb