source: ruby/branches/0.0/models/rm/data_types/uri.rb@ 167

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

adjust for rails

File size: 1.6 KB
RevLine 
[4]1require 'uri'
2#require 'uri/generic'
[167]3module Uri
4 class Ehr < ::URI::Generic
[4]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
[167]19 @@schemes['EHR'] = Ehr
[4]20end
[167]21module OpenEhr
[4]22 module RM
[167]23 module DataTypes
24 module Uri
25 class DvUri < OpenEhr::RM::DataTypes::Basic::DataValue
[4]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
[167]53 class DvEhrUri < DvUri
[4]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.