Rev | Line | |
---|
[4] | 1 | require 'uri'
|
---|
| 2 | #require 'uri/generic'
|
---|
[168] | 3 | module 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
|
---|
[168] | 19 | @@schemes['EHR'] = EHR
|
---|
[4] | 20 | end
|
---|
[168] | 21 | module OpenEHR
|
---|
[4] | 22 | module RM
|
---|
[168] | 23 | module Data_Types
|
---|
| 24 | module URI
|
---|
| 25 | class DV_URI < OpenEHR::RM::Data_Types::Basic::Data_Value
|
---|
[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
|
---|
[168] | 53 | class DV_EHR_URI < DV_URI
|
---|
[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
|
---|
| 72 | end # of OpenEHR
|
---|
Note:
See
TracBrowser
for help on using the repository browser.