compose_url 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/compose_url.rb +7 -8
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6729d272071f8a515e6077829668636e2617c41f
4
- data.tar.gz: c8e776fd305bd085e922de1c09a503c035e73f80
3
+ metadata.gz: f05b27a2baec0a20a849d8da456a92c34b1235ff
4
+ data.tar.gz: 4540f0f8c106ff068618b64cb449744b4a309297
5
5
  SHA512:
6
- metadata.gz: bd1bbc682fd5373258f0e7edae303594577bbe7a06797474defba7ee9238709508c4de1d3afe6e9115c27cc0000801bd9ddaf3a95a9d76e700416d1916df1eb1
7
- data.tar.gz: 4e0cf2696d342c325c570dd411dcb095eb1cc24b1950534b8e539c7352f91dae80184002f82e1baa76fa267227664e3c798ffb524901d832361c1bbb0a0170b4
6
+ metadata.gz: d18fb5680d9beac75032482b3e088d1ee55e51b00f795b2da9fdcdad691299b8d55d59efec5d061cb92fd54e3a54ca5a785f368bfe46490d56f9b14f39aac451
7
+ data.tar.gz: 2d8134103acabd043391023edf30fb226f63d32baf1e3fd897a4b87c277dc70e1ab74bac209c4d0970c08dac22f1bd9d635f396e5c919c291f3ca129998ad375
data/lib/compose_url.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'cgi'
2
2
  require 'uri'
3
+ require "addressable/uri"
3
4
 
4
5
  class ComposeURL
5
6
  attr_accessor :params
@@ -7,6 +8,7 @@ class ComposeURL
7
8
  def initialize(base_url, params={})
8
9
  @url = init_url(base_url)
9
10
  @params = init_params(base_url).merge(params)
11
+ url
10
12
  end
11
13
 
12
14
  def add_param(k, v)
@@ -32,11 +34,8 @@ class ComposeURL
32
34
  end
33
35
 
34
36
  def init_params(base_url)
35
- base_url.gsub(init_url(base_url), '').gsub('?', '').split('&').inject({}) {|h, pair|
36
- pair = pair.split('=')
37
- h[pair[0]] = pair[1]
38
- ; h
39
- }
37
+ query_string = base_url.gsub(init_url(base_url), '')
38
+ query_string != '' ? CGI.parse(URI.parse(query_string).query) : {}
40
39
  end
41
40
 
42
41
  def validate_url(url)
@@ -45,9 +44,9 @@ class ComposeURL
45
44
  end
46
45
 
47
46
  def params_string
48
- @params.map { |k,v|
49
- "#{escape(k)}=#{escape(v)}"
50
- }.join('&')
47
+ uri = Addressable::URI.new
48
+ uri.query_values = @params
49
+ uri.query
51
50
  end
52
51
 
53
52
  def escape(s)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compose_url
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Burnette
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-01 00:00:00.000000000 Z
11
+ date: 2014-12-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby class that helps you compose a URL string with query parameters
14
14
  without all the fuss.