diff --git a/app/helpers/posts_helper.rb b/app/helpers/posts_helper.rb
index 35e981a1c..d8a2bd17e 100644
--- a/app/helpers/posts_helper.rb
+++ b/app/helpers/posts_helper.rb
@@ -20,6 +20,6 @@ module PostsHelper
def post_iframe_url(post_id, opts={})
opts[:width] ||= 516
opts[:height] ||= 315
- "".html_safe
+ "".html_safe
end
end
diff --git a/app/presenters/o_embed_presenter.rb b/app/presenters/o_embed_presenter.rb
new file mode 100644
index 000000000..a5a312a3c
--- /dev/null
+++ b/app/presenters/o_embed_presenter.rb
@@ -0,0 +1,44 @@
+class OEmbedPresenter
+ include PostsHelper
+
+ def initialize(post, opts = {})
+ @post = post
+ @opts = opts
+ end
+
+ def to_json(opts={})
+ as_json(opts).to_json
+ end
+
+ def as_json(opts)
+ {
+ :provider_name => "Diaspora",
+ :provider_url => AppConfig[:pod_url],
+ :version => '1.0',
+ :title => post_title,
+ :author_name => post_author,
+ :author_url => post_author_url,
+ :width => @opts.fetch(:height, 516),
+ :height => @opts.fetch(:width, 320),
+ :html => iframe_html
+ }
+ end
+
+ private
+
+ def post_title
+ @post.text
+ end
+
+ def post_author
+ @post.author.name
+ end
+
+ def post_author_url
+ Rails.application.routes.url_helpers.person_url(@post.author)
+ end
+
+ def iframe_html
+ post_iframe_url(@post.id)
+ end
+end
\ No newline at end of file
diff --git a/spec/presenters/o_embed_presenter_spec.rb b/spec/presenters/o_embed_presenter_spec.rb
new file mode 100644
index 000000000..cb24c955d
--- /dev/null
+++ b/spec/presenters/o_embed_presenter_spec.rb
@@ -0,0 +1,6 @@
+require 'spec_helper'
+describe OEmbedPresenter do
+ it 'works' do
+ OEmbedPresenter.new(Factory(:status_message)).to_json.should_not be_nil
+ end
+end
\ No newline at end of file