gumrider 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: