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.
Files changed (5) hide show
  1. data/Readme.md +4 -1
  2. data/VERSION +1 -1
  3. data/gumrider.gemspec +2 -2
  4. data/lib/gumrider.rb +26 -14
  5. 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.1
1
+ 0.2.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "gumrider"
8
- s.version = "0.1.1"
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-13"
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 = [
@@ -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
- 'link[name]' => @name,
87
- 'link[url]' => @url,
88
- 'link[description]' => @description,
89
- 'link[price]' => @price * 100,
90
- 'link[price_cents]' => @price * 100,
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
- 'link[name]' => @name,
104
- 'link[url]' => @url,
105
- 'link[description]' => @description,
106
- 'link[price]' => @price * 100,
107
- 'link[price_cents]' => @price * 100,
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.1.1
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-13 00:00:00.000000000Z
12
+ date: 2012-02-16 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: http
16
- requirement: &70231523628680 !ruby/object:Gem::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: *70231523628680
24
+ version_requirements: *70129843617900
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: crack
27
- requirement: &70231523627880 !ruby/object:Gem::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: *70231523627880
35
+ version_requirements: *70129843617140
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &70231523626880 !ruby/object:Gem::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: *70231523626880
46
+ version_requirements: *70129843616400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70231523625660 !ruby/object:Gem::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: *70231523625660
57
+ version_requirements: *70129843615420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70231523624440 !ruby/object:Gem::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: *70231523624440
68
+ version_requirements: *70129843614200
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
- requirement: &70231523623000 !ruby/object:Gem::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: *70231523623000
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: -542508658982127322
113
+ hash: 1126629843413892689
114
114
  required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  none: false
116
116
  requirements: