wordpress-xmlrpc 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/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore ADDED
@@ -0,0 +1,25 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+
21
+ ## PROJECT::SPECIFIC
22
+ .bundle
23
+ wordpress
24
+ webrat.log
25
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem "mysql", "2.8.1"
4
+ gem "rspec", "1.3.0"
5
+ gem "cucumber", "0.8.3"
6
+ gem "capybara", "0.3.9"
7
+ gem "selenium-webdriver", "0.0.27"
8
+ gem "jeweler", "1.4.0"
9
+ gem "log4r", "1.1.8"
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Alexander Naumenko
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,17 @@
1
+ = wordpress-xmlrpc
2
+
3
+ This gem is very fresh and under hard development. Please contact me directly before forking it ;)
4
+
5
+ == Note on Patches/Pull Requests
6
+
7
+ * Fork the project.
8
+ * Make your feature addition or bug fix.
9
+ * Add tests for it. This is important so I don't break it in a
10
+ future version unintentionally.
11
+ * Commit, do not mess with rakefile, version, or history.
12
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
13
+ * Send me a pull request. Bonus points for topic branches.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2010 Alexander Naumenko. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,46 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+
7
+ Jeweler::Tasks.new do |gem|
8
+ gem.name = "wordpress-xmlrpc"
9
+ gem.summary = %Q{This gem is supposed to simplify wordpress xmlrpc interaction}
10
+ gem.description = %Q{Please do not fork it before directly contacint}
11
+ gem.email = "alecnmk@gmail.com"
12
+ gem.homepage = "http://github.com/alecnmk/wordpress-xmlrpc"
13
+ gem.authors = ["Alexander Naumenko"]
14
+ gem.add_development_dependency "rspec", ">= 1.2.9"
15
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
+ end
17
+ Jeweler::GemcutterTasks.new
18
+ rescue LoadError
19
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
20
+ end
21
+
22
+ require 'spec/rake/spectask'
23
+ Spec::Rake::SpecTask.new(:spec) do |spec|
24
+ spec.libs << 'lib' << 'spec'
25
+ spec.spec_files = FileList['spec/**/*_spec.rb']
26
+ end
27
+
28
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
29
+ spec.libs << 'lib' << 'spec'
30
+ spec.pattern = 'spec/**/*_spec.rb'
31
+ spec.rcov = true
32
+ end
33
+
34
+ task :spec => :check_dependencies
35
+
36
+ task :default => :spec
37
+
38
+ require 'rake/rdoctask'
39
+ Rake::RDocTask.new do |rdoc|
40
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
41
+
42
+ rdoc.rdoc_dir = 'rdoc'
43
+ rdoc.title = "wordpress-xmlrpc #{version}"
44
+ rdoc.rdoc_files.include('README*')
45
+ rdoc.rdoc_files.include('lib/**/*.rb')
46
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1,18 @@
1
+ Feature: Publish post
2
+ In order to make a posts
3
+ I will need to call my client on blog API
4
+
5
+ Background:
6
+ Given I have a blog control
7
+ And all posts and comments cleaned out
8
+
9
+ Scenario: Load wordpress home page
10
+ When I go to wordpress "home" page
11
+ Then I should see "wordpress"
12
+ When make following post:
13
+ | title | content | publish_date |
14
+ | hey ho | this is my first post | 01.08.2010 |
15
+ And I go to wordpress "home" page
16
+ Then I should see "hey ho"
17
+ And I should see "this is my first post"
18
+ And I should see "Posted on August 1, 2010 by admin"
@@ -0,0 +1,28 @@
1
+ When /^I go to wordpress "([^\"]*)" page$/ do |page|
2
+ case page
3
+ when "home"
4
+ visit("/")
5
+ else
6
+ raise "Undefined page #{page}"
7
+ end
8
+ end
9
+
10
+ When /^I wait for (\d+) seconds+$/ do |seconds|
11
+ sleep(seconds.to_i)
12
+ end
13
+
14
+ Then /^I should see "([^\"]*)"$/ do |expected_content|
15
+ page.should have_content(expected_content)
16
+ end
17
+
18
+ Given /^I have a blog control$/ do
19
+ @blog = Wordpress::Blog.new(:host => "http://localhost", :user => "admin", :password => "wordpress-xmlrpc")
20
+ end
21
+
22
+ When /^make following post:$/ do |table|
23
+ table.hashes.each do |hash|
24
+ hash['publish_date'] = Date.parse(hash.delete('publish_date')) if hash['publish_date']
25
+ post = Wordpress::Post.new(hash)
26
+ @blog.publish(post)
27
+ end
28
+ end
@@ -0,0 +1,7 @@
1
+ Given /^all posts and comments cleaned out$/ do
2
+ mysql = Mysql.new("localhost", "root", "", "wordpress_xmlrpc")
3
+ mysql.query("delete from wp_posts")
4
+ mysql.query("delete from wp_postmeta")
5
+ mysql.query("delete from wp_comments")
6
+ mysql.query("delete from wp_commentmeta")
7
+ end
@@ -0,0 +1,14 @@
1
+ require 'capybara/cucumber'
2
+ require 'selenium/webdriver'
3
+
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
5
+ require 'wordpress-xmlrpc'
6
+
7
+ require 'mysql'
8
+
9
+ Capybara.default_driver = :selenium
10
+ Capybara.app_host = "http://localhost"
11
+ Capybara.default_selector = :css
12
+ Capybara.default_wait_time = 3
13
+ Capybara.ignore_hidden_elements = true
14
+
data/lib/blog.rb ADDED
@@ -0,0 +1,61 @@
1
+ require 'xmlrpc/client'
2
+ require 'params_check'
3
+
4
+ module Wordpress
5
+ class Blog
6
+ include ParamsCheck
7
+ include Loggable
8
+
9
+ def initialize(params = {})
10
+ @blog_uri = URI.parse(check_param(params, :blog_uri))
11
+
12
+ @xmlrpc_path = params[:xmlrpc_path] || "xmlrpc"
13
+
14
+ @id = params[:blog_id] || 0
15
+
16
+ @user = check_param(params, :user)
17
+
18
+ @password = check_param(params, :password)
19
+
20
+ @client = XMLRPC::Client.new2(URI.join(@blog_uri.to_s, @xmlrpc_path).to_s)
21
+ end #initialize
22
+
23
+ def get_post(post_id)
24
+ Post.new(api_call("metaWeblog.getPost", post_id, @user, @password))
25
+ end #get_post
26
+
27
+ def recent_posts(number_of_posts)
28
+ blog_api_call("metaWeblog.getRecentPosts", number_of_posts).collect do |struct|
29
+ Post.from_struct(struct)
30
+ end
31
+ end #recent_posts
32
+
33
+ def publish(post)
34
+ post.id = blog_api_call("metaWeblog.newPost", post.to_struct, true).to_i
35
+ post.published = true
36
+ end #publish
37
+
38
+ def update_post(post)
39
+ return api_call("metaWeblog.editPost", post.id, @user, @password, post.to_struct, post.published)
40
+ end #update_post
41
+
42
+ private
43
+ def api_call(method_name, *args)
44
+ begin
45
+ return @client.call(method_name, *args)
46
+ rescue XMLRPC::FaultException
47
+ log.log_exception "Error while calling #{method_name}", $!
48
+ raise APICallException, "Error while calling #{method_name}"
49
+ end
50
+ end #api_call
51
+
52
+ def blog_api_call(method_name, *args)
53
+ begin
54
+ return @client.call(method_name, @id, @user, @password, *args)
55
+ rescue XMLRPC::FaultException
56
+ log.log_exception "Error while calling #{method_name}", $!
57
+ raise APICallException, "Error while calling #{method_name}"
58
+ end
59
+ end #call_client
60
+ end
61
+ end
data/lib/exceptions.rb ADDED
@@ -0,0 +1,3 @@
1
+ module Wordpress
2
+ class APICallException < StandardError; end
3
+ end
data/lib/loggable.rb ADDED
@@ -0,0 +1,20 @@
1
+ require 'log4r'
2
+ require 'pp'
3
+
4
+ module Loggable
5
+ Log4r::Logger.class_eval do
6
+ define_method :log_exception do |message, exception|
7
+ error {"#{message} (#{exception.message})"}
8
+ debug {exception.backtrace.pretty_inspect}
9
+ end
10
+ end
11
+
12
+ def self.included(mod)
13
+ @@log = Log4r::Logger.new mod.name
14
+ @@log.outputters = Log4r::Outputter.stdout
15
+ end #included
16
+
17
+ def log
18
+ @@log
19
+ end #log
20
+ end
@@ -0,0 +1,6 @@
1
+ module ParamsCheck
2
+ def check_param(params, param)
3
+ raise ArgumentError, ":#{param} param is required" unless params[param]
4
+ params[param]
5
+ end #check_and_assign
6
+ end
data/lib/post.rb ADDED
@@ -0,0 +1,58 @@
1
+ module Wordpress
2
+ class Post
3
+ ATTRIBUTE_MATCHES = {
4
+ :title => :title,
5
+ :content => :description,
6
+ :excerpt => :mt_excerpt,
7
+ :creation_date => :dateCreated,
8
+ :id => :postid
9
+ }
10
+
11
+ attr_accessor(
12
+ :id,
13
+ :title,
14
+ :content,
15
+ :excerpt,
16
+ :creation_date,
17
+ :published
18
+ )
19
+
20
+ def initialize(attributes = {})
21
+ attributes.each do |attribute, value|
22
+ accessor_name = "#{attribute}="
23
+ send(accessor_name, value) if respond_to?(accessor_name)
24
+ end
25
+ end #initialize
26
+
27
+ def self.from_struct(struct)
28
+ post = Post.new
29
+ ATTRIBUTE_MATCHES.each do |post_attribute, struct_attribute|
30
+ post.send("#{post_attribute}=", struct[struct_attribute])
31
+ end
32
+ post.published = struct[:post_state] == "publish"
33
+ post
34
+ end #self.from_struct
35
+
36
+ def to_struct
37
+ struct = {}
38
+ ATTRIBUTE_MATCHES.each do |post_attribute, struct_attribute|
39
+ value = self.send(post_attribute)
40
+ struct[struct_attribute] = value if value
41
+ end
42
+ struct
43
+ end #to_struct
44
+
45
+ def creation_date=(value)
46
+ case value
47
+ when String
48
+ @creation_date = Date.parse(value)
49
+ when Date
50
+ @creation_date = value
51
+ when nil
52
+ @creation_date = value
53
+ else
54
+ raise ArgumentError, "Date or String expected instead of #{value.class.name}"
55
+ end
56
+ end #publish_date=
57
+ end
58
+ end
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+
6
+ require 'loggable'
7
+
8
+ require 'exceptions'
9
+ require 'blog'
10
+ require 'post'
11
+
12
+
13
+
data/spec/blog_spec.rb ADDED
@@ -0,0 +1,113 @@
1
+ require 'spec_helper'
2
+
3
+ describe Wordpress::Blog do
4
+ describe "initialize" do
5
+ before(:each) do
6
+ @valid_params = {
7
+ :blog_uri => "http://localhost",
8
+ :user => "admin",
9
+ :password => "password"
10
+ }
11
+ end
12
+
13
+ it "should require error without host param provided" do
14
+ @valid_params.delete :blog_uri
15
+ lambda{
16
+ Wordpress::Blog.new(@valid_params)
17
+ }.should raise_error ArgumentError, ":blog_uri param is required"
18
+ end
19
+
20
+ it "should raise error without user param provided" do
21
+ @valid_params.delete :user
22
+ lambda{
23
+ Wordpress::Blog.new(@valid_params)
24
+ }.should raise_error ArgumentError, ":user param is required"
25
+ end
26
+
27
+ it "should raise error without password param provided" do
28
+ @valid_params.delete :password
29
+ lambda{
30
+ Wordpress::Blog.new(@valid_params)
31
+ }.should raise_error ArgumentError, ":password param is required"
32
+ end
33
+
34
+ it "should require valid blog URI" do
35
+ lambda{
36
+ Wordpress::Blog.new(:blog_uri => "invalid uri")
37
+ }.should raise_error URI::InvalidURIError
38
+ end
39
+
40
+ it "should create new blog instance with valid host param provided" do
41
+ blog = Wordpress::Blog.new(@valid_params)
42
+ blog.should_not be_nil
43
+ end
44
+ end
45
+
46
+ describe "api calls" do
47
+ before(:each) do
48
+ @client_mock = mock("client")
49
+ XMLRPC::Client.should_receive(:new2).with("http://localhost/xmlrpc").and_return(@client_mock)
50
+
51
+ @blog = Wordpress::Blog.new(
52
+ :blog_uri => "http://localhost",
53
+ :user => "admin",
54
+ :password => "wordpress-xmlrpc",
55
+ :blog_id => 0
56
+ )
57
+ end
58
+
59
+ describe "publish" do
60
+ it "should make appropriate call to xmlrpc api" do
61
+
62
+ post = Wordpress::Post.new(
63
+ :title => "Hey ho",
64
+ :content => "Content",
65
+ :excerpt => "Excerpt",
66
+ :publish_date => Date.parse("01.08.2010"))
67
+
68
+ @client_mock.should_receive(:call).with("metaWeblog.newPost", 0, "admin", "wordpress-xmlrpc", post.to_struct, true).and_return("123")
69
+
70
+ @blog.publish(post).should be_true
71
+ post.id.should == 123
72
+ post.published.should be_true
73
+ end
74
+ end
75
+
76
+ describe "recent_posts" do
77
+ it "should make appropriate call to xmlrpc api and return list of posts" do
78
+ post_structs = (1..10).collect do |index|
79
+ {
80
+ :title => "Post #{index}"
81
+ }
82
+ end
83
+
84
+ @client_mock.should_receive(:call).with("metaWeblog.getRecentPosts", 0, "admin", "wordpress-xmlrpc", 10).and_return(post_structs)
85
+
86
+ recent_posts = @blog.recent_posts(10)
87
+ recent_posts.size.should == 10
88
+ recent_posts[0].title.should == "Post 1"
89
+ end
90
+ end
91
+
92
+ describe "get_post" do
93
+ it "should return post for provided post_id" do
94
+ post_struct = {
95
+ :title => "Post title"
96
+ }
97
+ @client_mock.should_receive(:call).with("metaWeblog.getPost", 54, "admin", "wordpress-xmlrpc").and_return(post_struct)
98
+ post = @blog.get_post(54)
99
+ post.should_not be_nil
100
+ post.title.should == "Post title"
101
+ end
102
+ end
103
+
104
+ describe "update_post" do
105
+ it "should submit post update" do
106
+ post = Wordpress::Post.new(:id => 54, :title => "Updated post", :published => true)
107
+ @client_mock.should_receive(:call).with("metaWeblog.editPost", 54, "admin", "wordpress-xmlrpc", post.to_struct, true).and_return(true)
108
+ @blog.update_post(post).should be_true
109
+ end
110
+ end
111
+ end
112
+ end
113
+
data/spec/post_spec.rb ADDED
@@ -0,0 +1,91 @@
1
+ require 'spec_helper'
2
+
3
+ describe Wordpress::Post do
4
+ describe "initialize" do
5
+ it "should populate title from params" do
6
+ post = Wordpress::Post.new(:title => "Hey ho")
7
+ post.title.should == "Hey ho"
8
+ end
9
+ it "should populate content from params" do
10
+ post = Wordpress::Post.new(:content => "This is a content")
11
+ post.content.should == "This is a content"
12
+ end
13
+ end
14
+
15
+ describe "to_struct" do
16
+ it "should return struct hash reflecting all post params" do
17
+ post = Wordpress::Post.new(
18
+ :id => 99,
19
+ :title => "Post title",
20
+ :content => "Post content",
21
+ :excerpt => "Post excerpt",
22
+ :creation_date => Date.parse("01.08.2010")
23
+ )
24
+ post.to_struct.should == {
25
+ :postid => 99,
26
+ :title => "Post title",
27
+ :description => "Post content",
28
+ :mt_excerpt => "Post excerpt",
29
+ :dateCreated => Date.parse("01.08.2010")
30
+ }
31
+ end
32
+ it "should return incomplete struct for params without params that are nil" do
33
+ post = Wordpress::Post.new(:title => "Post title")
34
+ post.to_struct.should == {
35
+ :title => "Post title"
36
+ }
37
+ end
38
+ end
39
+
40
+ describe "from_struct" do
41
+ it "should create post from RPC struct" do
42
+ post = Wordpress::Post.from_struct({
43
+ :postid => 99,
44
+ :title => "Post title",
45
+ :description => "Post content",
46
+ :mt_excerpt => "Post excerpt",
47
+ :dateCreated => "01.08.2010",
48
+ :post_state => "publish"
49
+ })
50
+ post.id.should == 99
51
+ post.title.should == "Post title"
52
+ post.content.should == "Post content"
53
+ post.excerpt.should == "Post excerpt"
54
+ post.creation_date.should == Date.parse("01.08.2010")
55
+ post.published.should be_true
56
+ end
57
+ end
58
+
59
+ describe "creation_date=" do
60
+ before(:each) do
61
+ @post = Wordpress::Post.new
62
+ end
63
+
64
+ it "should convert string to date" do
65
+ @post.creation_date = "01.08.2010"
66
+ @post.creation_date.should == Date.parse("01.08.2010")
67
+ end
68
+
69
+ it "should assign date as is if kind_of? Date provided" do
70
+ date = Date.parse("01.08.2010")
71
+ @post.creation_date = date
72
+ @post.creation_date.should == date
73
+ end
74
+
75
+ it "should raise error if string could not be parsed to date" do
76
+ lambda{
77
+ @post.creation_date = "abracadabra"
78
+ }.should raise_error ArgumentError, "invalid date"
79
+ end
80
+
81
+ it "should raise exception if object is not a string and not a date" do
82
+ lambda{
83
+ @post.creation_date = Integer(10)
84
+ }.should raise_error ArgumentError, "Date or String expected instead of Fixnum"
85
+ end
86
+ end
87
+
88
+
89
+
90
+ end
91
+
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,18 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+
4
+ # to avoid logging while executing tests we need to preload bundled gems
5
+ # and set log level to FATAL
6
+ require 'rubygems'
7
+ require 'bundler/setup'
8
+ require 'log4r'
9
+ # Log4r::Logger.root.level = Log4r::FATAL
10
+
11
+ require 'spec'
12
+ require 'spec/autorun'
13
+
14
+ require 'wordpress-xmlrpc'
15
+
16
+ Spec::Runner.configure do |config|
17
+
18
+ end
@@ -0,0 +1,67 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{wordpress-xmlrpc}
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Alexander Naumenko"]
12
+ s.date = %q{2010-09-15}
13
+ s.description = %q{Please do not fork it before directly contacint}
14
+ s.email = %q{alecnmk@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "Gemfile",
23
+ "LICENSE",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "features/publish.feature",
28
+ "features/step_definitions/basic_steps.rb",
29
+ "features/step_definitions/mysql_steps.rb",
30
+ "features/support/env.rb",
31
+ "lib/blog.rb",
32
+ "lib/exceptions.rb",
33
+ "lib/loggable.rb",
34
+ "lib/params_check.rb",
35
+ "lib/post.rb",
36
+ "lib/wordpress-xmlrpc.rb",
37
+ "spec/blog_spec.rb",
38
+ "spec/post_spec.rb",
39
+ "spec/spec.opts",
40
+ "spec/spec_helper.rb",
41
+ "wordpress-xmlrpc.gemspec"
42
+ ]
43
+ s.homepage = %q{http://github.com/alecnmk/wordpress-xmlrpc}
44
+ s.rdoc_options = ["--charset=UTF-8"]
45
+ s.require_paths = ["lib"]
46
+ s.rubygems_version = %q{1.3.7}
47
+ s.summary = %q{This gem is supposed to simplify wordpress xmlrpc interaction}
48
+ s.test_files = [
49
+ "spec/spec_helper.rb",
50
+ "spec/blog_spec.rb",
51
+ "spec/post_spec.rb"
52
+ ]
53
+
54
+ if s.respond_to? :specification_version then
55
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
56
+ s.specification_version = 3
57
+
58
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
60
+ else
61
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
62
+ end
63
+ else
64
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
65
+ end
66
+ end
67
+
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wordpress-xmlrpc
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Alexander Naumenko
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-09-15 00:00:00 +03:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rspec
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 13
30
+ segments:
31
+ - 1
32
+ - 2
33
+ - 9
34
+ version: 1.2.9
35
+ type: :development
36
+ version_requirements: *id001
37
+ description: Please do not fork it before directly contacint
38
+ email: alecnmk@gmail.com
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files:
44
+ - LICENSE
45
+ - README.rdoc
46
+ files:
47
+ - .document
48
+ - .gitignore
49
+ - Gemfile
50
+ - LICENSE
51
+ - README.rdoc
52
+ - Rakefile
53
+ - VERSION
54
+ - features/publish.feature
55
+ - features/step_definitions/basic_steps.rb
56
+ - features/step_definitions/mysql_steps.rb
57
+ - features/support/env.rb
58
+ - lib/blog.rb
59
+ - lib/exceptions.rb
60
+ - lib/loggable.rb
61
+ - lib/params_check.rb
62
+ - lib/post.rb
63
+ - lib/wordpress-xmlrpc.rb
64
+ - spec/blog_spec.rb
65
+ - spec/post_spec.rb
66
+ - spec/spec.opts
67
+ - spec/spec_helper.rb
68
+ - wordpress-xmlrpc.gemspec
69
+ has_rdoc: true
70
+ homepage: http://github.com/alecnmk/wordpress-xmlrpc
71
+ licenses: []
72
+
73
+ post_install_message:
74
+ rdoc_options:
75
+ - --charset=UTF-8
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ hash: 3
84
+ segments:
85
+ - 0
86
+ version: "0"
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ hash: 3
93
+ segments:
94
+ - 0
95
+ version: "0"
96
+ requirements: []
97
+
98
+ rubyforge_project:
99
+ rubygems_version: 1.3.7
100
+ signing_key:
101
+ specification_version: 3
102
+ summary: This gem is supposed to simplify wordpress xmlrpc interaction
103
+ test_files:
104
+ - spec/spec_helper.rb
105
+ - spec/blog_spec.rb
106
+ - spec/post_spec.rb