Sha256: 080601f6da34e69b30c02031b85ec5413b7e633aa9bcaa9f3f908a25b1df4b94

Contents?: true

Size: 721 Bytes

Versions: 2

Compression:

Stored size: 721 Bytes

Contents

module Dub
  module OptsParser
    ENTRY_REGEXP = %r{^\s*([^:]+):\s*('[^']*'|"[^"]*")\s*,?\s*}m
    def self.extract_hash(xml)
      (xml/'simplesect').each do |x|
        if (x/'title').inner_html == 'Bindings info:'
          (x/'title').remove()
          (x/'ref').each do |r|
            r.swap(r.inner_html)
          end
          code = EntitiesUnescape::Decoder.decode((x/'para').inner_html)
          return self.parse(code)
        end
      end
      nil
    end

    def self.parse(src)
      res = {}
      while !src.empty? && src =~ ENTRY_REGEXP
        src = src.sub(ENTRY_REGEXP) do
          res[$1.to_sym] = $2[1..-2]
          ''
        end
      end
      res
    end
  end # OptsParser
end # Dub

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dub-1.0.0 lib/dub/opts_parser.rb
dub-0.7.0 lib/dub/opts_parser.rb