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

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

move from test to rspec

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