Sha256: d7b1a7b1bfc81775862b2e06a1e3ba082b4b4239f72c0689d6f76697d4693752

Contents?: true

Size: 769 Bytes

Versions: 33

Compression:

Stored size: 769 Bytes

Contents

module Saml
  module ComplexTypes
    class StatementAbstractType
      include HappyMapper

      register_namespace 'xsi', 'http://www.w3.org/2001/XMLSchema-instance'

      tag 'Statement'
      namespace 'saml'

      attribute :type, String, tag: 'xsi:type'

      def self.register_type(type, klass)
        types[type] = klass
      end

      def self.types
        @types ||= {}
      end

      # TODO: handle multiple statements with different types
      def self.parse(xml, options = {})
        statements = Array(super)
        statements.collect do |statement|
          if (type = types[statement.type])
            type.parse(xml, options.merge(single: true))
          else
            statement
          end
        end
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
libsaml-2.7.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.6.9 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.6.8 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.6.7 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.6.6 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.6.4 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.6.2 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.6.1 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.6.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.5.2 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.5.1 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.5.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.4.7 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.4.6 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.4.5 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.4.4 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.4.3 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.4.2 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.4.1 lib/saml/complex_types/statement_abstract_type.rb
libsaml-2.3.2 lib/saml/complex_types/statement_abstract_type.rb