google_url_shortener 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile.lock +1 -1
- data/lib/google/url_shortener/request.rb +6 -2
- data/lib/google/url_shortener/url.rb +10 -16
- data/lib/google/url_shortener/version.rb +1 -1
- data/spec/lib/google/analytics_spec.rb +2 -0
- data/spec/lib/google/base_spec.rb +2 -0
- data/spec/lib/google/url_spec.rb +3 -1
- data/spec/lib/url_shortener_spec.rb +2 -0
- metadata +43 -30
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7e051c5d1187a75d31c1719c3049fa07abc54239
|
4
|
+
data.tar.gz: 453977d8dc8274bfed9aba278d1e75d06ea72e84
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 15a9a2a96f4bf9df9230ad93f6cea91f2222017a5327603ad7782342e6e31a11454a16f5f5e29d5a650fde4fa03c378217178ed1543e8267fec381782dd83f0c
|
7
|
+
data.tar.gz: e067b5f8f38d281c5d0b2107cc3b6e64cc492df1bec87cb94f2e7d09996aec694cb7bf0185a52d0ffac026bcfdfcd138dfb6606ad0de0a95143fa17233d8a0cd
|
data/Gemfile.lock
CHANGED
@@ -5,12 +5,12 @@ module Google
|
|
5
5
|
REQUEST_HEADERS = { :content_type => :json, :accept => :json }
|
6
6
|
|
7
7
|
def post(params={})
|
8
|
-
response = RestClient.post(
|
8
|
+
response = RestClient.post(format_url, format_post_params(params), REQUEST_HEADERS)
|
9
9
|
parse(response)
|
10
10
|
end
|
11
11
|
|
12
12
|
def get(params={})
|
13
|
-
full_url = [
|
13
|
+
full_url = [format_url, "&", format_get_params(params)].join
|
14
14
|
response = RestClient.get(full_url)
|
15
15
|
parse(response)
|
16
16
|
end
|
@@ -20,6 +20,10 @@ module Google
|
|
20
20
|
JSON.parse(response)
|
21
21
|
end
|
22
22
|
|
23
|
+
def format_url
|
24
|
+
"#{BASE_URL}?key=#{self.class.api_key}"
|
25
|
+
end
|
26
|
+
|
23
27
|
def format_post_params(params={})
|
24
28
|
params.to_json
|
25
29
|
end
|
@@ -3,47 +3,41 @@ module Google
|
|
3
3
|
class Url < Base
|
4
4
|
include Request
|
5
5
|
attr_reader :long_url, :short_url, :status, :created_at, :analytics
|
6
|
-
|
6
|
+
|
7
7
|
def initialize(opts={})
|
8
8
|
opts.each_pair do |k, v|
|
9
9
|
self.instance_variable_set(:"@#{k}", v)
|
10
10
|
end
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def decode!
|
14
14
|
params = validate_and_prepare_params(:shortUrl => self.short_url, :projection => Analytics::PROJECTION_LEVEL)
|
15
15
|
response = get(params)
|
16
|
-
|
16
|
+
|
17
17
|
@created_at = Date.parse(response["created"])
|
18
18
|
@analytics = Analytics.from_hash(response["analytics"])
|
19
19
|
@long_url = response["longUrl"]
|
20
20
|
end
|
21
21
|
alias_method :expand!, :decode!
|
22
|
-
|
22
|
+
|
23
23
|
def encode!
|
24
24
|
params = validate_and_prepare_params(:longUrl => self.long_url)
|
25
25
|
response = post(params)
|
26
|
-
|
26
|
+
|
27
27
|
@short_url = response["id"]
|
28
28
|
end
|
29
29
|
alias_method :shorten!, :encode!
|
30
|
-
|
31
|
-
|
30
|
+
|
31
|
+
private
|
32
|
+
|
32
33
|
def validate_and_prepare_params(params={})
|
33
|
-
params = params_for_request(params)
|
34
|
-
|
35
34
|
params.each_pair do |k, v|
|
36
35
|
validate(k, params)
|
37
36
|
end
|
38
|
-
|
37
|
+
|
39
38
|
params
|
40
39
|
end
|
41
|
-
|
42
|
-
def params_for_request(params={})
|
43
|
-
base_params = { :key => self.class.api_key }
|
44
|
-
base_params.merge!(params)
|
45
|
-
end
|
46
|
-
|
40
|
+
|
47
41
|
def validate(key, hash={})
|
48
42
|
if hash[key].nil? || hash[key].empty?
|
49
43
|
raise "Key :#{key} missing from request parameters!"
|
data/spec/lib/google/url_spec.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
1
3
|
module Google
|
2
4
|
module UrlShortener
|
3
5
|
describe Url do
|
4
6
|
|
5
7
|
it "should have the correct attributes after shortening a URL" do
|
6
|
-
stub_request(Google::UrlShortener::Request::BASE_URL, :method => :post, :fixture => "shorten")
|
8
|
+
stub_request(Google::UrlShortener::Request::BASE_URL + "?key=#{@key}", :method => :post, :fixture => "shorten")
|
7
9
|
|
8
10
|
url = Google::UrlShortener::Url.new(:long_url => @long_url)
|
9
11
|
url.shorten!
|
metadata
CHANGED
@@ -1,71 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_url_shortener
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.9
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Josh Nesbitt
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-03-23 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: json
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 1.4.6
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.4.6
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rest-client
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 1.6.7
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.6.7
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: trollop
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- - =
|
45
|
+
- - '='
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: 1.16.2
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.16.2
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: bundler
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ">="
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: 1.0.0
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.0.0
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: rspec
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- - =
|
73
|
+
- - '='
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: 2.8.0
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.8.0
|
69
83
|
description: Google URL Shortener is a library to compress and expand goo.gl URL's.
|
70
84
|
It also provides an interface to review the analytics of a short URL.
|
71
85
|
email:
|
@@ -75,7 +89,7 @@ executables:
|
|
75
89
|
extensions: []
|
76
90
|
extra_rdoc_files: []
|
77
91
|
files:
|
78
|
-
- .gitignore
|
92
|
+
- ".gitignore"
|
79
93
|
- Gemfile
|
80
94
|
- Gemfile.lock
|
81
95
|
- LICENSE
|
@@ -104,26 +118,25 @@ files:
|
|
104
118
|
- spec/spec_helper.rb
|
105
119
|
homepage: http://rubygems.org/gems/google_url_shortener
|
106
120
|
licenses: []
|
121
|
+
metadata: {}
|
107
122
|
post_install_message:
|
108
123
|
rdoc_options: []
|
109
124
|
require_paths:
|
110
125
|
- lib
|
111
126
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
127
|
requirements:
|
114
|
-
- -
|
128
|
+
- - ">="
|
115
129
|
- !ruby/object:Gem::Version
|
116
130
|
version: '0'
|
117
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
-
none: false
|
119
132
|
requirements:
|
120
|
-
- -
|
133
|
+
- - ">="
|
121
134
|
- !ruby/object:Gem::Version
|
122
135
|
version: 1.3.6
|
123
136
|
requirements: []
|
124
137
|
rubyforge_project: google_url_shortener
|
125
|
-
rubygems_version:
|
138
|
+
rubygems_version: 2.2.2
|
126
139
|
signing_key:
|
127
|
-
specification_version:
|
140
|
+
specification_version: 4
|
128
141
|
summary: A simple library to shorten and expand goo.gl URL's.
|
129
142
|
test_files: []
|