Class: Wordpress::Blog
- Inherits:
-
Object
- Object
- Wordpress::Blog
- Includes:
- Loggable, ParamsCheck
- Defined in:
- lib/blog.rb
Instance Method Summary collapse
-
#delete(item) ⇒ Object
update.
- #get_page_list ⇒ Object
-
#get_post(post_id) ⇒ Object
initialize.
-
#initialize(params = {}) ⇒ Blog
constructor
A new instance of Blog.
-
#publish(item) ⇒ Object
recent_posts.
-
#recent_posts(number_of_posts) ⇒ Object
get_post.
-
#update(item) ⇒ Object
publish.
-
#upload_file(file) ⇒ Object
get_page_list.
Methods included from Loggable
Methods included from ParamsCheck
Constructor Details
#initialize(params = {}) ⇒ Blog
Returns a new instance of Blog.
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/blog.rb', line 11 def initialize(params = {}) @blog_uri = URI.parse(check_param(params, :blog_uri)) @xmlrpc_path = params[:xmlrpc_path] || "xmlrpc.php" @id = params[:blog_id] || 0 @user = check_param(params, :user) @password = check_param(params, :password) @client = XMLRPC::Client.new2(URI.join(@blog_uri.to_s, @xmlrpc_path).to_s) end |
Instance Method Details
#delete(item) ⇒ Object
update
61 62 63 64 65 66 67 68 69 70 |
# File 'lib/blog.rb', line 61 def delete(item) case item when Wordpress::Post return api_call("blogger.deletePost", "", item.id, @user, @password, true) when Wordpress::Page return blog_api_call("wp.deletePage", item.id) else raise "Unknown item type: #{item}" end end |
#get_page_list ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/blog.rb', line 72 def get_page_list page_list = blog_api_call("wp.getPages").collect do |struct| Wordpress::Page.from_struct(:wp, struct) end # link pages list with each other page_list.each do |page| page.parent = page_list.find{|p| p.id == page.parent_id} if page.parent_id end page_list end |
#get_post(post_id) ⇒ Object
initialize
25 26 27 |
# File 'lib/blog.rb', line 25 def get_post(post_id) Post.new(api_call("metaWeblog.getPost", post_id, @user, @password)) end |
#publish(item) ⇒ Object
recent_posts
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/blog.rb', line 35 def publish(item) process_images(item) unless item.images.nil? case item when Wordpress::Post item.id = blog_api_call("metaWeblog.newPost", item.to_struct(:metaWeblog), true).to_i when Wordpress::Page item.id = blog_api_call("wp.newPage", item.to_struct(:wp), true).to_i else raise "Unknown item type: #{item}" end item.published = true return item end |
#recent_posts(number_of_posts) ⇒ Object
get_post
29 30 31 32 33 |
# File 'lib/blog.rb', line 29 def recent_posts(number_of_posts) blog_api_call("metaWeblog.getRecentPosts", number_of_posts).collect do |struct| Post.from_struct(:metaWeblog, struct) end end |
#update(item) ⇒ Object
publish
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/blog.rb', line 49 def update(item) process_images(item) unless item.images.nil? case item when Post return api_call("metaWeblog.editPost", item.id, @user, @password, item.to_struct(:metaWeblog), item.published) when Page return api_call("wp.editPage", @id, item.id, @user, @password, item.to_struct(:wp), item.published) else raise "Unknown item type: #{item}" end end |
#upload_file(file) ⇒ Object
get_page_list
84 85 86 87 88 89 90 91 92 |
# File 'lib/blog.rb', line 84 def upload_file(file) struct = { :name => File.basename(file.path), :type => MimeMagic.by_magic(file).type, :bits => XMLRPC::Base64.new(File.open(file.path, "r").read), :overwrite => true } return blog_api_call("wp.uploadFile", struct) end |