class URI::URN::Generic
Constants
- COMPONENT
- NID_PATTERN
- NSS_PATTERN
- URN_CHARS_PATTERN
- URN_REGEXP
Attributes
nid[R]
nss[R]
Public Class Methods
build(args)
click to toggle source
Calls superclass method
# File lib/uri/urn.rb, line 31 def self.build(args) nid = self.to_s.sub(/\A.*::/, '').downcase unless nid == 'generic' if args.kind_of?(Array) args = [nid] + args elsif args.kind_of?(Hash) args[:nid] = nid end end tmp = Util.make_components_hash(self, args) tmp[:scheme] = 'urn' tmp[:opaque] = "%{nid}:%{nss}" % tmp return super(tmp) end
new(*arg)
click to toggle source
Calls superclass method
# File lib/uri/urn.rb, line 47 def initialize(*arg) super(*arg) if arg[-1] self.opaque = @opaque end end
Public Instance Methods
nid=(value)
click to toggle source
# File lib/uri/urn.rb, line 54 def nid=(value) check_nid(value) set_nid(value) value end
normalize!()
click to toggle source
Calls superclass method
# File lib/uri/urn.rb, line 80 def normalize! super set_nid(self.nid.downcase) end
nss=(value)
click to toggle source
# File lib/uri/urn.rb, line 60 def nss=(value) check_nss(value) set_nss(value) value end
opaque=(value)
click to toggle source
# File lib/uri/urn.rb, line 66 def opaque=(value) check_opaque(value) if URN_REGEXP =~ value self.nid = $~['nid'] self.nss = $~['nss'] else raise InvalidURIError, "bad URI(nid nor nss not set?): #{self}" end set_opaque(value) value end
Protected Instance Methods
set_nid(nid)
click to toggle source
# File lib/uri/urn.rb, line 87 def set_nid(nid) @nid = nid end
set_nss(nss)
click to toggle source
# File lib/uri/urn.rb, line 91 def set_nss(nss) @nss = nss end
Private Instance Methods
check_nid(value)
click to toggle source
# File lib/uri/urn.rb, line 97 def check_nid(value) if value !~ /\A#{NID_PATTERN}\z/o raise InvalidComponentError, "bad component(expected nid component: #{value})" end return true end
check_nss(value)
click to toggle source
# File lib/uri/urn.rb, line 105 def check_nss(value) if value !~ /\A#{self.class::NSS_PATTERN}\z/ # Do not set `o'(optimize) switch. This regepx may be overwritten at subclasses raise InvalidComponentError, "bad component(expected nss component: #{value})" end return true end