Sha256: 2c18330592bbdf91274dbe8194c76170d86a7189656edaf8e1404fe3b82fa630

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

class Hash
  def assert_valid_keys(*valid_keys)
    # Lifted from activesupport
    unknown_keys = keys - [valid_keys].flatten
    raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(", ")}") unless unknown_keys.empty?
  end
  
  def symbolize_keys!
    # Lifted from merb
    each do |key, value|
      sym = key.respond_to?(:to_sym) ? key.to_sym : key
      self[sym] = value
      delete(key) unless key == sym
    end
    self
  end
end

class Array
  def assert_valid_elements(*valid_elements)
    # Lifted from activesupport
    unknown_elements = self - [valid_elements].flatten
    raise(ArgumentError, "Unknown elements(s): #{unknown_elements.join(", ")}") unless unknown_elements.empty?
  end

  def symbolize_elements!
    collect! do |element|
      element.respond_to?(:to_sym) ? element.to_sym : element 
    end
    self
  end
end

module Rack
  class Request
    def url_with_no_query
      url = scheme + "://"
      url << host

      if scheme == "https" && port != 443 ||
        scheme == "http" && port != 80
        url << ":#{port}"
      end

      url << path

      url
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kissifer-json-attributes-0.0.0 lib/monkey_patches.rb