Sha256: 02f73d80c092307bc2dcd56f7a9dffffbc5469de234167f175550391f080235b

Contents?: true

Size: 743 Bytes

Versions: 71

Compression:

Stored size: 743 Bytes

Contents

module Saml
  module ComplexTypes
    class StatementAbstractType
      include XmlMapper

      register_namespace 'xsi', Saml::XSI_NAMESPACE

      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

71 entries across 71 versions & 1 rubygems

Version Path
libsaml-3.13.1 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.13.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.12.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.11.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.10.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.9.3 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.9.2 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.9.1 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.9.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.8.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.7.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.6.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.5.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.4.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.3.0 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.2.3 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.2.2 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.2.1 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.1.2 lib/saml/complex_types/statement_abstract_type.rb
libsaml-3.1.1 lib/saml/complex_types/statement_abstract_type.rb