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