motion-gravatar 0.0.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/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # Generate Gravatar URLs in RubyMotion
2
+
3
+ Generate the URL for a user's Gravatar image by providing an email address, image size, and optional default image URL.
4
+
5
+ # Install
6
+
7
+ Gemfile
8
+
9
+ ```ruby
10
+ source :rubygems
11
+
12
+ gem 'motion-gravatar', :git => 'git://github.com/brianpattison/motion-gravatar.git'
13
+ ```
14
+
15
+ Run `bundle install`.
16
+
17
+ # Usage
18
+
19
+ ```ruby
20
+ email = 'brian@brianpattison.com'
21
+ size = 512
22
+ defaultURL = 'http://example.com/gravatar/default.jpg'
23
+ url = Gravatar.getURL(email, size, defaultURL)
24
+ ```
25
+
26
+ Both `size` and `defaultURL` are optional. If not provided, Gravatar's defaults will be used, which is 80px for the size and
27
+ the Gravatar logo as the default image if one does not exist for the provided email address.
28
+
29
+ # Thanks
30
+
31
+ Thanks to [@MugunthKumar](https://github.com/MugunthKumar) for the Objective-C side with [Gravatar](https://github.com/MugunthKumar/Gravatar)!
@@ -0,0 +1,14 @@
1
+ # Class for generating Gravatar URLs.
2
+ class Gravatar
3
+
4
+ # Generate the URL for a user's Gravatar image by providing an email address, image size, and optional default image URL.
5
+ # @param [String] email
6
+ # @param [Integer] size Between 1 and 512. The default is 80. (optional)
7
+ # @param [String] defaultURL (optional)
8
+ # @return [NSURL]
9
+ def self.getURL(email, size=nil, defaultURL=nil)
10
+ size = 80 if size.nil?
11
+ GravatarHelper.getGravatarURL(email, size:size, defaultURL:defaultURL)
12
+ end
13
+
14
+ end
@@ -0,0 +1,10 @@
1
+ unless defined?(Motion::Project::Config)
2
+ raise "This file must be required within a RubyMotion project Rakefile."
3
+ end
4
+
5
+ Motion::Project::App.setup do |app|
6
+ Dir.glob(File.join(File.dirname(__FILE__), 'motion-gravatar/*.rb')).each do |file|
7
+ app.files.unshift(file)
8
+ end
9
+ app.vendor_project(File.join(File.dirname(__FILE__), '../vendor/GravatarHelper'), :xcode, :headers_dir => 'GravatarHelper')
10
+ end
@@ -0,0 +1,12 @@
1
+ Gem::Specification.new do |gem|
2
+ gem.authors = ["Brian Pattison"]
3
+ gem.email = ["brian@brianpattison.com"]
4
+ gem.description = "Generate Gravatar URLs"
5
+ gem.summary = "Generate the URL for a user's Gravatar image by providing an email address, image size, and optional default image URL."
6
+ gem.homepage = "https://github.com/brianpattison/motion-gravatar"
7
+
8
+ gem.files = `git ls-files`.split($\)
9
+ gem.name = "motion-gravatar"
10
+ gem.require_paths = ["lib"]
11
+ gem.version = '0.0.1'
12
+ end
@@ -0,0 +1,7 @@
1
+ //
2
+ // Prefix header for all source files of the 'GravatarHelper' target in the 'GravatarHelper' project
3
+ //
4
+
5
+ #ifdef __OBJC__
6
+ #import <Foundation/Foundation.h>
7
+ #endif
@@ -0,0 +1,17 @@
1
+ //
2
+ // GravatarHelper.h
3
+ // Gravatar
4
+ //
5
+ // Created by Mugunth Kumar on 11-Sep-10.
6
+ // Copyright 2010 Steinlogic. All rights reserved.
7
+ //
8
+ // Modified by Brian Pattison
9
+
10
+ #import <Foundation/Foundation.h>
11
+
12
+
13
+ @interface GravatarHelper : NSObject {
14
+
15
+ }
16
+ + (NSURL*) getGravatarURL:(NSString*)emailAddress size:(int)size defaultURL:(NSString*)defaultURL;
17
+ @end
@@ -0,0 +1,41 @@
1
+ //
2
+ // GravatarHelper.m
3
+ // Gravatar
4
+ //
5
+ // Created by Mugunth Kumar on 11-Sep-10.
6
+ // Copyright 2010 Steinlogic. All rights reserved.
7
+ //
8
+ // Modified by Brian Pattison
9
+
10
+ #import "GravatarHelper.h"
11
+ #import <CommonCrypto/CommonDigest.h>
12
+
13
+ @implementation GravatarHelper
14
+
15
+ + (NSURL*) getGravatarURL:(NSString*)emailAddress size:(int)size defaultURL:(NSString*)defaultURL
16
+ {
17
+ NSString *curatedEmail = [[emailAddress stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] lowercaseString];
18
+
19
+ const char *cStr = [curatedEmail UTF8String];
20
+ unsigned char result[16];
21
+ CC_MD5(cStr, strlen(cStr), result); // compute MD5
22
+
23
+ NSString *md5email = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
24
+ result[0], result[1], result[2], result[3],
25
+ result[4], result[5], result[6], result[7],
26
+ result[8], result[9], result[10], result[11],
27
+ result[12], result[13], result[14], result[15]
28
+ ];
29
+
30
+ NSString *gravatarEndPoint;
31
+
32
+ if (defaultURL != nil) {
33
+ NSString *escapedDefaultURL = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)defaultURL, NULL, (CFStringRef)@"!’\"();:@&=+$,/?%#[]% ", kCFStringEncodingISOLatin1);
34
+ gravatarEndPoint = [NSString stringWithFormat:@"http://www.gravatar.com/avatar/%@?s=%d&d=%@", md5email, size, escapedDefaultURL];
35
+ } else {
36
+ gravatarEndPoint = [NSString stringWithFormat:@"http://www.gravatar.com/avatar/%@?s=%d", md5email, size];
37
+ }
38
+
39
+ return [NSURL URLWithString:gravatarEndPoint];
40
+ }
41
+ @end
@@ -0,0 +1,231 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ D3FFB45A159BE4B800541F99 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3FFB459159BE4B800541F99 /* Foundation.framework */; };
11
+ D3FFB460159BE4B800541F99 /* GravatarHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D3FFB45F159BE4B800541F99 /* GravatarHelper.m */; };
12
+ /* End PBXBuildFile section */
13
+
14
+ /* Begin PBXFileReference section */
15
+ D3FFB456159BE4B800541F99 /* libGravatarHelper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libGravatarHelper.a; sourceTree = BUILT_PRODUCTS_DIR; };
16
+ D3FFB459159BE4B800541F99 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
17
+ D3FFB45D159BE4B800541F99 /* GravatarHelper-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "GravatarHelper-Prefix.pch"; sourceTree = "<group>"; };
18
+ D3FFB45E159BE4B800541F99 /* GravatarHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GravatarHelper.h; sourceTree = "<group>"; };
19
+ D3FFB45F159BE4B800541F99 /* GravatarHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GravatarHelper.m; sourceTree = "<group>"; };
20
+ /* End PBXFileReference section */
21
+
22
+ /* Begin PBXFrameworksBuildPhase section */
23
+ D3FFB453159BE4B800541F99 /* Frameworks */ = {
24
+ isa = PBXFrameworksBuildPhase;
25
+ buildActionMask = 2147483647;
26
+ files = (
27
+ D3FFB45A159BE4B800541F99 /* Foundation.framework in Frameworks */,
28
+ );
29
+ runOnlyForDeploymentPostprocessing = 0;
30
+ };
31
+ /* End PBXFrameworksBuildPhase section */
32
+
33
+ /* Begin PBXGroup section */
34
+ D3FFB44B159BE4B800541F99 = {
35
+ isa = PBXGroup;
36
+ children = (
37
+ D3FFB45B159BE4B800541F99 /* GravatarHelper */,
38
+ D3FFB458159BE4B800541F99 /* Frameworks */,
39
+ D3FFB457159BE4B800541F99 /* Products */,
40
+ );
41
+ sourceTree = "<group>";
42
+ };
43
+ D3FFB457159BE4B800541F99 /* Products */ = {
44
+ isa = PBXGroup;
45
+ children = (
46
+ D3FFB456159BE4B800541F99 /* libGravatarHelper.a */,
47
+ );
48
+ name = Products;
49
+ sourceTree = "<group>";
50
+ };
51
+ D3FFB458159BE4B800541F99 /* Frameworks */ = {
52
+ isa = PBXGroup;
53
+ children = (
54
+ D3FFB459159BE4B800541F99 /* Foundation.framework */,
55
+ );
56
+ name = Frameworks;
57
+ sourceTree = "<group>";
58
+ };
59
+ D3FFB45B159BE4B800541F99 /* GravatarHelper */ = {
60
+ isa = PBXGroup;
61
+ children = (
62
+ D3FFB45E159BE4B800541F99 /* GravatarHelper.h */,
63
+ D3FFB45F159BE4B800541F99 /* GravatarHelper.m */,
64
+ D3FFB45C159BE4B800541F99 /* Supporting Files */,
65
+ );
66
+ path = GravatarHelper;
67
+ sourceTree = "<group>";
68
+ };
69
+ D3FFB45C159BE4B800541F99 /* Supporting Files */ = {
70
+ isa = PBXGroup;
71
+ children = (
72
+ D3FFB45D159BE4B800541F99 /* GravatarHelper-Prefix.pch */,
73
+ );
74
+ name = "Supporting Files";
75
+ sourceTree = "<group>";
76
+ };
77
+ /* End PBXGroup section */
78
+
79
+ /* Begin PBXHeadersBuildPhase section */
80
+ D3FFB454159BE4B800541F99 /* Headers */ = {
81
+ isa = PBXHeadersBuildPhase;
82
+ buildActionMask = 2147483647;
83
+ files = (
84
+ );
85
+ runOnlyForDeploymentPostprocessing = 0;
86
+ };
87
+ /* End PBXHeadersBuildPhase section */
88
+
89
+ /* Begin PBXNativeTarget section */
90
+ D3FFB455159BE4B800541F99 /* GravatarHelper */ = {
91
+ isa = PBXNativeTarget;
92
+ buildConfigurationList = D3FFB463159BE4B800541F99 /* Build configuration list for PBXNativeTarget "GravatarHelper" */;
93
+ buildPhases = (
94
+ D3FFB452159BE4B800541F99 /* Sources */,
95
+ D3FFB453159BE4B800541F99 /* Frameworks */,
96
+ D3FFB454159BE4B800541F99 /* Headers */,
97
+ );
98
+ buildRules = (
99
+ );
100
+ dependencies = (
101
+ );
102
+ name = GravatarHelper;
103
+ productName = GravatarHelper;
104
+ productReference = D3FFB456159BE4B800541F99 /* libGravatarHelper.a */;
105
+ productType = "com.apple.product-type.library.static";
106
+ };
107
+ /* End PBXNativeTarget section */
108
+
109
+ /* Begin PBXProject section */
110
+ D3FFB44D159BE4B800541F99 /* Project object */ = {
111
+ isa = PBXProject;
112
+ attributes = {
113
+ LastUpgradeCheck = 0430;
114
+ };
115
+ buildConfigurationList = D3FFB450159BE4B800541F99 /* Build configuration list for PBXProject "GravatarHelper" */;
116
+ compatibilityVersion = "Xcode 3.2";
117
+ developmentRegion = English;
118
+ hasScannedForEncodings = 0;
119
+ knownRegions = (
120
+ en,
121
+ );
122
+ mainGroup = D3FFB44B159BE4B800541F99;
123
+ productRefGroup = D3FFB457159BE4B800541F99 /* Products */;
124
+ projectDirPath = "";
125
+ projectRoot = "";
126
+ targets = (
127
+ D3FFB455159BE4B800541F99 /* GravatarHelper */,
128
+ );
129
+ };
130
+ /* End PBXProject section */
131
+
132
+ /* Begin PBXSourcesBuildPhase section */
133
+ D3FFB452159BE4B800541F99 /* Sources */ = {
134
+ isa = PBXSourcesBuildPhase;
135
+ buildActionMask = 2147483647;
136
+ files = (
137
+ D3FFB460159BE4B800541F99 /* GravatarHelper.m in Sources */,
138
+ );
139
+ runOnlyForDeploymentPostprocessing = 0;
140
+ };
141
+ /* End PBXSourcesBuildPhase section */
142
+
143
+ /* Begin XCBuildConfiguration section */
144
+ D3FFB461159BE4B800541F99 /* Debug */ = {
145
+ isa = XCBuildConfiguration;
146
+ buildSettings = {
147
+ ALWAYS_SEARCH_USER_PATHS = NO;
148
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
149
+ COPY_PHASE_STRIP = NO;
150
+ GCC_C_LANGUAGE_STANDARD = gnu99;
151
+ GCC_DYNAMIC_NO_PIC = NO;
152
+ GCC_OPTIMIZATION_LEVEL = 0;
153
+ GCC_PREPROCESSOR_DEFINITIONS = (
154
+ "DEBUG=1",
155
+ "$(inherited)",
156
+ );
157
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
158
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
159
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
160
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
161
+ GCC_WARN_UNUSED_VARIABLE = YES;
162
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
163
+ SDKROOT = iphoneos;
164
+ };
165
+ name = Debug;
166
+ };
167
+ D3FFB462159BE4B800541F99 /* Release */ = {
168
+ isa = XCBuildConfiguration;
169
+ buildSettings = {
170
+ ALWAYS_SEARCH_USER_PATHS = NO;
171
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
172
+ COPY_PHASE_STRIP = YES;
173
+ GCC_C_LANGUAGE_STANDARD = gnu99;
174
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
175
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
176
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
177
+ GCC_WARN_UNUSED_VARIABLE = YES;
178
+ IPHONEOS_DEPLOYMENT_TARGET = 5.1;
179
+ SDKROOT = iphoneos;
180
+ VALIDATE_PRODUCT = YES;
181
+ };
182
+ name = Release;
183
+ };
184
+ D3FFB464159BE4B800541F99 /* Debug */ = {
185
+ isa = XCBuildConfiguration;
186
+ buildSettings = {
187
+ DSTROOT = /tmp/GravatarHelper.dst;
188
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
189
+ GCC_PREFIX_HEADER = "GravatarHelper/GravatarHelper-Prefix.pch";
190
+ OTHER_LDFLAGS = "-ObjC";
191
+ PRODUCT_NAME = "$(TARGET_NAME)";
192
+ SKIP_INSTALL = YES;
193
+ };
194
+ name = Debug;
195
+ };
196
+ D3FFB465159BE4B800541F99 /* Release */ = {
197
+ isa = XCBuildConfiguration;
198
+ buildSettings = {
199
+ DSTROOT = /tmp/GravatarHelper.dst;
200
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
201
+ GCC_PREFIX_HEADER = "GravatarHelper/GravatarHelper-Prefix.pch";
202
+ OTHER_LDFLAGS = "-ObjC";
203
+ PRODUCT_NAME = "$(TARGET_NAME)";
204
+ SKIP_INSTALL = YES;
205
+ };
206
+ name = Release;
207
+ };
208
+ /* End XCBuildConfiguration section */
209
+
210
+ /* Begin XCConfigurationList section */
211
+ D3FFB450159BE4B800541F99 /* Build configuration list for PBXProject "GravatarHelper" */ = {
212
+ isa = XCConfigurationList;
213
+ buildConfigurations = (
214
+ D3FFB461159BE4B800541F99 /* Debug */,
215
+ D3FFB462159BE4B800541F99 /* Release */,
216
+ );
217
+ defaultConfigurationIsVisible = 0;
218
+ defaultConfigurationName = Release;
219
+ };
220
+ D3FFB463159BE4B800541F99 /* Build configuration list for PBXNativeTarget "GravatarHelper" */ = {
221
+ isa = XCConfigurationList;
222
+ buildConfigurations = (
223
+ D3FFB464159BE4B800541F99 /* Debug */,
224
+ D3FFB465159BE4B800541F99 /* Release */,
225
+ );
226
+ defaultConfigurationIsVisible = 0;
227
+ };
228
+ /* End XCConfigurationList section */
229
+ };
230
+ rootObject = D3FFB44D159BE4B800541F99 /* Project object */;
231
+ }
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ <FileRef
5
+ location = "self:GravatarHelper.xcodeproj">
6
+ </FileRef>
7
+ </Workspace>
@@ -0,0 +1,58 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Scheme
3
+ version = "1.3">
4
+ <BuildAction
5
+ parallelizeBuildables = "YES"
6
+ buildImplicitDependencies = "YES">
7
+ <BuildActionEntries>
8
+ <BuildActionEntry
9
+ buildForTesting = "YES"
10
+ buildForRunning = "YES"
11
+ buildForProfiling = "YES"
12
+ buildForArchiving = "YES"
13
+ buildForAnalyzing = "YES">
14
+ <BuildableReference
15
+ BuildableIdentifier = "primary"
16
+ BlueprintIdentifier = "D3FFB455159BE4B800541F99"
17
+ BuildableName = "libGravatarHelper.a"
18
+ BlueprintName = "GravatarHelper"
19
+ ReferencedContainer = "container:GravatarHelper.xcodeproj">
20
+ </BuildableReference>
21
+ </BuildActionEntry>
22
+ </BuildActionEntries>
23
+ </BuildAction>
24
+ <TestAction
25
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
26
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
27
+ shouldUseLaunchSchemeArgsEnv = "YES"
28
+ buildConfiguration = "Debug">
29
+ <Testables>
30
+ </Testables>
31
+ </TestAction>
32
+ <LaunchAction
33
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
34
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
35
+ launchStyle = "0"
36
+ useCustomWorkingDirectory = "NO"
37
+ buildConfiguration = "Debug"
38
+ ignoresPersistentStateOnLaunch = "NO"
39
+ debugDocumentVersioning = "YES"
40
+ allowLocationSimulation = "YES">
41
+ <AdditionalOptions>
42
+ </AdditionalOptions>
43
+ </LaunchAction>
44
+ <ProfileAction
45
+ shouldUseLaunchSchemeArgsEnv = "YES"
46
+ savedToolIdentifier = ""
47
+ useCustomWorkingDirectory = "NO"
48
+ buildConfiguration = "Release"
49
+ debugDocumentVersioning = "YES">
50
+ </ProfileAction>
51
+ <AnalyzeAction
52
+ buildConfiguration = "Debug">
53
+ </AnalyzeAction>
54
+ <ArchiveAction
55
+ buildConfiguration = "Release"
56
+ revealArchiveInOrganizer = "YES">
57
+ </ArchiveAction>
58
+ </Scheme>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>SchemeUserState</key>
6
+ <dict>
7
+ <key>GravatarHelper.xcscheme</key>
8
+ <dict>
9
+ <key>orderHint</key>
10
+ <integer>0</integer>
11
+ </dict>
12
+ </dict>
13
+ <key>SuppressBuildableAutocreation</key>
14
+ <dict>
15
+ <key>D3FFB455159BE4B800541F99</key>
16
+ <dict>
17
+ <key>primary</key>
18
+ <true/>
19
+ </dict>
20
+ </dict>
21
+ </dict>
22
+ </plist>
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: motion-gravatar
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Brian Pattison
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-28 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Generate Gravatar URLs
15
+ email:
16
+ - brian@brianpattison.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - README.md
22
+ - lib/motion-gravatar.rb
23
+ - lib/motion-gravatar/motion-gravatar.rb
24
+ - motion-gravatar.gemspec
25
+ - vendor/GravatarHelper/GravatarHelper.xcodeproj/project.pbxproj
26
+ - vendor/GravatarHelper/GravatarHelper.xcodeproj/project.xcworkspace/contents.xcworkspacedata
27
+ - vendor/GravatarHelper/GravatarHelper.xcodeproj/project.xcworkspace/xcuserdata/brian.xcuserdatad/UserInterfaceState.xcuserstate
28
+ - vendor/GravatarHelper/GravatarHelper.xcodeproj/xcuserdata/brian.xcuserdatad/xcschemes/GravatarHelper.xcscheme
29
+ - vendor/GravatarHelper/GravatarHelper.xcodeproj/xcuserdata/brian.xcuserdatad/xcschemes/xcschememanagement.plist
30
+ - vendor/GravatarHelper/GravatarHelper/GravatarHelper-Prefix.pch
31
+ - vendor/GravatarHelper/GravatarHelper/GravatarHelper.h
32
+ - vendor/GravatarHelper/GravatarHelper/GravatarHelper.m
33
+ homepage: https://github.com/brianpattison/motion-gravatar
34
+ licenses: []
35
+ post_install_message:
36
+ rdoc_options: []
37
+ require_paths:
38
+ - lib
39
+ required_ruby_version: !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ required_rubygems_version: !ruby/object:Gem::Requirement
46
+ none: false
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ requirements: []
52
+ rubyforge_project:
53
+ rubygems_version: 1.8.10
54
+ signing_key:
55
+ specification_version: 3
56
+ summary: Generate the URL for a user's Gravatar image by providing an email address,
57
+ image size, and optional default image URL.
58
+ test_files: []
59
+ has_rdoc: