# File lib/buildr/packaging/artifact_namespace.rb, line 430
      def requirement_hash(spec = self)
        result = {}
        if String === spec
          parts = spec.split(/\s*->\s*/, 3).map(&:strip)
          case parts.size
          when 1
            result[:spec] = Artifact.to_hash(parts.first)
          when 2
            if /^\w+$/ === parts.first
              result[:name] = parts.first
              result[:spec] = Artifact.to_hash(parts.last)
            else
              result[:spec] = Artifact.to_hash(parts.first)
              result[:requirement] = VersionRequirement.create(parts.last)
            end
          when 3
            result[:name] = parts.first
            result[:spec] = Artifact.to_hash(parts[1])
            result[:requirement] = VersionRequirement.create(parts.last)
          end
        else
          result[:spec] = Artifact.to_hash(spec)
        end
        result[:name] ||= result[:spec][:id].to_s.to_sym
        result[:requirement] ||= VersionRequirement.create(result[:spec][:version])
        result
      end