smirk 0.0.2 → 0.0.3
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/VERSION +1 -1
- data/lib/smirk.rb +1 -0
- data/lib/smirk/album.rb +2 -2
- data/lib/smirk/category.rb +15 -0
- data/lib/smirk/client.rb +28 -7
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/lib/smirk.rb
CHANGED
@@ -3,6 +3,7 @@ require 'json'
|
|
3
3
|
require File.expand_path(File.dirname(__FILE__) + '/smirk/client')
|
4
4
|
require File.expand_path(File.dirname(__FILE__) + '/smirk/album')
|
5
5
|
require File.expand_path(File.dirname(__FILE__) + '/smirk/image')
|
6
|
+
require File.expand_path(File.dirname(__FILE__) + '/smirk/category')
|
6
7
|
|
7
8
|
module Smirk
|
8
9
|
class AccessDenied < StandardError; end
|
data/lib/smirk/album.rb
CHANGED
@@ -13,8 +13,8 @@ module Smirk
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def images
|
16
|
-
params = {:
|
17
|
-
json =
|
16
|
+
params = default_params.merge!({:method => "smugmug.images.get", :AlbumID => id, :AlbumKey => key})
|
17
|
+
json = get(HOST, params)["Album"]["Images"]
|
18
18
|
json.inject([]) do |images, i|
|
19
19
|
images << Smirk::Image.new(i["id"], i["Key"], session_id)
|
20
20
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Smirk
|
2
|
+
class Category < Client
|
3
|
+
|
4
|
+
attr_reader :id, :name, :nice_name, :kind, :session_id
|
5
|
+
|
6
|
+
def initialize(id, name, nice_name, kind, session_id)
|
7
|
+
@id = id
|
8
|
+
@name = name
|
9
|
+
@nice_name = nice_name
|
10
|
+
@kind = kind
|
11
|
+
@session_id = session_id
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
data/lib/smirk/client.rb
CHANGED
@@ -6,7 +6,7 @@ module Smirk
|
|
6
6
|
HOST = "api.smugmug.com/services/api/json/1.2.2/"
|
7
7
|
|
8
8
|
def self.version
|
9
|
-
'0.0.
|
9
|
+
'0.0.3'
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.gem_version_string
|
@@ -19,30 +19,51 @@ module Smirk
|
|
19
19
|
@user = user
|
20
20
|
@password = password
|
21
21
|
params = { :method => "smugmug.login.withPassword", :APIKey => API_KEY, :EmailAddress => user, :Password => password }
|
22
|
-
@session_id =
|
22
|
+
@session_id = get(HOST, params, true)['Login']['Session']['id']
|
23
23
|
end
|
24
24
|
|
25
25
|
def logout
|
26
26
|
params = default_params.merge!(:method => "smugmug.logout")
|
27
|
-
|
27
|
+
get(HOST, params)
|
28
28
|
end
|
29
29
|
|
30
30
|
def albums
|
31
31
|
params = default_params.merge!(:method => "smugmug.albums.get")
|
32
|
-
json =
|
32
|
+
json = get(HOST, params)["Albums"]
|
33
33
|
json.inject([]) do |albums, a|
|
34
34
|
albums << Smirk::Album.new(a["id"], a["Key"], a["Title"], a["Category"]["id"], a["Category"]["Name"], session_id)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
def categories
|
39
|
+
params = default_params.merge!(:method => "smugmug.categories.get")
|
40
|
+
json = get(HOST, params)["Categories"]
|
41
|
+
json.inject([]) do |categories, c|
|
42
|
+
categories << Smirk::Category.new(c["id"], c["Name"], c["NiceName"], c["Type"], session_id)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def find_album(id, key)
|
47
|
+
params = default_params.merge!({:method => "smugmug.albums.getInfo", :AlbumID => id, :AlbumKey => key})
|
48
|
+
a = get(HOST, params)["Album"]
|
49
|
+
Smirk::Album.new(a["id"], a["Key"], a["Title"], a["Category"]["id"], a["Category"]["Name"], session_id)
|
50
|
+
end
|
51
|
+
|
52
|
+
def find_image(id, key)
|
53
|
+
params = default_params.merge!({:method => "smugmug.images.getInfo", :ImageID => id, :ImageKey => key})
|
54
|
+
i = get(HOST, params)["Image"]
|
55
|
+
Smirk::Image.new(i["id"], i["Key"], session_id)
|
56
|
+
end
|
57
|
+
|
38
58
|
private
|
39
59
|
|
40
|
-
def get(uri, params = {})
|
41
|
-
|
60
|
+
def get(uri, params = {}, ssl = false)
|
61
|
+
proto = ssl ? "https://" : "http://"
|
62
|
+
JSON.parse(RestClient.post proto+uri, params)
|
42
63
|
end
|
43
64
|
|
44
65
|
def default_params
|
45
|
-
{ :APIKey =>
|
66
|
+
{ :APIKey => API_KEY, :SessionID => session_id }
|
46
67
|
end
|
47
68
|
end
|
48
69
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smirk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Miller
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-02-
|
12
|
+
date: 2010-02-10 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: 1.2.0
|
44
44
|
version:
|
45
|
-
description: Smirk is a simple ruby wrapper for the SmugMug 1.2.2 API specification. It currently supports initiating a session
|
45
|
+
description: Smirk is a simple ruby wrapper for the SmugMug 1.2.2 API specification. It currently supports initiating a session, finding albums, images, and categories.
|
46
46
|
email: james@jk-tech.com
|
47
47
|
executables: []
|
48
48
|
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- lib/smirk/client.rb
|
61
61
|
- lib/smirk/album.rb
|
62
62
|
- lib/smirk/image.rb
|
63
|
+
- lib/smirk/category.rb
|
63
64
|
- test/helper.rb
|
64
65
|
- test/test_smirk.rb
|
65
66
|
has_rdoc: true
|