Class: XRD::ResourceDescriptor
- Inherits:
-
Object
- Object
- XRD::ResourceDescriptor
- Includes:
- SAXMachine, Properties
- Defined in:
- lib/xrd/resource_descriptor.rb
Instance Attribute Summary collapse
-
#expires ⇒ Object
Returns the value of attribute expires.
-
#subject ⇒ Object
Returns the value of attribute subject.
Class Method Summary collapse
Instance Method Summary collapse
- #add_aliases(new_alias) ⇒ Object
- #aliases ⇒ Object
- #base_uri ⇒ Object
- #base_uri=(new_base_uri) ⇒ Object
-
#inspect ⇒ String
Returns a
Stringrepresentation of the resource descriptor object’s state. - #links(query = {}) ⇒ Object
Methods included from Properties
Instance Attribute Details
#expires ⇒ Object
Returns the value of attribute expires.
53 54 55 |
# File 'lib/xrd/resource_descriptor.rb', line 53 def expires @expires end |
#subject ⇒ Object
Returns the value of attribute subject.
63 64 65 |
# File 'lib/xrd/resource_descriptor.rb', line 63 def subject @subject end |
Class Method Details
.fetch_and_parse(uri, adapter = HTTPAdapter::NetHTTPRequestAdapter, connection = nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/xrd/resource_descriptor.rb', line 27 def self.fetch_and_parse( uri, adapter=HTTPAdapter::NetHTTPRequestAdapter, connection=nil) resource_descriptor = XRD::ResourceDescriptor.new resource_descriptor.base_uri = uri request = [ 'GET', resource_descriptor.base_uri.to_str, [['Accept', 'application/xrd+xml,application/xml;q=0.9,*/*;q=0.9']], [''] ] response = HTTPAdapter.transmit(request, adapter, connection) status, headers, body = response xrd_content = "" body.each do |chunk| xrd_content += chunk end return self.parse(xrd_content) end |
Instance Method Details
#add_aliases(new_alias) ⇒ Object
73 74 75 |
# File 'lib/xrd/resource_descriptor.rb', line 73 def add_aliases(new_alias) return self.aliases << Addressable::URI.parse(new_alias) end |
#aliases ⇒ Object
69 70 71 |
# File 'lib/xrd/resource_descriptor.rb', line 69 def aliases return @aliases ||= [] end |
#base_uri ⇒ Object
45 46 47 |
# File 'lib/xrd/resource_descriptor.rb', line 45 def base_uri return @base_uri ||= nil end |
#base_uri=(new_base_uri) ⇒ Object
49 50 51 |
# File 'lib/xrd/resource_descriptor.rb', line 49 def base_uri=(new_base_uri) @base_uri = Addressable::URI.parse(new_base_uri) end |
#inspect ⇒ String
Returns a String representation of the resource descriptor object’s state.
115 116 117 118 119 120 |
# File 'lib/xrd/resource_descriptor.rb', line 115 def inspect sprintf( "#<%s:%#0x SUBJECT:%s>", self.class.to_s, self.object_id, self.subject ) end |
#links(query = {}) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/xrd/resource_descriptor.rb', line 77 def links(query={}) @links ||= [] if query.empty? return @links else result_set = [] for link in @links matched = query.all? do |field, condition| case field when :rel condition === link.rel when :media_type, :type if link.media_type.kind_of?(String) && !condition.include?('/') link.media_type.to_s.index(condition) == 0 else condition === link.media_type end when :href, :uri if condition.respond_to?(:match) condition.match(link.href) else condition === link.href end end end result_set << link if matched end return result_set end end |