Class: XriResolver::SEPList
- Inherits:
-
Array
- Object
- Array
- XriResolver::SEPList
- Defined in:
- lib/xri_resolver.rb
Instance Method Summary collapse
-
#initialize(xrds, xrd) ⇒ SEPList
constructor
A new instance of SEPList.
- #reds? ⇒ Boolean
- #refs? ⇒ Boolean
- #to_redlist ⇒ Object
- #to_reflist ⇒ Object
- #to_urilist ⇒ Object
- #to_xrd ⇒ Object
- #uris? ⇒ Boolean
Constructor Details
#initialize(xrds, xrd) ⇒ SEPList
Returns a new instance of SEPList.
904 905 906 907 |
# File 'lib/xri_resolver.rb', line 904 def initialize(xrds, xrd) @xrds = xrds @xrd = xrd end |
Instance Method Details
#reds? ⇒ Boolean
929 930 931 |
# File 'lib/xri_resolver.rb', line 929 def reds? not to_list('Redirect').empty? end |
#refs? ⇒ Boolean
925 926 927 |
# File 'lib/xri_resolver.rb', line 925 def refs? not to_list('Ref').empty? end |
#to_redlist ⇒ Object
917 918 919 |
# File 'lib/xri_resolver.rb', line 917 def to_redlist to_list('Redirect') end |
#to_reflist ⇒ Object
913 914 915 |
# File 'lib/xri_resolver.rb', line 913 def to_reflist to_list('Ref') end |
#to_urilist ⇒ Object
909 910 911 |
# File 'lib/xri_resolver.rb', line 909 def to_urilist to_list('URI') end |
#to_xrd ⇒ Object
933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 |
# File 'lib/xri_resolver.rb', line 933 def to_xrd ## sort SEPs by value of "priority" attribute seplist = Array.new self.each do |sep, flag| sep_pri = sep.attribute('priority') ? sep.attribute('priority').value : 0xFFFF seplist << [sep_pri, sep] end seplist.sort! { |x, y| Common.prioritize x[0], y[0] } ## remove all existing xrd:Service elements newxrd = @xrd.clone REXML::XPath.match(@xrd, "*[not(local-name()='Service')]", XRDNS).each do |ele| newxrd << ele end ## re-add selected and sorted xrd:Service elements per 6.2.2 priority = 0 seplist.each do |sep_pri, sep| sep.delete_attribute('priority') sep.add_attribute('priority', priority.to_s) priority += 1 newxrd << sep end REXML::Document.new(newxrd.to_s) end |
#uris? ⇒ Boolean
921 922 923 |
# File 'lib/xri_resolver.rb', line 921 def uris? not to_list('URI').empty? end |