Sha256: 67afb53daed3ddd403bd38e69901a4c49c4e6e7e56e19e4924d29ef827fa189f

Contents?: true

Size: 538 Bytes

Versions: 1

Compression:

Stored size: 538 Bytes

Contents

# frozen_string_literal: true
module Arbre
  module HTML

    class Attributes < Hash

      def to_s
        map do |name, value|
          next if value_empty?(value)
          "#{html_escape(name)}=\"#{html_escape(value)}\""
        end.compact.join ' '
      end

      def any?
        super{ |k,v| !value_empty?(v) }
      end

      protected

      def value_empty?(value)
        value.respond_to?(:empty?) ? value.empty? : !value
      end

      def html_escape(s)
        ERB::Util.html_escape(s)
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
arbre-1.5.0 lib/arbre/html/attributes.rb