grin 1.1.1 → 1.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/lib/grin/album.rb +5 -2
- data/lib/grin/client.rb +27 -10
- data/lib/test.rb +5 -2
- data/test/test_grin.rb +1 -1
- metadata +4 -10
data/lib/grin/album.rb
CHANGED
@@ -17,8 +17,11 @@ module Grin
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def photo(photo_id)
|
20
|
-
|
21
|
-
|
20
|
+
photo = get("albums/#{id}/photos/#{photo_id}.json")
|
21
|
+
if photo.respond_to?(:[]) && photo['status'] == 'error'
|
22
|
+
return photo
|
23
|
+
else
|
24
|
+
Photo.new(photo)
|
22
25
|
end
|
23
26
|
end
|
24
27
|
|
data/lib/grin/client.rb
CHANGED
@@ -17,14 +17,20 @@ module Grin
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def album(id)
|
20
|
-
|
20
|
+
album = get("albums/#{id}.json")
|
21
|
+
if album.respond_to?(:[]) && album['status'] == 'error'
|
22
|
+
return album
|
23
|
+
else
|
21
24
|
Album.new(album)
|
22
25
|
end
|
23
26
|
end
|
24
27
|
|
25
28
|
def create_album(title, category_id = categories.first.id)
|
26
|
-
|
27
|
-
|
29
|
+
album = post("albums.json", { :album => { :title => title, :category_id => category_id } })
|
30
|
+
if album.respond_to?(:[]) && album['status'] == 'error'
|
31
|
+
return album
|
32
|
+
else
|
33
|
+
Album.new(album)
|
28
34
|
end
|
29
35
|
end
|
30
36
|
|
@@ -43,19 +49,26 @@ module Grin
|
|
43
49
|
end
|
44
50
|
|
45
51
|
def category(id)
|
46
|
-
|
52
|
+
category = get("categories/#{id}.json")
|
53
|
+
if category.respond_to?(:[]) && category['status'] == 'error'
|
54
|
+
return category
|
55
|
+
else
|
47
56
|
Category.new(category)
|
48
57
|
end
|
49
58
|
end
|
50
59
|
|
51
60
|
def create_category(name)
|
52
|
-
|
53
|
-
|
61
|
+
category = post("categories.json", { :category => { :name => name } })
|
62
|
+
if category.respond_to?(:[]) && category['status'] == 'error'
|
63
|
+
return category
|
64
|
+
else
|
65
|
+
Category.new(category)
|
54
66
|
end
|
55
67
|
end
|
56
68
|
|
57
69
|
def find_or_create_category(name)
|
58
|
-
|
70
|
+
category = categories.select { |c| c.name == name }.pop
|
71
|
+
if category
|
59
72
|
return category
|
60
73
|
else
|
61
74
|
create_category(name)
|
@@ -65,15 +78,19 @@ module Grin
|
|
65
78
|
private
|
66
79
|
|
67
80
|
def get(path)
|
68
|
-
JSON.parse(RestClient.get(
|
81
|
+
JSON.parse(RestClient.get(url(path)))
|
69
82
|
end
|
70
83
|
|
71
84
|
def post(path, params = {})
|
72
|
-
JSON.parse(RestClient.post(
|
85
|
+
JSON.parse(RestClient.post(url(path), params))
|
73
86
|
end
|
74
87
|
|
75
88
|
def delete(path)
|
76
|
-
JSON.parse(RestClient.delete(
|
89
|
+
JSON.parse(RestClient.delete(url(path)))
|
90
|
+
end
|
91
|
+
|
92
|
+
def url(path)
|
93
|
+
"http://#{@@auth_string}.#{DOMAIN}/api/#{API_VERSION}/#{path}"
|
77
94
|
end
|
78
95
|
|
79
96
|
end
|
data/lib/test.rb
CHANGED
@@ -2,5 +2,8 @@ require 'rubygems'
|
|
2
2
|
require 'grin'
|
3
3
|
|
4
4
|
@fotogger = Grin::Client.new("bensie", "bensie@gmail.com", "jkmeslyl")
|
5
|
-
p @fotogger.
|
6
|
-
p @fotogger.category(
|
5
|
+
#p @fotogger.categories.first.destroy
|
6
|
+
p @fotogger.category(234)
|
7
|
+
p x = @fotogger.find_or_create_category("Test") # 34
|
8
|
+
p x.destroy
|
9
|
+
|
data/test/test_grin.rb
CHANGED
@@ -37,7 +37,7 @@ class TestGrin < Test::Unit::TestCase
|
|
37
37
|
|
38
38
|
should "not allow you to delete the category when the album exists" do
|
39
39
|
response = @category.destroy
|
40
|
-
assert_equal "Cannot delete
|
40
|
+
assert_equal "Cannot delete record because of dependent albums", response['error']
|
41
41
|
end
|
42
42
|
|
43
43
|
should "delete the album followed by the category" do
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 17
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
version: 1.2.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- James Miller
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-
|
17
|
+
date: 2010-09-09 00:00:00 -07:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
@@ -26,7 +25,6 @@ dependencies:
|
|
26
25
|
requirements:
|
27
26
|
- - ~>
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 15
|
30
28
|
segments:
|
31
29
|
- 1
|
32
30
|
- 6
|
@@ -42,7 +40,6 @@ dependencies:
|
|
42
40
|
requirements:
|
43
41
|
- - ~>
|
44
42
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 1
|
46
43
|
segments:
|
47
44
|
- 1
|
48
45
|
- 4
|
@@ -58,7 +55,6 @@ dependencies:
|
|
58
55
|
requirements:
|
59
56
|
- - ">="
|
60
57
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 3
|
62
58
|
segments:
|
63
59
|
- 0
|
64
60
|
version: "0"
|
@@ -98,7 +94,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
94
|
requirements:
|
99
95
|
- - ">="
|
100
96
|
- !ruby/object:Gem::Version
|
101
|
-
hash: 3
|
102
97
|
segments:
|
103
98
|
- 0
|
104
99
|
version: "0"
|
@@ -107,7 +102,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
102
|
requirements:
|
108
103
|
- - ">="
|
109
104
|
- !ruby/object:Gem::Version
|
110
|
-
hash: 3
|
111
105
|
segments:
|
112
106
|
- 0
|
113
107
|
version: "0"
|