source:
ruby/branches/0.5/lib/open_ehr/rm/data_types/uri.rb@
364
Last change on this file since 364 was 240, 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' |
[232] | 6 | |
[173] | 7 | module URI |
[240] | 8 | class EHR < ::URI::Generic |
[4] | 9 | COMPONENT = [ |
10 | :scheme, :path, :fragment, :query | |
11 | ].freeze | |
[232] | 12 | |
[4] | 13 | def self.build(args) |
14 | tmp = Util::make_components_hash(self, args) | |
15 | super(tmp) | |
16 | end | |
[232] | 17 | |
[4] | 18 | def initialize(*arg) |
19 | super(*arg) | |
20 | end | |
[232] | 21 | |
[4] | 22 | def self.use_registry |
23 | true | |
24 | end | |
25 | end | |
[240] | 26 | @@schemes['EHR'] = EHR |
[4] | 27 | end |
[104] | 28 | |
[216] | 29 | module OpenEHR |
[4] | 30 | module RM |
[167] | 31 | module DataTypes |
32 | module Uri | |
[216] | 33 | class DvUri < OpenEHR::RM::DataTypes::Basic::DataValue |
[240] | 34 | def initialize(args = {}) |
[230] | 35 | self.value = args[:value] |
[4] | 36 | end |
[232] | 37 | |
[240] | 38 | def value |
39 | @value.to_s | |
40 | end | |
41 | ||
[4] | 42 | def fragment_id |
[240] | 43 | @value.fragment |
[4] | 44 | end |
[232] | 45 | |
[4] | 46 | def path |
[240] | 47 | @value.path |
[4] | 48 | end |
[232] | 49 | |
[4] | 50 | def query |
[240] | 51 | @value.query |
[4] | 52 | end |
[232] | 53 | |
[4] | 54 | def scheme |
[240] | 55 | @value.scheme |
[4] | 56 | end |
[232] | 57 | |
[4] | 58 | def value=(value) |
[103] | 59 | raise ArgumentError, "value is empty" if value.nil? |
[4] | 60 | parse(value) |
61 | end | |
[232] | 62 | |
[4] | 63 | private |
[232] | 64 | |
[4] | 65 | def parse(value) |
[240] | 66 | @value = ::URI.parse(value) |
[4] | 67 | end |
68 | end | |
[104] | 69 | |
[167] | 70 | class DvEhrUri < DvUri |
[4] | 71 | def initialize(value) |
72 | super(value) | |
73 | end | |
[232] | 74 | |
[4] | 75 | def value=(value) |
[103] | 76 | raise ArgumentError, "scheme must be ehr" if !(value =~ /^ehr/i) |
[240] | 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.