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

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

restructuring repository tree

File size: 1.6 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 raise ArgumentError, "value is empty" if value.nil?
28 parse(value)
29 end
30 def fragment_id
31 @value.fragment
32 end
33 def path
34 @value.path
35 end
36 def query
37 @value.query
38 end
39 def scheme
40 @value.scheme
41 end
42 def value=(value)
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 check_value(value)
56 super(value)
57 end
58 def value=(value)
59 check_value(value)
60 parse(value)
61 end
62 private
63 def check_value(value)
64 if !(value =~ /^ehr/i)
65 raise ArgumentError, "scheme must be ehr"
66 end
67 end
68 end # of DV_EHR_URI
69 end # of URI
70 end # of Data_Type
71 end # of RM
72end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.