source: ruby/branches/0.5/lib/open_ehr/rm/data_types/uri.rb@ 240

Last change on this file since 240 was 240, checked in by KOBAYASHI, Shinji, 15 years ago

completed uri package

File size: 1.6 KB
RevLine 
[104]1# This module is implemented from this UML:
2#http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109701308832_384250_6986Report.html
3# Ticket refs #46
4
[4]5require 'uri'
[232]6
[173]7module URI
[240]8 class EHR < ::URI::Generic
[4]9 COMPONENT = [
10 :scheme, :path, :fragment, :query
11 ].freeze
[232]12
[4]13 def self.build(args)
14 tmp = Util::make_components_hash(self, args)
15 super(tmp)
16 end
[232]17
[4]18 def initialize(*arg)
19 super(*arg)
20 end
[232]21
[4]22 def self.use_registry
23 true
24 end
25 end
[240]26 @@schemes['EHR'] = EHR
[4]27end
[104]28
[216]29module OpenEHR
[4]30 module RM
[167]31 module DataTypes
32 module Uri
[216]33 class DvUri < OpenEHR::RM::DataTypes::Basic::DataValue
[240]34 def initialize(args = {})
[230]35 self.value = args[:value]
[4]36 end
[232]37
[240]38 def value
39 @value.to_s
40 end
41
[4]42 def fragment_id
[240]43 @value.fragment
[4]44 end
[232]45
[4]46 def path
[240]47 @value.path
[4]48 end
[232]49
[4]50 def query
[240]51 @value.query
[4]52 end
[232]53
[4]54 def scheme
[240]55 @value.scheme
[4]56 end
[232]57
[4]58 def value=(value)
[103]59 raise ArgumentError, "value is empty" if value.nil?
[4]60 parse(value)
61 end
[232]62
[4]63 private
[232]64
[4]65 def parse(value)
[240]66 @value = ::URI.parse(value)
[4]67 end
68 end
[104]69
[167]70 class DvEhrUri < DvUri
[4]71 def initialize(value)
72 super(value)
73 end
[232]74
[4]75 def value=(value)
[103]76 raise ArgumentError, "scheme must be ehr" if !(value =~ /^ehr/i)
[240]77 @value = parse(value)
[4]78 end
79 end # of DV_EHR_URI
80 end # of URI
[167]81 end # of DataTypes
[4]82 end # of RM
83end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.