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
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'
6#require 'uri/generic'
[173]7module URI
[167]8 class Ehr < ::URI::Generic
[4]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
[167]23 @@schemes['EHR'] = Ehr
[4]24end
[104]25
[216]26module OpenEHR
[4]27 module RM
[167]28 module DataTypes
29 module Uri
[216]30 class DvUri < OpenEHR::RM::DataTypes::Basic::DataValue
[230]31 def initialize(args ={})
32 self.value = args[:value]
[4]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)
[103]47 raise ArgumentError, "value is empty" if value.nil?
[4]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
[104]58
[167]59 class DvEhrUri < DvUri
[4]60 def initialize(value)
61 super(value)
62 end
63 def value=(value)
[103]64 raise ArgumentError, "scheme must be ehr" if !(value =~ /^ehr/i)
[4]65 parse(value)
66 end
67 end # of DV_EHR_URI
68 end # of URI
[167]69 end # of DataTypes
[4]70 end # of RM
71end # of OpenEHR
Note: See TracBrowser for help on using the repository browser.