module SamlIdp::Signable

Public Class Methods

included(base) click to toggle source
# File lib/saml_idp/signable.rb, line 10
def self.included(base)
  base.extend ClassMethods
  base.send :attr_accessor, :reference_id
end

Public Instance Methods

sign(el) click to toggle source
# File lib/saml_idp/signable.rb, line 23
def sign(el)
  el << signature if sign?
end
signed() click to toggle source
# File lib/saml_idp/signable.rb, line 15
def signed
  generated_reference_id do
    with_signature do
      send(self.class.raw_method)
    end
  end
end
with_signature() { || ... } click to toggle source
# File lib/saml_idp/signable.rb, line 44
def with_signature
  original = @sign
  @sign = true
  yield.tap do
    @sign = original
  end

Private Instance Methods

generated_reference_id() { |reference_id| ... } click to toggle source
# File lib/saml_idp/signable.rb, line 27
def generated_reference_id
  if reference_id
    fin = yield reference_id if block_given?
  else
    self.reference_id = ref = reference_id_generator.call
    fin = yield reference_id if block_given?
    self.reference_id = nil
  end
  block_given? ? fin : ref
end
reference_id_generator() click to toggle source
# File lib/saml_idp/signable.rb, line 39
def reference_id_generator
  SamlIdp.config.reference_id_generator
end