Sha256: 69cb3975b3df099a3632484358e6109087b14cc9ce4872e88219f72017a43c04

Contents?: true

Size: 647 Bytes

Versions: 5

Compression:

Stored size: 647 Bytes

Contents

require 'rubygems'

gem 'addressable', '~>2.0.1'
require 'addressable/uri'

module DataMapper
  module Types
    class URI < DataMapper::Type
      primitive String

      def self.load(value, property)
        Addressable::URI.parse(value)
      end

      def self.dump(value, property)
        return nil if value.nil?
        value.to_s
      end

      def self.typecast(value, property)
        if value.kind_of?(Addressable::URI)
          value
        elsif value.nil?
          load(nil, property)
        else
          load(value.to_s, property)
        end
      end
    end # class URI
  end # module Types
end # module DataMapper

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
dm-types-0.9.10 lib/dm-types/uri.rb
dm-types-0.9.9 lib/dm-types/uri.rb
dm-types-0.9.8 lib/dm-types/uri.rb
mack-data_mapper-0.8.3 lib/gems/dm-types-0.9.9/lib/dm-types/uri.rb
mack-data_mapper-0.8.3.1 lib/gems/dm-types-0.9.9/lib/dm-types/uri.rb