Class: Xmldsign::Transforms
- Inherits:
-
XML::Node
- Object
- XML::Node
- Xmldsign::Transforms
- Defined in:
- lib/xmldsign/transforms.rb
Instance Method Summary collapse
- #algorithms ⇒ Object
- #execute ⇒ Object
- #factory(algorithm, node) ⇒ Object
- #reference ⇒ Object
- #signing_node ⇒ Object
Instance Method Details
#algorithms ⇒ Object
22 23 24 |
# File 'lib/xmldsign/transforms.rb', line 22 def algorithms find('.//ds:Transform').map { |t| factory(t['Algorithm'], t) } end |
#execute ⇒ Object
3 4 5 6 7 |
# File 'lib/xmldsign/transforms.rb', line 3 def execute signing_doc = LibXML::XML::Document.new signing_doc.root = signing_node.copy(true) algorithms.inject(signing_doc) { |d, algorithm| algorithm.execute d } end |
#factory(algorithm, node) ⇒ Object
26 27 28 |
# File 'lib/xmldsign/transforms.rb', line 26 def factory(algorithm, node) Algorithms.factory(algorithm, node) end |
#reference ⇒ Object
18 19 20 |
# File 'lib/xmldsign/transforms.rb', line 18 def reference doc.find_first('.//ds:Reference') end |
#signing_node ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/xmldsign/transforms.rb', line 9 def signing_node if (reference_uri = reference[:URI] and not reference_uri.empty?) id = reference_uri.sub!('#', '') doc.find_first("//*[@wsu:Id='#{id}']") else doc.root end end |