Sha256: 5ff79a3a3e7ab0950b7f533e8717948297918b7967e8015b6507ca8cd406af6f

Contents?: true

Size: 1.48 KB

Versions: 31

Compression:

Stored size: 1.48 KB

Contents

module Evertils
  module Helper
    class Xml < Base
      attr_accessor :doc

      #
      # @since 0.3.15
      def initialize(doc)
        raise ArgumentError, "doc param required" unless doc

        @doc = doc.first
      end

      #
      # @since 0.3.15
      def a(link, content)
        conf = {
          href: link,
          content: content
        }

        create(:a, conf)
      end

      #
      # @since 0.3.18
      def span(content)
        conf = {
          content: content
        }

        create(:span, conf)
      end

      #
      # @since 0.3.15
      def br
        create(:br)
      end

      #
      # @since 0.3.15
      def li(*children)
        el = create(:li)
        children.each { |child| el.add_child(child) }
        el
      end

      #
      # @since 0.3.15
      def div(*children)
        el = create(:div)
        children.each { |child| el.add_child(child) }
        el
      end

      #
      # @since 0.3.18
      def ul(*children)
        el = create(:ul)
        children.each { |child| el.add_child(child) }
        el
      end

      #
      # @since 0.3.15
      def create(element, conf = {})
        el = Nokogiri::XML::Node.new(element.to_s, @doc)

        return el if conf.empty?

        conf.each_pair do |k, v|
          if el.respond_to? "#{k}="
            el.send("#{k}=", v)
          elsif el.respond_to? k
            el.send(k, v)
          else
            el[k] = v
          end
        end

        el
      end
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
evertils-2.3.4 lib/evertils/helpers/xml.rb
evertils-2.3.3 lib/evertils/helpers/xml.rb
evertils-2.3.2 lib/evertils/helpers/xml.rb
evertils-2.3.1 lib/evertils/helpers/xml.rb
evertils-2.3.0 lib/evertils/helpers/xml.rb
evertils-2.2.4 lib/evertils/helpers/xml.rb
evertils-2.2.3 lib/evertils/helpers/xml.rb
evertils-2.2.2 lib/evertils/helpers/xml.rb
evertils-2.2.1 lib/evertils/helpers/xml.rb
evertils-2.2.0 lib/evertils/helpers/xml.rb
evertils-2.1.0 lib/evertils/helpers/xml.rb
evertils-2.0.2 lib/evertils/helpers/xml.rb
evertils-2.0.1 lib/evertils/helpers/xml.rb
evertils-2.0.0 lib/evertils/helpers/xml.rb
evertils-1.0.12 lib/evertils/helpers/xml.rb
evertils-1.0.11 lib/evertils/helpers/xml.rb
evertils-1.0.10 lib/evertils/helpers/xml.rb
evertils-1.0.9 lib/evertils/helpers/xml.rb
evertils-1.0.8 lib/evertils/helpers/xml.rb
evertils-1.0.7 lib/evertils/helpers/xml.rb