smile 0.4.0 → 0.4.1
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.yml +1 -1
- data/lib/smile/album.rb +5 -3
- data/lib/smile/base.rb +10 -2
- data/lib/smile/common.rb +13 -0
- data/lib/smile/photo.rb +9 -1
- data/lib/smile/smug.rb +2 -2
- data/smile.gemspec +2 -2
- data/test/smile_test.rb +18 -3
- metadata +3 -3
data/VERSION.yml
CHANGED
data/lib/smile/album.rb
CHANGED
@@ -77,6 +77,7 @@ class Smile::Album < Smile::Base
|
|
77
77
|
json["albums"].map do |album_upper|
|
78
78
|
album = upper_hash_to_lower_hash( album_upper )
|
79
79
|
album.merge!( :album_id => album["id"] )
|
80
|
+
album.merge!( :album_key => album["key"] )
|
80
81
|
|
81
82
|
Smile::Album.new( album )
|
82
83
|
end
|
@@ -95,6 +96,7 @@ class Smile::Album < Smile::Base
|
|
95
96
|
|
96
97
|
album = json['album']
|
97
98
|
album.merge!( :album_id => album["id"] )
|
99
|
+
album.merge!( :album_key => album["key"] )
|
98
100
|
|
99
101
|
Smile::Album.new( album )
|
100
102
|
end
|
@@ -330,12 +332,12 @@ class Smile::Album < Smile::Base
|
|
330
332
|
end
|
331
333
|
|
332
334
|
def reload!
|
333
|
-
|
334
|
-
|
335
|
+
@attributes = Smile::Album.find( { :AlbumID => self.album_id } ).attributes
|
336
|
+
self
|
335
337
|
end
|
336
338
|
|
337
339
|
def category
|
338
|
-
['category']
|
340
|
+
@attributes['category']
|
339
341
|
end
|
340
342
|
|
341
343
|
def subcategory
|
data/lib/smile/base.rb
CHANGED
@@ -6,9 +6,10 @@
|
|
6
6
|
# Copyright 2009 Cajun Country. All rights reserved.
|
7
7
|
#
|
8
8
|
module Smile
|
9
|
-
class Base
|
9
|
+
class Base
|
10
10
|
include Smile::Common
|
11
|
-
|
11
|
+
attr_accessor :attributes
|
12
|
+
|
12
13
|
class << self
|
13
14
|
include Smile::Common
|
14
15
|
|
@@ -21,5 +22,12 @@ module Smile
|
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
25
|
+
def initialize( options={} )
|
26
|
+
@attributes = OpenStruct.new( options )
|
27
|
+
end
|
28
|
+
|
29
|
+
def method_missing( name, *args )
|
30
|
+
@attributes.send(name,args)
|
31
|
+
end
|
24
32
|
end
|
25
33
|
end
|
data/lib/smile/common.rb
CHANGED
@@ -31,6 +31,19 @@ module Smile
|
|
31
31
|
upper_hash_to_lower_hash(Smile::Json.parse( json ) )
|
32
32
|
end
|
33
33
|
|
34
|
+
# This is the base work that will need to be done on ALL
|
35
|
+
# web calls. Given a set of web options and other params
|
36
|
+
# call the web service and convert it to json
|
37
|
+
def secure_web_method_call( web_options, options = {} )
|
38
|
+
params = default_params.merge( web_options )
|
39
|
+
options = Smile::ParamConverter.clean_hash_keys( options )
|
40
|
+
params.merge!( options ) if( options )
|
41
|
+
|
42
|
+
logger.info( params.inspect )
|
43
|
+
|
44
|
+
json = RestClient.post( BASE_SECURE, params ).body
|
45
|
+
upper_hash_to_lower_hash(Smile::Json.parse( json ) )
|
46
|
+
end
|
34
47
|
# This converts a hash that has mixed case
|
35
48
|
# into all lower case
|
36
49
|
def upper_hash_to_lower_hash( upper )
|
data/lib/smile/photo.rb
CHANGED
@@ -32,6 +32,9 @@ class Smile::Photo < Smile::Base
|
|
32
32
|
options
|
33
33
|
)
|
34
34
|
|
35
|
+
image = image['image']
|
36
|
+
logger.info( image )
|
37
|
+
|
35
38
|
image.merge!( :image_id => image["id"] )
|
36
39
|
image.merge!( :album_key => image["album"]["key"] )
|
37
40
|
image.merge!( :album_id => image["album"]["id"] )
|
@@ -189,6 +192,11 @@ class Smile::Photo < Smile::Base
|
|
189
192
|
end
|
190
193
|
|
191
194
|
def album
|
192
|
-
Smile::Album.find( :AlbumID => self.album_id, :AlbumKey => self.album_key )
|
195
|
+
@album ||= Smile::Album.find( :AlbumID => self.album_id, :AlbumKey => self.album_key )
|
196
|
+
end
|
197
|
+
|
198
|
+
def reload!
|
199
|
+
@attributes = Smile::Photo.find( { :ImageID => self.image_id, :ImageKey => self.key } ).attributes
|
200
|
+
self
|
193
201
|
end
|
194
202
|
end
|
data/lib/smile/smug.rb
CHANGED
@@ -15,7 +15,7 @@ module Smile
|
|
15
15
|
#
|
16
16
|
# @return [Smile::SmugMug.new] An Smug object that has been authenticated
|
17
17
|
def auth( email, pass )
|
18
|
-
json =
|
18
|
+
json = secure_web_method_call(
|
19
19
|
{ :method => 'smugmug.login.withPassword', :EmailAddress => email, :Password => pass }
|
20
20
|
)
|
21
21
|
|
@@ -28,7 +28,7 @@ module Smile
|
|
28
28
|
#
|
29
29
|
# @return [Smile::SmugMug.new] An Smug object that has been authenticated
|
30
30
|
def auth_anonymously
|
31
|
-
json =
|
31
|
+
json = secure_web_method_call( { :method => 'smugmug.login.anonymously' } )
|
32
32
|
|
33
33
|
self.session.id = json["login"]["session"]["id"]
|
34
34
|
json
|
data/smile.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{smile}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["cajun"]
|
12
|
-
s.date = %q{2010-05-
|
12
|
+
s.date = %q{2010-05-14}
|
13
13
|
s.default_executable = %q{smile}
|
14
14
|
s.email = %q{zac@kleinpeter.org}
|
15
15
|
s.executables = ["smile"]
|
data/test/smile_test.rb
CHANGED
@@ -7,7 +7,7 @@ Shindo.tests 'checking all the cool things smile can do' do
|
|
7
7
|
# this resets the config to the base state before every test
|
8
8
|
Smile::Base.clear_config!
|
9
9
|
Smile::Base.configure do |config|
|
10
|
-
|
10
|
+
# config.logger_on = true
|
11
11
|
end
|
12
12
|
|
13
13
|
@smug = Smile::Smug.new
|
@@ -34,8 +34,14 @@ Shindo.tests 'checking all the cool things smile can do' do
|
|
34
34
|
@smug.albums( :nick_name => 'kleinpeter' )
|
35
35
|
end
|
36
36
|
|
37
|
-
test( 'we can reload albums from the site', ['album'])
|
38
|
-
|
37
|
+
test( 'we can reload albums from the site', ['album']) do
|
38
|
+
album = @smug.albums( :nick_name => 'kleinpeter' ).first
|
39
|
+
old_title = album.title
|
40
|
+
album.title = 'foo'
|
41
|
+
album.reload!
|
42
|
+
old_title == album.title
|
43
|
+
end
|
44
|
+
|
39
45
|
test 'checking to see if we have photos in the albums', ['album'] do
|
40
46
|
album = @smug.albums( :nick_name => 'kleinpeter' ).first
|
41
47
|
!album.photos.empty?
|
@@ -47,6 +53,15 @@ Shindo.tests 'checking all the cool things smile can do' do
|
|
47
53
|
album.album_id == photo.album.album_id &&
|
48
54
|
album.key == photo.album.key
|
49
55
|
end
|
56
|
+
|
57
|
+
test( 'we can reload photos from the site', ['photo']) do
|
58
|
+
album = @smug.albums( :nick_name => 'kleinpeter' ).first
|
59
|
+
photo = album.photos.first
|
60
|
+
old_url = photo.tinyurl
|
61
|
+
photo.tinyurl = 'foo'
|
62
|
+
photo.reload!
|
63
|
+
old_url == photo.tinyurl
|
64
|
+
end
|
50
65
|
end
|
51
66
|
|
52
67
|
tests 'confirm configuration settings', ['config'] do
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 1
|
9
|
+
version: 0.4.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- cajun
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-14 00:00:00 -05:00
|
18
18
|
default_executable: smile
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|