Sha256: 51685407cb3af985d5deceb5f28e746e115e2e6032510c22812277f4ca06f78b

Contents?: true

Size: 710 Bytes

Versions: 19

Compression:

Stored size: 710 Bytes

Contents

# frozen_string_literal: true

module Saml
  module Kit
    # This module is responsible for
    # providing an API to build a
    # document object, xml, or builder class.
    module Buildable
      extend ActiveSupport::Concern

      class_methods do
        def build(*args)
          builder(*args) do |builder|
            yield builder if block_given?
          end.build
        end

        def build_xml(*args)
          builder(*args) do |builder|
            yield builder if block_given?
          end.to_xml
        end

        def builder(*args)
          builder_class.new(*args).tap do |builder|
            yield builder if block_given?
          end
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
saml-kit-1.2.0 lib/saml/kit/concerns/buildable.rb
saml-kit-1.1.0 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.31 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.30 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.29 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.28 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.27 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.26 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.25 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.24 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.23 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.22 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.21 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.20 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.19 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.18 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.17 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.16 lib/saml/kit/concerns/buildable.rb
saml-kit-1.0.15 lib/saml/kit/buildable.rb