Sha256: 01421f618cbdd9bf446efd038794f4e1497864f20eb97fd00383b76d9000811e

Contents?: true

Size: 789 Bytes

Versions: 7

Compression:

Stored size: 789 Bytes

Contents

require 'yaml'
require 'dm-core'
require 'dm-types/support/dirty_minder'

module DataMapper
  class Property
    class Yaml < Text

      def custom?
        true
      end

      def load(value)
        if value.nil?
          nil
        elsif value.is_a?(::String)
          ::YAML.load(value)
        else
          raise ArgumentError, '+value+ of a property of YAML type must be nil or a String'
        end
      end

      def dump(value)
        if value.nil?
          nil
        elsif value.is_a?(::String) && value =~ /^---/
          value
        else
          ::YAML.dump(value)
        end
      end

      def typecast(value)
        value
      end

      include ::DataMapper::Property::DirtyMinder

    end # class Yaml
  end # class Property
end # module DataMapper

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
ardm-types-1.2.3 lib/dm-types/yaml.rb
ardm-types-1.2.2 lib/dm-types/yaml.rb
dm-types-1.2.2 lib/dm-types/yaml.rb
dm-types-1.2.1 lib/dm-types/yaml.rb
dm-types-1.2.0 lib/dm-types/yaml.rb
dm-types-1.2.0.rc2 lib/dm-types/yaml.rb
dm-types-1.2.0.rc1 lib/dm-types/yaml.rb