Sha256: b9313b26a8709c36db2f356fc36b716f57340357285715696d94e277a0687efc

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

require 'oauth2'

require "wordpress-com/version"
require "wordpress-com/access_token"

class WordpressCom
  extend Forwardable
  attr_reader :client, :token
  def_delegators :@token, :request, :get, :post, :put, :delete

  def initialize(client_id, client_secret, token=nil)
    @client = OAuth2::Client.new(client_id, client_secret,
      :site          => 'https://public-api.wordpress.com/',
      :authorize_url => '/oauth2/authorize',
      :token_url     => '/oauth2/token')
    @token = AccessToken.from_hash(client, token) if token
  end

  def self.deserialize(data)
    self.new(*data)
  end

  def authorize_url(redirect_uri, opts={})
    opts[:redirect_uri] = @redirect_uri = redirect_uri
    client.auth_code.authorize_url(opts)
  end

  def get_token(code, redirect_uri=nil)
    redirect_uri ||= @redirect_uri
    @token = AccessToken.from_hash( @client,
      client.auth_code.get_token(code,
        :redirect_uri => redirect_uri,
        :parse => :json).to_hash)
  end

  def serialize
    [ client.id, client.secret, token.to_hash ]
  end

  def blog_id
    token['blog_id']
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wordpress-com-0.0.1 lib/wordpress-com.rb