Rev | Line | |
---|
[4] | 1 | require 'uri'
|
---|
| 2 | #require 'uri/generic'
|
---|
| 3 | module URI
|
---|
| 4 | class EHR < ::URI::Generic
|
---|
| 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
|
---|
| 19 | @@schemes['EHR'] = EHR
|
---|
| 20 | end
|
---|
| 21 | module OpenEHR
|
---|
| 22 | module RM
|
---|
| 23 | module Data_Types
|
---|
| 24 | module URI
|
---|
| 25 | class DV_URI < OpenEHR::RM::Data_Types::Basic::Data_Value
|
---|
| 26 | def initialize(value)
|
---|
[103] | 27 | self.value = value
|
---|
[4] | 28 | end
|
---|
| 29 | def fragment_id
|
---|
| 30 | @value.fragment
|
---|
| 31 | end
|
---|
| 32 | def path
|
---|
| 33 | @value.path
|
---|
| 34 | end
|
---|
| 35 | def query
|
---|
| 36 | @value.query
|
---|
| 37 | end
|
---|
| 38 | def scheme
|
---|
| 39 | @value.scheme
|
---|
| 40 | end
|
---|
| 41 | def value=(value)
|
---|
[103] | 42 | raise ArgumentError, "value is empty" if value.nil?
|
---|
[4] | 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
|
---|
| 53 | class DV_EHR_URI < DV_URI
|
---|
| 54 | def initialize(value)
|
---|
| 55 | super(value)
|
---|
| 56 | end
|
---|
| 57 | def value=(value)
|
---|
[103] | 58 | raise ArgumentError, "scheme must be ehr" if !(value =~ /^ehr/i)
|
---|
[4] | 59 | parse(value)
|
---|
| 60 | end
|
---|
| 61 | end # of DV_EHR_URI
|
---|
| 62 | end # of URI
|
---|
| 63 | end # of Data_Type
|
---|
| 64 | end # of RM
|
---|
| 65 | end # of OpenEHR
|
---|
Note:
See
TracBrowser
for help on using the repository browser.