Sha256: 0cea09cc988b4efaeb4868e025fd24c19a1df3c73a4b9195817c8236d0e03c47

Contents?: true

Size: 1.52 KB

Versions: 4

Compression:

Stored size: 1.52 KB

Contents

module Codesake
  module Core
    class Url

      attr_reader :url
      attr_reader :base_url
      attr_reader :params
      attr_reader :original_params

      def initialize(url)
        @url = url
        @params = []
        @original_params = []
        @base_url = url.split('?')[0]
        if has_params?
          p_array = url.split('?')[1].split('&')
          p_array.each do |p|
            pp = p.split('=')
            param = {}
            param[:name] = pp[0]
            param[:value] = pp[1] unless pp[1].nil?

            @params << param
            @original_params  << param.dup
          end
          @original_params.freeze
        end
      end

      def to_s
        "#{@base_url}?#{params_to_url}"
      end

      def fuzz(name, value)
        set(name, value)
        "#{@base_url}?#{params_to_url}"
      end

      def get(name)
        value = nil
        @params.each do |p|
          value = p[:value] if p[:name] == name
        end
        value
      end

      def set(name, value)
        @params.each do |p|
          p[:value] = value if p[:name] == name
        end
      end

      def reset
        @params = []
        @original_params.each do |p|
          @params << p.dup
        end
      end

      def has_params?
        ! @url.split('?')[1].nil?
      end
      def params_to_url
        ret = ""
        @params.each do |p|
          ret += "#{p[:name]}=#{p[:value]}"
          if !(p == @params.last) 
            ret +="&"
          end
        end
        ret

      end
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
codesake-commons-1.1.0 lib/codesake/core/url.rb
codesake-commons-1.0.0 lib/codesake/core/url.rb
codesake-commons-0.95.0 lib/codesake/core/url.rb
codesake-commons-0.90.0 lib/codesake/core/url.rb