orkut 0.0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in orkut.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright 2011 Umanni
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
data/README.rdoc ADDED
@@ -0,0 +1,11 @@
1
+ = orkut
2
+
3
+ A Ruby wrapper for the Orkut REST/RPC API.
4
+
5
+ == Getting started
6
+
7
+ gem install orkut
8
+
9
+ == Copyright
10
+
11
+ Copyright (c) 2011 Umanni. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require 'bundler'
2
+ require "rspec/core/rake_task"
3
+
4
+ task :default => [:spec]
5
+
6
+ desc "Run specs"
7
+ RSpec::Core::RakeTask.new(:spec)
8
+
9
+ Bundler::GemHelper.install_tasks
data/lib/orkut/api.rb ADDED
@@ -0,0 +1,23 @@
1
+ require 'orkut/authenticatable'
2
+ require 'orkut/config'
3
+ require 'orkut/connection'
4
+ require 'orkut/request'
5
+
6
+ module Orkut
7
+ class API
8
+ include Authenticatable
9
+ include Connection
10
+ include Request
11
+
12
+ attr_accessor *Config::VALID_OPTIONS_KEYS
13
+
14
+ # Creates a new API
15
+ def initialize(options={})
16
+ options = Orkut.options.merge(options)
17
+ Config::VALID_OPTIONS_KEYS.each do |key|
18
+ send("#{key}=", options[key])
19
+ end
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ module Orkut
2
+ module Authenticatable
3
+
4
+ # Credentials hash
5
+ #
6
+ # @return [Hash]
7
+ def credentials
8
+ {
9
+ :consumer_key => consumer_key,
10
+ :consumer_secret => consumer_secret,
11
+ :token => oauth_token,
12
+ :token_secret => oauth_token_secret,
13
+ }
14
+ end
15
+
16
+ # Check whether user is authenticated
17
+ #
18
+ # @return [Boolean]
19
+ def authenticated?
20
+ credentials.values.all?
21
+ end
22
+
23
+ end
24
+ end
data/lib/orkut/base.rb ADDED
@@ -0,0 +1,23 @@
1
+ module Orkut
2
+ class Base
3
+
4
+ def self.lazy_attr_reader(*attributes)
5
+ attributes.each do |attribute|
6
+ class_eval <<-RUBY, __FILE__, __LINE__ + 1
7
+ def #{attribute}
8
+ @#{attribute} ||= @attributes[#{attribute.to_s.inspect}]
9
+ end
10
+ RUBY
11
+ end
12
+ end
13
+
14
+ def initialize(attributes = {})
15
+ @attributes = attributes.dup
16
+ end
17
+
18
+ def [](method)
19
+ self.__send__(method.to_sym)
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module Orkut
2
+ class Client
3
+ # Defines methods related to timelines
4
+ module Messages
5
+
6
+ def home_timeline(options={})
7
+ params = [{
8
+ "params" => {
9
+ "pageType" => "first",
10
+ "messageType" => "public_message",
11
+ "groupId" => "@friends",
12
+ "count" => 20,
13
+ "messageFormat" => "fullHtml"
14
+ },
15
+ "id" => "0-messages.get",
16
+ "method" => "messages.get"
17
+ }]
18
+ headers = {'Content-Type' => 'application/json'}
19
+ post(nil, params.to_s, headers).body
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,53 @@
1
+ require 'orkut/constants/fields'
2
+ require 'orkut/constants/group'
3
+ require 'orkut/constants/internal_constants'
4
+ require 'orkut/constants/method_names'
5
+ require 'orkut/constants/params'
6
+
7
+ module Orkut
8
+ class Client
9
+ # Defines methods related to timelines
10
+ module Timelines
11
+
12
+ DEFAULT_COUNT = 40
13
+
14
+ def home_timeline(options={})
15
+ params = [{
16
+ Orkut::Constants::Fields::PARAMS => {
17
+ Orkut::Constants::Params::GROUP_ID => Orkut::Constants::Group::ALL,
18
+ Orkut::Constants::Params::USER_ID => Orkut::Constants::InternalConstants::USERID_ME,
19
+ Orkut::Constants::Params::COUNT => (options[:count] || DEFAULT_COUNT),
20
+ Orkut::Constants::Fields::COALESCE => true,
21
+ Orkut::Constants::Fields::START_INDEX => 0
22
+ },
23
+ Orkut::Constants::Fields::ID => ''+Orkut::Constants::MethodNames::ACTIVITIES_GET,
24
+ Orkut::Constants::Fields::METHOD => Orkut::Constants::MethodNames::ACTIVITIES_GET
25
+ }]
26
+ post(nil, params.to_s, default_headers).body
27
+ end
28
+
29
+ def scraps_timeline(options={})
30
+ params = [{
31
+ Orkut::Constants::Fields::PARAMS => {
32
+ Orkut::Constants::Fields::PAGE_TYPE => Orkut::Constants::Params::PageType::FIRST,
33
+ Orkut::Constants::Fields::MESSAGE_TYPE => Orkut::Constants::InternalConstants::Values::PUBLIC_MESSAGE,
34
+ Orkut::Constants::Params::GROUP_ID => Orkut::Constants::Group::FRIENDS,
35
+ Orkut::Constants::Params::USER_ID => Orkut::Constants::InternalConstants::USERID_ME,
36
+ Orkut::Constants::Params::COUNT => (options[:count] || DEFAULT_COUNT),
37
+ Orkut::Constants::Fields::MESSAGE_FORMAT => Orkut::Constants::Params::MessageFormat::FULL_HTML
38
+ },
39
+ Orkut::Constants::Fields::ID => '-'+Orkut::Constants::MethodNames::MESSAGES_GET,
40
+ Orkut::Constants::Fields::METHOD => Orkut::Constants::MethodNames::MESSAGES_GET
41
+ }]
42
+ post(nil, params.to_s, default_headers).body
43
+ end
44
+
45
+ def default_headers
46
+ return {
47
+ Orkut::Constants::InternalConstants::CONTENT_TYPE => Orkut::Constants::InternalConstants::JSON_CONTENT_TYPE,
48
+ Orkut::Constants::InternalConstants::ORKUT_CLIENT_LIB_HEADER => Orkut::Version.to_s
49
+ }
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,12 @@
1
+ require 'orkut/api'
2
+
3
+ module Orkut
4
+ class Client < API
5
+
6
+ require 'orkut/client/timelines'
7
+
8
+ alias :api_endpoint :endpoint
9
+
10
+ include Orkut::Client::Timelines
11
+ end
12
+ end
@@ -0,0 +1,89 @@
1
+ require 'orkut/version'
2
+
3
+ module Orkut
4
+ # Defines constants and methods related to configuration
5
+ module Config
6
+ # An array of valid keys in the options hash when configuring a {Orkut::API}
7
+ VALID_OPTIONS_KEYS = [
8
+ :site,
9
+ :request_token_path,
10
+ :access_token_path,
11
+ :authorize_path,
12
+ :endpoint,
13
+ :endpoint_rest,
14
+ :endpoint_rpc,
15
+ :user_agent,
16
+ :consumer_key,
17
+ :consumer_secret,
18
+ :oauth_token,
19
+ :oauth_token_secret].freeze
20
+
21
+ DEFAULT_SITE = 'https://www.google.com'.freeze
22
+
23
+ DEFAULT_REQUEST_TOKEN_PATH = '/accounts/OAuthGetRequestToken'.freeze
24
+
25
+ DEFAULT_ACCESS_TOKEN_PATH = '/accounts/OAuthGetAccessToken'.freeze
26
+
27
+ DEFAULT_AUTHORIZE_PATH = '/accounts/OAuthAuthorizeToken'.freeze
28
+
29
+ # By default, don't set an application key
30
+ DEFAULT_CONSUMER_KEY = nil
31
+
32
+ # By default, don't set an application secret
33
+ DEFAULT_CONSUMER_SECRET = nil
34
+
35
+ # The endpoint that will be used to connect if none is set
36
+ DEFAULT_ENDPOINT = 'http://www.orkut.com/social/rpc'.freeze
37
+
38
+ DEFAULT_ENDPOINT_REST = 'http://www.orkut.com/social/rest'.freeze
39
+
40
+ DEFAULT_ENDPOINT_RPC = 'http://www.orkut.com/social/rpc'.freeze
41
+
42
+ # By default, don't set a user oauth token
43
+ DEFAULT_OAUTH_TOKEN = nil
44
+
45
+ # By default, don't set a user oauth secret
46
+ DEFAULT_OAUTH_TOKEN_SECRET = nil
47
+
48
+ # The value sent in the 'User-Agent' header if none is set
49
+ DEFAULT_USER_AGENT = "Orkut Ruby Gem #{Orkut::Version}".freeze
50
+
51
+ attr_accessor *VALID_OPTIONS_KEYS
52
+
53
+ # When this module is extended, set all configuration options to their default values
54
+ def self.extended(base)
55
+ base.reset
56
+ end
57
+
58
+ # Convenience method to allow configuration options to be set in a block
59
+ def configure
60
+ yield self
61
+ self
62
+ end
63
+
64
+ # Create a hash of options and their values
65
+ def options
66
+ options = {}
67
+ VALID_OPTIONS_KEYS.each{|k| options[k] = send(k)}
68
+ options
69
+ end
70
+
71
+ # Reset all configuration options to defaults
72
+ def reset
73
+ self.site = DEFAULT_SITE
74
+ self.request_token_path = DEFAULT_REQUEST_TOKEN_PATH
75
+ self.access_token_path = DEFAULT_ACCESS_TOKEN_PATH
76
+ self.authorize_path = DEFAULT_AUTHORIZE_PATH
77
+ self.consumer_key = DEFAULT_CONSUMER_KEY
78
+ self.consumer_secret = DEFAULT_CONSUMER_SECRET
79
+ self.endpoint = DEFAULT_ENDPOINT
80
+ self.endpoint_rest = DEFAULT_ENDPOINT_REST
81
+ self.endpoint_rpc = DEFAULT_ENDPOINT_RPC
82
+ self.oauth_token = DEFAULT_OAUTH_TOKEN
83
+ self.oauth_token_secret = DEFAULT_OAUTH_TOKEN_SECRET
84
+ self.user_agent = DEFAULT_USER_AGENT
85
+ self
86
+ end
87
+
88
+ end
89
+ end
@@ -0,0 +1,27 @@
1
+ require 'omniauth/oauth'
2
+
3
+ module Orkut
4
+ module Connection
5
+ private
6
+
7
+ def connection(options={})
8
+ access_token = nil
9
+ if authenticated?
10
+ client_options = {
11
+ :site => site,
12
+ :request_token_path => request_token_path,
13
+ :access_token_path => access_token_path,
14
+ :authorize_path => authorize_path
15
+ }
16
+ consumer = ::OAuth::Consumer.new(consumer_key, consumer_secret, client_options)
17
+ # now create the access token object from passed values
18
+ token_hash = { :oauth_token => oauth_token,
19
+ :oauth_token_secret => oauth_token_secret
20
+ }
21
+ access_token = ::OAuth::AccessToken.from_hash(consumer, token_hash)
22
+ end
23
+ access_token
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,28 @@
1
+ module Orkut
2
+ module Constants
3
+ module ActivityType
4
+ module ActivityType
5
+ ALBUM = 'ALBUM'
6
+ ALBUM_SHARE = 'ALBUM_SHARE'
7
+ APPLICATION = 'APPLICATION'
8
+ COMMUNITY_CREATE = 'COMMUNITY_CREATE'
9
+ COMMUNITY_JOIN = 'COMMUNITY_JOIN'
10
+ FRIEND_ADD = 'FRIEND_ADD'
11
+ MAKAMAKA = 'MAKAMAKA'
12
+ PHOTO = 'PHOTO'
13
+ PHOTO_COMMENT = 'PHOTO_COMMENT'
14
+ PHOTO_TAG = 'PHOTO_TAG'
15
+ PROFILE_UPDATE = 'PROFILE_UPDATE'
16
+ SCRAP = 'SCRAP'
17
+ SKIN_CHANGE = 'SKIN_CHANGE'
18
+ SOCIAL_EVENTS_CREATION = 'SOCIAL_EVENTS_CREATION'
19
+ STATUS_MSG = 'STATUS_MSG'
20
+ STATUS_MSG_COMMENT = 'STATUS_MSG_COMMENT'
21
+ TESTIMONIAL = 'TESTIMONIAL'
22
+ TESTIMONIAL_USER = 'TESTIMONIAL_USER'
23
+ VIDEO = 'VIDEO'
24
+ VIDEO_COMMENT = 'VIDEO_COMMENT'
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,91 @@
1
+ require 'orkut/constants/params'
2
+
3
+ module Orkut
4
+ module Constants
5
+ module Fields
6
+ module AclEntryFields
7
+ # Level of access for this entry in the ACL (read/write).
8
+ ACCESS_TYPE = 'accessType'
9
+ ACCESSOR_ID = 'accessorId'
10
+ # The identifier for this ACL entry.
11
+ ACCESSOR_INFO = 'accessorInfo'
12
+ # Specifies the type of user in this entry of the ACL.
13
+ ACCESSOR_TYPE = 'accessorType'
14
+ end
15
+
16
+ BIRTHDAY = 'birthday'
17
+ COUNTRY = 'country'
18
+ CURRENT_LOCATION = 'currentLocation'
19
+ LOCALITY = 'locality'
20
+ POSTAL_CODE = 'postal'
21
+ REGION = 'region'
22
+ ABOUT_ME = 'aboutMe'
23
+ # data specifying the ACL for this album
24
+ ACL = 'accessControlList'
25
+ ACTIVITY_TYPE = 'activityType'
26
+ ALBUM_ID = Orkut::Constants::Params::ALBUM_ID
27
+ ALBUM_TITLE = 'albumTitle'
28
+ ALLOW_IM = 'allowIm'
29
+ APP_ID = 'appId'
30
+ AUTHOR_ID = 'authorId'
31
+
32
+ BODY = 'body'
33
+ COALESCE = 'coalesce'
34
+ COMMENTS = 'comments'
35
+ CREATED = 'created'
36
+ DESCRIPTION = 'description'
37
+ DISPLAY_NAME = 'displayName'
38
+ EMAILS = 'emails'
39
+ # The list of entries in an ACL
40
+ ENTRIES = 'entries'
41
+ ERROR_TYPE = 'errorType'
42
+ FROM_USER_ID = 'fromUserId'
43
+ FROM_USER_PROFILE = 'fromUserProfile'
44
+ GENDER = 'gender'
45
+ ID = 'id'
46
+
47
+ # the json field for location
48
+ LOCATION = 'location'
49
+ # the json field for count of media items in album
50
+ MEDIA_ITEM_COUNT = 'mediaItemCount'
51
+ MEDIA_ITEMS = 'mediaItems'
52
+ # media mime types in the album
53
+ MEDIA_MIME_TYPE = 'mediaMimeType'
54
+ # media types in the album
55
+ MEDIA_TYPE = 'mediaType'
56
+ MESSAGE_TYPE = 'messageType'
57
+ METHOD = 'method'
58
+ NAME = 'name'
59
+ # The next two are subfields of 'name':
60
+ NAME_FAMILY_NAME = 'familyName'
61
+ NAME_GIVEN_NAME = 'givenName'
62
+ NOTE = 'note'
63
+ PAGE_TYPE = 'pageType'
64
+ PAGE_URL = 'pageUrl'
65
+ PARAMS = 'params'
66
+ PHONE_NUMBERS = 'phoneNumbers'
67
+ POSTED_TIME = 'postedTime'
68
+ PROFILE_FIELDS = 'profileFields'
69
+ PROFILE_URL = 'profileUrl'
70
+ RELATIONSHIP_STATUS = 'relationshipStatus'
71
+ RELEVANT_PROFILES = 'relevantProfiles'
72
+ RELEVANT_USER_IDS = 'relevantUserIds'
73
+ START_INDEX = 'startIndex'
74
+ STATUS = 'status'
75
+ TEMPLATE_PARAMS = 'templateParams'
76
+ TEXT = 'text'
77
+ # the json field for thumbnail url
78
+ THUMBNAIL_URL = 'thumbnailUrl'
79
+ TIME = 'time'
80
+ TITLE = 'title'
81
+ TOTAL_RESULTS = 'totalResults'
82
+ TYPE = 'type'
83
+ URL = 'url'
84
+ VALUE = 'value'
85
+ YOUTUBE_URL = 'youtubeUrl'
86
+ VIDEO_DURATION = 'durationInSec'
87
+
88
+ MESSAGE_FORMAT = "messageFormat";
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,13 @@
1
+ module Orkut
2
+ module Constants
3
+ module Group
4
+ ALL = '@all'
5
+ # Friends only (a collection)
6
+ FRIENDS = '@friends'
7
+ # The universal set of contacts (a collection)
8
+ PROXY_CONTACTS = '@proxy'
9
+ # User guid only
10
+ SELF = '@self'
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ module Orkut
2
+ module Constants
3
+ module InternalConstants
4
+ ORKUT_CLIENT_LIB_HEADER = 'X-Orkut-Client-Lib'
5
+ CONTENT_TYPE ='Content-Type'
6
+ JSON_CONTENT_TYPE = 'application/json'
7
+ USERID_ME = '@me'
8
+
9
+ module Values
10
+ ALBUMS = 'albums'
11
+ MEDIAITEMS = 'mediaitems'
12
+ PUBLIC_MESSAGE = 'public_message'
13
+ APP = '@app'
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,40 @@
1
+ module Orkut
2
+ module Constants
3
+ module MethodNames
4
+ ACL_CREATE = 'aclentries.create'
5
+ ACTIVITIES_GET = 'activities.get'
6
+ ALBUMS_CREATE = 'albums.create'
7
+ ALBUMS_DELETE = 'albums.delete'
8
+ ALBUMS_GET = 'albums.get'
9
+ ALBUMS_UPDATE = 'albums.update'
10
+
11
+ CAPTCHA_ANSWER = 'captcha.answer'
12
+
13
+ COMMENTS_CREATE = 'comments.create'
14
+ COMMENTS_DELETE = 'comments.delete'
15
+ COMMENTS_GET = 'comments.get'
16
+
17
+ CREATE_ACTIVITIES = 'activities.create'
18
+
19
+ FRIEND_REMOVE = 'people.removeFriend'
20
+ FRIEND_REQUEST_ACCEPT = 'people.acceptFriendRequest'
21
+ FRIEND_REQUEST_REJECT = 'people.rejectFriendRequest'
22
+ FRIEND_REQUEST_REVOKE = 'people.revokeFriendRequest'
23
+ FRIEND_REQUEST_SEND = 'people.sendFriendRequest'
24
+
25
+ MEDIAITEMS_CREATE = 'mediaitems.create'
26
+ MEDIAITEMS_DELETE = 'mediaitems.delete'
27
+ MEDIAITEMS_GET = 'mediaitems.get'
28
+ MEDIAITEMS_UPDATE = 'mediaitems.update'
29
+
30
+ MESSAGES_CREATE = 'messages.create'
31
+ MESSAGES_DELETE = 'messages.delete'
32
+ MESSAGES_GET = 'messages.get'
33
+
34
+ PEOPLE_GET = 'people.get'
35
+ PEOPLE_UPDATE = 'people.update'
36
+
37
+ VIDEOS_GET = 'videos.get'
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,45 @@
1
+ module Orkut
2
+ module Constants
3
+ module Params
4
+ module PageType
5
+ FIRST = 'first'
6
+ LAST = 'last'
7
+ NEXT = 'next'
8
+ PREV = 'prev'
9
+ end
10
+
11
+ module MessageFormat
12
+ NO_HTML = 'noHtml'
13
+ FULL_HTML = 'fullHtml'
14
+ PLAIN_TEXT = 'plainText'
15
+ end
16
+
17
+ ACLENTRY = 'aclentry'
18
+ ACTIVITY = 'activity'
19
+ ALBUM = 'album'
20
+ ALBUM_ID = 'albumId'
21
+ CAPTCHA_ANSWER = 'captchaAnswer'
22
+ CAPTCHA_TOKEN = 'captchaToken'
23
+ CAPTCHA_URL = 'captchaUrl'
24
+ COMMENT = 'comment'
25
+ COMMENT_ID = 'commentId'
26
+ COUNT = 'count'
27
+ FIELDS = 'fields'
28
+ GROUP_ID = 'groupId'
29
+ LAST_KEY = 'lastKey'
30
+ MEDIA_ITEM = 'mediaItem'
31
+ MEDIA_ITEM_ID = 'mediaItemId'
32
+ MESSAGE = 'message'
33
+ MSG_ID = 'msgId'
34
+ NOTIFICATION = 'notification'
35
+ OWNER_ID = 'ownerId'
36
+ PERSON = 'person'
37
+ PERSON_ID = 'personId'
38
+ RELEVANT_USER_IDS = 'relevantUserIds'
39
+ SORT_BY = 'sortBy'
40
+ TYPE = 'type'
41
+ UPDATED_BEFORE = 'updatedBefore'
42
+ USER_ID = 'userId'
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,60 @@
1
+ module Orkut
2
+ # Defines HTTP request methods
3
+ module Request
4
+
5
+ # Make a regular GET request using AccessToken
6
+ #
7
+ # @response = @token.get('/people')
8
+ # @response = @token.get('/people', { 'Accept'=>'application/xml' })
9
+ #
10
+ def get(path = nil, headers = {})
11
+ connection.get(verify_path(path), headers)
12
+ end
13
+
14
+ # Make a regular HEAD request using AccessToken
15
+ #
16
+ # @response = @token.head('/people')
17
+ #
18
+ def head(path = nil, headers = {})
19
+ connection.head(verify_path(path), headers)
20
+ end
21
+
22
+ # Make a regular POST request using AccessToken
23
+ #
24
+ # @response = @token.post('/people')
25
+ # @response = @token.post('/people', { :name => 'Bob', :email => 'bob@mailinator.com' })
26
+ # @response = @token.post('/people', { :name => 'Bob', :email => 'bob@mailinator.com' }, { 'Accept' => 'application/xml' })
27
+ # @response = @token.post('/people', nil, {'Accept' => 'application/xml' })
28
+ # @response = @token.post('/people', @person.to_xml, { 'Accept'=>'application/xml', 'Content-Type' => 'application/xml' })
29
+ #
30
+ def post(path = nil, body = '', headers = {})
31
+ connection.post(verify_path(path), body, headers)
32
+ end
33
+
34
+ # Make a regular PUT request using AccessToken
35
+ #
36
+ # @response = @token.put('/people/123')
37
+ # @response = @token.put('/people/123', { :name => 'Bob', :email => 'bob@mailinator.com' })
38
+ # @response = @token.put('/people/123', { :name => 'Bob', :email => 'bob@mailinator.com' }, { 'Accept' => 'application/xml' })
39
+ # @response = @token.put('/people/123', nil, { 'Accept' => 'application/xml' })
40
+ # @response = @token.put('/people/123', @person.to_xml, { 'Accept' => 'application/xml', 'Content-Type' => 'application/xml' })
41
+ #
42
+ def put(path = nil, body = '', headers = {})
43
+ connection.put(verify_path(path), body, headers)
44
+ end
45
+
46
+ # Make a regular DELETE request using AccessToken
47
+ #
48
+ # @response = @token.delete('/people/123')
49
+ # @response = @token.delete('/people/123', { 'Accept' => 'application/xml' })
50
+ #
51
+ def delete(path = nil, headers = {})
52
+ connection.delete(verify_path(path), headers)
53
+ end
54
+
55
+ def verify_path(path)
56
+ path ||= endpoint
57
+ path
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,25 @@
1
+ module Orkut
2
+ class Version
3
+
4
+ def self.major
5
+ 0
6
+ end
7
+
8
+ def self.minor
9
+ 0
10
+ end
11
+
12
+ def self.patch
13
+ 0
14
+ end
15
+
16
+ def self.pre
17
+ 1 #nil
18
+ end
19
+
20
+ def self.to_s
21
+ [major, minor, patch, pre].compact.join('.')
22
+ end
23
+
24
+ end
25
+ end
data/lib/orkut.rb ADDED
@@ -0,0 +1,24 @@
1
+ require 'orkut/client'
2
+ require 'orkut/config'
3
+
4
+ module Orkut
5
+ extend Config
6
+ class << self
7
+ # Alias for Orkut::Client.new
8
+ #
9
+ # @return [Orkut::Client]
10
+ def new(options={})
11
+ Orkut::Client.new(options)
12
+ end
13
+
14
+ # Delegate to Orkut::Client
15
+ def method_missing(method, *args, &block)
16
+ return super unless new.respond_to?(method)
17
+ new.send(method, *args, &block)
18
+ end
19
+
20
+ def respond_to?(method, include_private=false)
21
+ new.respond_to?(method, include_private) || super(method, include_private)
22
+ end
23
+ end
24
+ end
data/orkut.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "orkut/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'orkut'
7
+ s.version = Orkut::Version.to_s
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ['Umanni']
10
+ s.email = ['contato@umanni.com']
11
+ s.homepage = 'https://github.com/umanni/orkut'
12
+ s.summary = %q{Orkut API wrapper}
13
+ s.description = %q{A Ruby wrapper for the Orkut REST/RPC API.}
14
+ s.extra_rdoc_files = [
15
+ "LICENSE",
16
+ "README.rdoc"
17
+ ]
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
+ s.require_paths = ["lib"]
23
+
24
+ s.add_dependency 'omniauth', [">= 0.3.0"]
25
+ end
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: orkut
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Umanni
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-19 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: omniauth
16
+ requirement: &19747780 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.3.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *19747780
25
+ description: A Ruby wrapper for the Orkut REST/RPC API.
26
+ email:
27
+ - contato@umanni.com
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files:
31
+ - LICENSE
32
+ - README.rdoc
33
+ files:
34
+ - Gemfile
35
+ - LICENSE
36
+ - README.rdoc
37
+ - Rakefile
38
+ - lib/orkut.rb
39
+ - lib/orkut/api.rb
40
+ - lib/orkut/authenticatable.rb
41
+ - lib/orkut/base.rb
42
+ - lib/orkut/client.rb
43
+ - lib/orkut/client/messages.rb
44
+ - lib/orkut/client/timelines.rb
45
+ - lib/orkut/config.rb
46
+ - lib/orkut/connection.rb
47
+ - lib/orkut/constants/activity_type.rb
48
+ - lib/orkut/constants/fields.rb
49
+ - lib/orkut/constants/group.rb
50
+ - lib/orkut/constants/internal_constants.rb
51
+ - lib/orkut/constants/method_names.rb
52
+ - lib/orkut/constants/params.rb
53
+ - lib/orkut/request.rb
54
+ - lib/orkut/version.rb
55
+ - orkut.gemspec
56
+ homepage: https://github.com/umanni/orkut
57
+ licenses: []
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ requirements: []
75
+ rubyforge_project:
76
+ rubygems_version: 1.8.11
77
+ signing_key:
78
+ specification_version: 3
79
+ summary: Orkut API wrapper
80
+ test_files: []