source: ruby/trunk/lib/models/rm/data_types/uri.rb@ 103

Last change on this file since 103 was 103, checked in by KOBAYASHI, Shinji, 16 years ago

refs #65

File size: 1.4 KB
Line 
1require 'uri'
2#require 'uri/generic'
3module URI
4 class EHR < ::URI::Generic
5 COMPONENT = [
6 :scheme, :path, :fragment, :query
7 ].freeze
8 def self.build(args)
9 tmp = Util::make_components_hash(self, args)
10 super(tmp)
11 end
12 def initialize(*arg)
13 super(*arg)
14 end
15 def self.use_registry
16 true
17 end
18 end
19 @@schemes['EHR'] = EHR
20end
21module OpenEHR
22 module RM
23 module Data_Types
24 module URI
25 class DV_URI < OpenEHR::RM::Data_Types::Basic::Data_Value
26 def initialize(value)
27 self.value = value
28 end
29 def fragment_id
30 @value.fragment
31 end
32 def path
33 @value.path
34 end
35 def query
36 @value.query
37 end
38 def scheme
39 @value.scheme
40 end
41 def value=(value)
42 raise ArgumentError, "value is empty" if value.nil?
43 parse(value)
44 end
45 def value
46 @value.to_s
47 end
48 private
49 def parse(value)
50 @value = ::URI.parse(value)
51 end
52 end
53 class DV_EHR_URI < DV_URI
54 def initialize(value)
55 super(value)
56 end
57 def value=(value)
58 raise ArgumentError, "scheme must be ehr" if !(value =~ /^ehr/i)
59 parse(value)
60 end
61 end # of DV_EHR_URI
62 end # of URI
63 end # of Data_Type
64 end # of RM
65end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.