gumrider 0.1.1 → 0.2.0
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.
- data/Readme.md +4 -1
- data/VERSION +1 -1
- data/gumrider.gemspec +2 -2
- data/lib/gumrider.rb +26 -14
- metadata +15 -15
data/Readme.md
CHANGED
@@ -15,6 +15,8 @@ require 'gumrider'
|
|
15
15
|
|
16
16
|
client = Gumrider.new 'YOUR EMAIL', 'YOUR PASSWORD'
|
17
17
|
|
18
|
+
client.authenticate
|
19
|
+
|
18
20
|
# Creating new link
|
19
21
|
link = client.link # like a factory method, returns Gumrider::Link instance
|
20
22
|
link.name = 'My cool PSD'
|
@@ -26,6 +28,7 @@ link.save
|
|
26
28
|
|
27
29
|
link = client.link(link.id) # where link.id is the unique identifier
|
28
30
|
link.name # is 'My cool PSD'
|
31
|
+
link.short_url # is 'http://gumroad.com/l/YOUR_ID'
|
29
32
|
|
30
33
|
# Listing links
|
31
34
|
|
@@ -40,4 +43,4 @@ link.save
|
|
40
43
|
|
41
44
|
link.delete
|
42
45
|
|
43
|
-
```
|
46
|
+
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/gumrider.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "gumrider"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Vadim Demedes"]
|
12
|
-
s.date = "2012-02-
|
12
|
+
s.date = "2012-02-16"
|
13
13
|
s.description = "API client for Gumroad. 100% coverage of available methods"
|
14
14
|
s.email = "sbioko@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/gumrider.rb
CHANGED
@@ -14,6 +14,7 @@ class Gumrider
|
|
14
14
|
|
15
15
|
def authenticate
|
16
16
|
response = Crack::JSON.parse Http.post @endpoint + '/sessions', :form => { :email => @email, :password => @password }
|
17
|
+
|
17
18
|
if response["success"]
|
18
19
|
@token = Base64.encode64(response["token"] + ":")
|
19
20
|
true
|
@@ -28,8 +29,10 @@ class Gumrider
|
|
28
29
|
|
29
30
|
def links
|
30
31
|
response = Crack::JSON.parse Http.with(:Authorization => 'Basic ' + @token).get @endpoint + '/links'
|
32
|
+
|
31
33
|
if response["success"]
|
32
34
|
links = []
|
35
|
+
|
33
36
|
response["links"].each do |item|
|
34
37
|
link = Gumrider::Link.new(false, @token, @endpoint)
|
35
38
|
link.name = item["name"]
|
@@ -38,8 +41,10 @@ class Gumrider
|
|
38
41
|
link.description = item["description"]
|
39
42
|
link.id = item["id"]
|
40
43
|
link.currency = item["currency"]
|
44
|
+
|
41
45
|
links.push link
|
42
46
|
end
|
47
|
+
|
43
48
|
links
|
44
49
|
else
|
45
50
|
[]
|
@@ -48,19 +53,23 @@ class Gumrider
|
|
48
53
|
|
49
54
|
class Link
|
50
55
|
|
51
|
-
attr_accessor :endpoint, :token, :id, :name, :price, :description, :url, :currency
|
56
|
+
attr_accessor :endpoint, :token, :id, :name, :price, :description, :url, :currency, :short_url
|
52
57
|
|
53
58
|
def initialize(id, token, endpoint)
|
54
59
|
@token = token
|
55
60
|
@endpoint = endpoint
|
61
|
+
|
56
62
|
if id
|
57
63
|
response = Crack::JSON.parse Http.with(:Authorization => 'Basic ' + token).get endpoint + '/links/' + id
|
64
|
+
|
58
65
|
if response["success"]
|
59
66
|
@name = response["link"]["name"]
|
60
67
|
@url = response["link"]["url"]
|
61
68
|
@price = response["link"]["price"] / 100
|
62
69
|
@description = response["link"]["description"]
|
63
70
|
@currency = response["link"]["currency"]
|
71
|
+
@short_url = response["link"]["short_url"]
|
72
|
+
|
64
73
|
@id = id
|
65
74
|
end
|
66
75
|
end
|
@@ -76,6 +85,7 @@ class Gumrider
|
|
76
85
|
|
77
86
|
def delete
|
78
87
|
response = Crack::JSON.parse Http.with(:Authorization => 'Basic ' + @token).delete @endpoint + '/links/' + @id
|
88
|
+
|
79
89
|
!!response["success"]
|
80
90
|
end
|
81
91
|
|
@@ -83,15 +93,17 @@ class Gumrider
|
|
83
93
|
|
84
94
|
def create
|
85
95
|
response = Crack::JSON.parse Http.with(:Authorization => 'Basic ' + @token).post @endpoint + '/links', :form => {
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
'link[currency]' => @currency
|
96
|
+
:name => @name,
|
97
|
+
:url => @url,
|
98
|
+
:description => @description,
|
99
|
+
:price => @price * 100,
|
100
|
+
:currency => @currency
|
92
101
|
}
|
102
|
+
|
93
103
|
if response["success"]
|
94
104
|
@id = response["link"]["id"]
|
105
|
+
@short_url = response["link"]["short_url"]
|
106
|
+
|
95
107
|
true
|
96
108
|
else
|
97
109
|
false
|
@@ -100,15 +112,15 @@ class Gumrider
|
|
100
112
|
|
101
113
|
def update
|
102
114
|
response = Crack::JSON.parse Http.with(:Authorization => 'Basic ' + @token).put @endpoint + '/links/' + @id, :form => {
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
'link[currency]' => @currency
|
115
|
+
:name => @name,
|
116
|
+
:url => @url,
|
117
|
+
:description => @description,
|
118
|
+
:price => @price * 100,
|
119
|
+
:currency => @currency
|
109
120
|
}
|
121
|
+
|
110
122
|
!!response["success"]
|
111
123
|
end
|
112
124
|
end
|
113
125
|
|
114
|
-
end
|
126
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gumrider
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-16 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: http
|
16
|
-
requirement: &
|
16
|
+
requirement: &70129843617900 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70129843617900
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: crack
|
27
|
-
requirement: &
|
27
|
+
requirement: &70129843617140 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70129843617140
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda
|
38
|
-
requirement: &
|
38
|
+
requirement: &70129843616400 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70129843616400
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
requirement: &
|
49
|
+
requirement: &70129843615420 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70129843615420
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
requirement: &
|
60
|
+
requirement: &70129843614200 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.6.4
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70129843614200
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov
|
71
|
-
requirement: &
|
71
|
+
requirement: &70129843609420 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70129843609420
|
80
80
|
description: API client for Gumroad. 100% coverage of available methods
|
81
81
|
email: sbioko@gmail.com
|
82
82
|
executables: []
|
@@ -110,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
110
|
version: '0'
|
111
111
|
segments:
|
112
112
|
- 0
|
113
|
-
hash:
|
113
|
+
hash: 1126629843413892689
|
114
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
115
|
none: false
|
116
116
|
requirements:
|