actionwebservice 0.6.0 → 0.6.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/CHANGELOG +14 -0
- data/Rakefile +4 -4
- data/TODO +2 -3
- data/examples/metaWeblog/README +6 -5
- data/examples/metaWeblog/apis/blogger_api.rb +60 -0
- data/examples/metaWeblog/apis/blogger_service.rb +34 -0
- data/examples/metaWeblog/apis/meta_weblog_api.rb +67 -0
- data/examples/metaWeblog/apis/meta_weblog_service.rb +48 -0
- data/examples/metaWeblog/controllers/xmlrpc_controller.rb +16 -0
- data/lib/action_web_service/protocol/soap_protocol.rb +2 -1
- data/lib/action_web_service/test_invoke.rb +2 -2
- data/lib/action_web_service/vendor/ws/marshaling/soap_marshaling.rb +1 -1
- data/lib/action_web_service/vendor/ws/types.rb +3 -0
- data/test/ws/types_test.rb +2 -0
- metadata +16 -10
- data/examples/metaWeblog/blog_controller.rb +0 -127
data/CHANGELOG
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
*0.6.1* (22th March, 2005)
|
2
|
+
|
3
|
+
* Fix that method response QNames mismatched with that declared in the WSDL, makes SOAP::WSDLDriverFactory work against AWS again
|
4
|
+
|
5
|
+
* Fix that @request.env was being modified, instead, dup the value gotten from env
|
6
|
+
|
7
|
+
* Fix XML-RPC example to use :layered mode, so it works again
|
8
|
+
|
9
|
+
* Support casting '0' or 0 into false, and '1' or 1 into true, when expecting a boolean value
|
10
|
+
|
11
|
+
* Fix that SOAP fault response fault code values were not QName's #804
|
12
|
+
|
13
|
+
|
1
14
|
*0.6.0* (7th March, 2005)
|
2
15
|
|
3
16
|
* Add action_controller/test_invoke, used for integrating AWS with the Rails testing infrastructure
|
@@ -18,6 +31,7 @@
|
|
18
31
|
|
19
32
|
* Replace '::' with '..' in fully qualified type names for marshaling and WSDL. This improves interoperability with .NET, and closes #676.
|
20
33
|
|
34
|
+
|
21
35
|
*0.5.0* (24th February, 2005)
|
22
36
|
|
23
37
|
* lib/action_service/dispatcher*: replace "router" fragments with
|
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ require 'fileutils'
|
|
9
9
|
|
10
10
|
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
|
11
11
|
PKG_NAME = 'actionwebservice'
|
12
|
-
PKG_VERSION = '0.6.
|
12
|
+
PKG_VERSION = '0.6.1' + PKG_BUILD
|
13
13
|
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
14
14
|
PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
|
15
15
|
|
@@ -56,9 +56,9 @@ spec = Gem::Specification.new do |s|
|
|
56
56
|
s.rubyforge_project = "aws"
|
57
57
|
s.homepage = "http://www.rubyonrails.org"
|
58
58
|
|
59
|
-
s.add_dependency('actionpack', '
|
60
|
-
s.add_dependency('activerecord', '
|
61
|
-
s.add_dependency('activesupport', '
|
59
|
+
s.add_dependency('actionpack', '= 1.6.0' + PKG_BUILD)
|
60
|
+
s.add_dependency('activerecord', '= 1.9.0' + PKG_BUILD)
|
61
|
+
s.add_dependency('activesupport', '= 1.0.2' + PKG_BUILD)
|
62
62
|
|
63
63
|
s.has_rdoc = true
|
64
64
|
s.requirements << 'none'
|
data/TODO
CHANGED
data/examples/metaWeblog/README
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
= metaWeblog example
|
2
2
|
|
3
|
-
|
4
3
|
This example shows how one might begin to go about adding metaWeblog
|
5
4
|
(http://www.xmlrpc.com/metaWeblogApi) API support to a Rails-based
|
6
5
|
blogging application.
|
7
6
|
|
7
|
+
The example APIs are more verbose than you may want to make them, for documentation
|
8
|
+
reasons.
|
8
9
|
|
9
10
|
= Running
|
10
11
|
|
11
|
-
1. Copy
|
12
|
+
1. Copy the "apis" directory and its files into "app" in a Rails project.
|
12
13
|
|
14
|
+
2. Copy the "controllers" directory and its files into "app" in a Rails project
|
13
15
|
|
14
|
-
|
15
|
-
point it at http://localhost:3000/
|
16
|
-
editing blog posts.
|
16
|
+
3. Fire up a desktop blogging application (such as w.bloggar, MarsEdit, or BloGTK),
|
17
|
+
point it at http://localhost:3000/xmlrpc/api, and try creating or editing blog posts.
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#
|
2
|
+
# see the blogger API spec at http://www.blogger.com/developers/api/1_docs/
|
3
|
+
# note that the method signatures are subtly different to metaWeblog, they
|
4
|
+
# are not identical. take care to ensure you handle the different semantics
|
5
|
+
# properly if you want to support blogger API too, to get maximum compatibility.
|
6
|
+
#
|
7
|
+
|
8
|
+
module Blog
|
9
|
+
class Blog < ActionWebService::Struct
|
10
|
+
member :url, :string
|
11
|
+
member :blogid, :string
|
12
|
+
member :blogName, :string
|
13
|
+
end
|
14
|
+
|
15
|
+
class User < ActionWebService::Struct
|
16
|
+
member :nickname, :string
|
17
|
+
member :userid, :string
|
18
|
+
member :url, :string
|
19
|
+
member :email, :string
|
20
|
+
member :lastname, :string
|
21
|
+
member :firstname, :string
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# blogger
|
27
|
+
#
|
28
|
+
class BloggerAPI < ActionWebService::API::Base
|
29
|
+
inflect_names false
|
30
|
+
|
31
|
+
api_method :newPost, :returns => [:string], :expects => [
|
32
|
+
{:appkey=>:string},
|
33
|
+
{:blogid=>:string},
|
34
|
+
{:username=>:string},
|
35
|
+
{:password=>:string},
|
36
|
+
{:content=>:string},
|
37
|
+
{:publish=>:bool}
|
38
|
+
]
|
39
|
+
|
40
|
+
api_method :editPost, :returns => [:bool], :expects => [
|
41
|
+
{:appkey=>:string},
|
42
|
+
{:postid=>:string},
|
43
|
+
{:username=>:string},
|
44
|
+
{:password=>:string},
|
45
|
+
{:content=>:string},
|
46
|
+
{:publish=>:bool}
|
47
|
+
]
|
48
|
+
|
49
|
+
api_method :getUsersBlogs, :returns => [[Blog::Blog]], :expects => [
|
50
|
+
{:appkey=>:string},
|
51
|
+
{:username=>:string},
|
52
|
+
{:password=>:string}
|
53
|
+
]
|
54
|
+
|
55
|
+
api_method :getUserInfo, :returns => [Blog::User], :expects => [
|
56
|
+
{:appkey=>:string},
|
57
|
+
{:username=>:string},
|
58
|
+
{:password=>:string}
|
59
|
+
]
|
60
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'blogger_api'
|
2
|
+
|
3
|
+
class BloggerService < ActionWebService::Base
|
4
|
+
web_service_api BloggerAPI
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@postid = 0
|
8
|
+
end
|
9
|
+
|
10
|
+
def newPost(key, id, user, pw, content, publish)
|
11
|
+
$stderr.puts "id=#{id} user=#{user} pw=#{pw}, content=#{content.inspect} [#{publish}]"
|
12
|
+
(@postid += 1).to_s
|
13
|
+
end
|
14
|
+
|
15
|
+
def editPost(key, post_id, user, pw, content, publish)
|
16
|
+
$stderr.puts "id=#{post_id} user=#{user} pw=#{pw} content=#{content.inspect} [#{publish}]"
|
17
|
+
true
|
18
|
+
end
|
19
|
+
|
20
|
+
def getUsersBlogs(key, user, pw)
|
21
|
+
$stderr.puts "getting blogs for #{user}"
|
22
|
+
blog = Blog::Blog.new(
|
23
|
+
:url =>'http://blog',
|
24
|
+
:blogid => 'myblog',
|
25
|
+
:blogName => 'My Blog'
|
26
|
+
)
|
27
|
+
[blog]
|
28
|
+
end
|
29
|
+
|
30
|
+
def getUserInfo(key, user, pw)
|
31
|
+
$stderr.puts "getting user info for #{user}"
|
32
|
+
Blog::User.new(:nickname => 'user', :email => 'user@test.com')
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#
|
2
|
+
# here lie structures, cousins of those on http://www.xmlrpc.com/metaWeblog
|
3
|
+
# but they don't necessarily the real world reflect
|
4
|
+
# so if you do, find that your client complains:
|
5
|
+
# please tell, of problems you suffered through
|
6
|
+
#
|
7
|
+
|
8
|
+
module Blog
|
9
|
+
class Post < ActionWebService::Struct
|
10
|
+
member :title, :string
|
11
|
+
member :link, :string
|
12
|
+
member :description, :string
|
13
|
+
member :author, :string
|
14
|
+
member :category, :string
|
15
|
+
member :comments, :string
|
16
|
+
member :guid, :string
|
17
|
+
member :pubDate, :string
|
18
|
+
end
|
19
|
+
|
20
|
+
class Category < ActionWebService::Struct
|
21
|
+
member :description, :string
|
22
|
+
member :htmlUrl, :string
|
23
|
+
member :rssUrl, :string
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# metaWeblog
|
29
|
+
#
|
30
|
+
class MetaWeblogAPI < ActionWebService::API::Base
|
31
|
+
inflect_names false
|
32
|
+
|
33
|
+
api_method :newPost, :returns => [:string], :expects => [
|
34
|
+
{:blogid=>:string},
|
35
|
+
{:username=>:string},
|
36
|
+
{:password=>:string},
|
37
|
+
{:struct=>Blog::Post},
|
38
|
+
{:publish=>:bool}
|
39
|
+
]
|
40
|
+
|
41
|
+
api_method :editPost, :returns => [:bool], :expects => [
|
42
|
+
{:postid=>:string},
|
43
|
+
{:username=>:string},
|
44
|
+
{:password=>:string},
|
45
|
+
{:struct=>Blog::Post},
|
46
|
+
{:publish=>:bool},
|
47
|
+
]
|
48
|
+
|
49
|
+
api_method :getPost, :returns => [Blog::Post], :expects => [
|
50
|
+
{:postid=>:string},
|
51
|
+
{:username=>:string},
|
52
|
+
{:password=>:string},
|
53
|
+
]
|
54
|
+
|
55
|
+
api_method :getCategories, :returns => [[Blog::Category]], :expects => [
|
56
|
+
{:blogid=>:string},
|
57
|
+
{:username=>:string},
|
58
|
+
{:password=>:string},
|
59
|
+
]
|
60
|
+
|
61
|
+
api_method :getRecentPosts, :returns => [[Blog::Post]], :expects => [
|
62
|
+
{:blogid=>:string},
|
63
|
+
{:username=>:string},
|
64
|
+
{:password=>:string},
|
65
|
+
{:numberOfPosts=>:int},
|
66
|
+
]
|
67
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'meta_weblog_api'
|
2
|
+
|
3
|
+
class MetaWeblogService < ActionWebService::Base
|
4
|
+
web_service_api MetaWeblogAPI
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@postid = 0
|
8
|
+
end
|
9
|
+
|
10
|
+
def newPost(id, user, pw, struct, publish)
|
11
|
+
$stderr.puts "id=#{id} user=#{user} pw=#{pw}, struct=#{struct.inspect} [#{publish}]"
|
12
|
+
(@postid += 1).to_s
|
13
|
+
end
|
14
|
+
|
15
|
+
def editPost(post_id, user, pw, struct, publish)
|
16
|
+
$stderr.puts "id=#{post_id} user=#{user} pw=#{pw} struct=#{struct.inspect} [#{publish}]"
|
17
|
+
true
|
18
|
+
end
|
19
|
+
|
20
|
+
def getPost(post_id, user, pw)
|
21
|
+
$stderr.puts "get post #{post_id}"
|
22
|
+
Blog::Post.new(:title => 'hello world', :description => 'first post!')
|
23
|
+
end
|
24
|
+
|
25
|
+
def getCategories(id, user, pw)
|
26
|
+
$stderr.puts "categories for #{user}"
|
27
|
+
cat = Blog::Category.new(
|
28
|
+
:description => 'Tech',
|
29
|
+
:htmlUrl => 'http://blog/tech',
|
30
|
+
:rssUrl => 'http://blog/tech.rss')
|
31
|
+
[cat]
|
32
|
+
end
|
33
|
+
|
34
|
+
def getRecentPosts(id, user, pw, num)
|
35
|
+
$stderr.puts "recent #{num} posts for #{user} on blog #{id}"
|
36
|
+
post1 = Blog::Post.new(
|
37
|
+
:title => 'first post!',
|
38
|
+
:link => 'http://blog.xeraph.org/testOne.html',
|
39
|
+
:description => 'this is the first post'
|
40
|
+
)
|
41
|
+
post2 = Blog::Post.new(
|
42
|
+
:title => 'second post!',
|
43
|
+
:link => 'http://blog.xeraph.org/testTwo.html',
|
44
|
+
:description => 'this is the second post'
|
45
|
+
)
|
46
|
+
[post1, post2]
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#
|
2
|
+
# example controller implementing both blogger and metaWeblog APIs
|
3
|
+
# in a way that should be compatible with clients supporting both/either.
|
4
|
+
#
|
5
|
+
# test by pointing your client at http://URL/xmlrpc/api
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'meta_weblog_service'
|
9
|
+
require 'blogger_service'
|
10
|
+
|
11
|
+
class XmlrpcController < ApplicationController
|
12
|
+
web_service_dispatching_mode :layered
|
13
|
+
|
14
|
+
web_service :metaWeblog, MetaWeblogService.new
|
15
|
+
web_service :blogger, BloggerService.new
|
16
|
+
end
|
@@ -28,7 +28,7 @@ module ActionWebService # :nodoc:
|
|
28
28
|
else
|
29
29
|
return_value = nil
|
30
30
|
end
|
31
|
-
body = @encoder.encode_rpc_response(method_name, return_value)
|
31
|
+
body = @encoder.encode_rpc_response(method_name + 'Response', return_value)
|
32
32
|
Response.new(body, 'text/xml')
|
33
33
|
end
|
34
34
|
|
@@ -46,6 +46,7 @@ module ActionWebService # :nodoc:
|
|
46
46
|
return nil unless request.method == :post
|
47
47
|
soap_action = request.env['HTTP_SOAPACTION']
|
48
48
|
return nil unless soap_action
|
49
|
+
soap_action = soap_action.dup
|
49
50
|
soap_action.gsub!(/^"/, '')
|
50
51
|
soap_action.gsub!(/"$/, '')
|
51
52
|
soap_action.strip!
|
@@ -23,7 +23,7 @@ module WS
|
|
23
23
|
if param.value.is_a?(Exception)
|
24
24
|
detail = SOAP::Mapping::SOAPException.new(param.value)
|
25
25
|
soap_obj = SOAP::SOAPFault.new(
|
26
|
-
SOAP::
|
26
|
+
SOAP::SOAPQName.new('%s:%s' % [SOAP::SOAPNamespaceTag, 'Server']),
|
27
27
|
SOAP::SOAPString.new(param.value.to_s),
|
28
28
|
SOAP::SOAPString.new(self.class.name),
|
29
29
|
SOAP::Mapping.obj2soap(detail))
|
@@ -146,6 +146,9 @@ module WS
|
|
146
146
|
value.to_s
|
147
147
|
when :bool
|
148
148
|
return false if value.nil?
|
149
|
+
int_value = Integer(value) rescue nil
|
150
|
+
return true if int_value == 1
|
151
|
+
return false if int_value == 0
|
149
152
|
value = value.to_s
|
150
153
|
return true if value == 'true'
|
151
154
|
return false if value == 'false'
|
data/test/ws/types_test.rb
CHANGED
@@ -27,6 +27,8 @@ class TypesTest < Test::Unit::TestCase
|
|
27
27
|
assert_equal('50.0', @caster.cast(50.0, String))
|
28
28
|
assert_equal(true, @caster.cast('true', FalseClass))
|
29
29
|
assert_equal(false, @caster.cast('false', TrueClass))
|
30
|
+
assert_equal(true, @caster.cast(1, FalseClass))
|
31
|
+
assert_equal(false, @caster.cast(0, TrueClass))
|
30
32
|
assert_raises(TypeError) do
|
31
33
|
@caster.cast('yes', FalseClass)
|
32
34
|
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.8.
|
2
|
+
rubygems_version: 0.8.8
|
3
3
|
specification_version: 1
|
4
4
|
name: actionwebservice
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.6.
|
7
|
-
date: 2005-03-
|
6
|
+
version: 0.6.1
|
7
|
+
date: 2005-03-22
|
8
8
|
summary: Web service support for Action Pack.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -45,8 +45,14 @@ files:
|
|
45
45
|
- examples/googlesearch/delegated/search_controller.rb
|
46
46
|
- examples/googlesearch/direct/google_search_api.rb
|
47
47
|
- examples/googlesearch/direct/search_controller.rb
|
48
|
-
- examples/metaWeblog/
|
48
|
+
- examples/metaWeblog/apis
|
49
|
+
- examples/metaWeblog/controllers
|
49
50
|
- examples/metaWeblog/README
|
51
|
+
- examples/metaWeblog/apis/blogger_api.rb
|
52
|
+
- examples/metaWeblog/apis/blogger_service.rb
|
53
|
+
- examples/metaWeblog/apis/meta_weblog_api.rb
|
54
|
+
- examples/metaWeblog/apis/meta_weblog_service.rb
|
55
|
+
- examples/metaWeblog/controllers/xmlrpc_controller.rb
|
50
56
|
- lib/action_web_service
|
51
57
|
- lib/action_web_service.rb
|
52
58
|
- lib/action_web_service/api
|
@@ -134,9 +140,9 @@ dependencies:
|
|
134
140
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
135
141
|
requirements:
|
136
142
|
-
|
137
|
-
- "
|
143
|
+
- "="
|
138
144
|
- !ruby/object:Gem::Version
|
139
|
-
version: 1.
|
145
|
+
version: 1.6.0
|
140
146
|
version:
|
141
147
|
- !ruby/object:Gem::Dependency
|
142
148
|
name: activerecord
|
@@ -144,9 +150,9 @@ dependencies:
|
|
144
150
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
145
151
|
requirements:
|
146
152
|
-
|
147
|
-
- "
|
153
|
+
- "="
|
148
154
|
- !ruby/object:Gem::Version
|
149
|
-
version: 1.
|
155
|
+
version: 1.9.0
|
150
156
|
version:
|
151
157
|
- !ruby/object:Gem::Dependency
|
152
158
|
name: activesupport
|
@@ -154,7 +160,7 @@ dependencies:
|
|
154
160
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
155
161
|
requirements:
|
156
162
|
-
|
157
|
-
- "
|
163
|
+
- "="
|
158
164
|
- !ruby/object:Gem::Version
|
159
|
-
version: 1.0.
|
165
|
+
version: 1.0.2
|
160
166
|
version:
|
@@ -1,127 +0,0 @@
|
|
1
|
-
# point your client at http://project_url/blog/api to test
|
2
|
-
# this
|
3
|
-
|
4
|
-
# structures as defined by the metaWeblog/blogger
|
5
|
-
# specifications.
|
6
|
-
module Blog
|
7
|
-
class Enclosure < ActionWebService::Struct
|
8
|
-
member :url, :string
|
9
|
-
member :length, :int
|
10
|
-
member :type, :string
|
11
|
-
end
|
12
|
-
|
13
|
-
class Source < ActionWebService::Struct
|
14
|
-
member :url, :string
|
15
|
-
member :name, :string
|
16
|
-
end
|
17
|
-
|
18
|
-
class Post < ActionWebService::Struct
|
19
|
-
member :title, :string
|
20
|
-
member :link, :string
|
21
|
-
member :description, :string
|
22
|
-
member :author, :string
|
23
|
-
member :category, :string
|
24
|
-
member :comments, :string
|
25
|
-
member :enclosure, Enclosure
|
26
|
-
member :guid, :string
|
27
|
-
member :pubDate, :string
|
28
|
-
member :source, Source
|
29
|
-
end
|
30
|
-
|
31
|
-
class Blog < ActionWebService::Struct
|
32
|
-
member :url, :string
|
33
|
-
member :blogid, :string
|
34
|
-
member :blogName, :string
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
# skeleton metaWeblog API
|
39
|
-
class MetaWeblogAPI < ActionWebService::API::Base
|
40
|
-
inflect_names false
|
41
|
-
|
42
|
-
api_method :newPost, :returns => [:string], :expects => [
|
43
|
-
{:blogid=>:string},
|
44
|
-
{:username=>:string},
|
45
|
-
{:password=>:string},
|
46
|
-
{:struct=>Blog::Post},
|
47
|
-
{:publish=>:bool},
|
48
|
-
]
|
49
|
-
|
50
|
-
api_method :editPost, :returns => [:bool], :expects => [
|
51
|
-
{:postid=>:string},
|
52
|
-
{:username=>:string},
|
53
|
-
{:password=>:string},
|
54
|
-
{:struct=>Blog::Post},
|
55
|
-
{:publish=>:bool},
|
56
|
-
]
|
57
|
-
|
58
|
-
api_method :getPost, :returns => [Blog::Post], :expects => [
|
59
|
-
{:postid=>:string},
|
60
|
-
{:username=>:string},
|
61
|
-
{:password=>:string},
|
62
|
-
]
|
63
|
-
|
64
|
-
api_method :getUsersBlogs, :returns => [[Blog::Blog]], :expects => [
|
65
|
-
{:appkey=>:string},
|
66
|
-
{:username=>:string},
|
67
|
-
{:password=>:string},
|
68
|
-
]
|
69
|
-
|
70
|
-
api_method :getRecentPosts, :returns => [[Blog::Post]], :expects => [
|
71
|
-
{:blogid=>:string},
|
72
|
-
{:username=>:string},
|
73
|
-
{:password=>:string},
|
74
|
-
{:numberOfPosts=>:int},
|
75
|
-
]
|
76
|
-
end
|
77
|
-
|
78
|
-
class BlogController < ApplicationController
|
79
|
-
web_service_api MetaWeblogAPI
|
80
|
-
|
81
|
-
def initialize
|
82
|
-
@postid = 0
|
83
|
-
end
|
84
|
-
|
85
|
-
def newPost
|
86
|
-
$stderr.puts 'Creating post: username=%s password=%s struct=%s' % [
|
87
|
-
@params['username'],
|
88
|
-
@params['password'],
|
89
|
-
@params['struct'].inspect
|
90
|
-
]
|
91
|
-
(@postid += 1).to_s
|
92
|
-
end
|
93
|
-
|
94
|
-
def editPost
|
95
|
-
$stderr.puts 'Editing post: username=%s password=%s struct=%s' % [
|
96
|
-
@params['username'],
|
97
|
-
@params['password'],
|
98
|
-
@params['struct'].inspect
|
99
|
-
]
|
100
|
-
true
|
101
|
-
end
|
102
|
-
|
103
|
-
def getUsersBlogs
|
104
|
-
$stderr.puts "Returning user %s's blogs" % @params['username']
|
105
|
-
blog = Blog::Blog.new(
|
106
|
-
:url =>'http://blog.xeraph.org',
|
107
|
-
:blogid => 'sttm',
|
108
|
-
:blogName => 'slave to the machine'
|
109
|
-
)
|
110
|
-
[blog]
|
111
|
-
end
|
112
|
-
|
113
|
-
def getRecentPosts
|
114
|
-
$stderr.puts "Returning recent posts (%d requested)" % @params['numberOfPosts']
|
115
|
-
post1 = Blog::Post.new(
|
116
|
-
:title => 'first post!',
|
117
|
-
:link => 'http://blog.xeraph.org/testOne.html',
|
118
|
-
:description => 'this is the first post'
|
119
|
-
)
|
120
|
-
post2 = Blog::Post.new(
|
121
|
-
:title => 'second post!',
|
122
|
-
:link => 'http://blog.xeraph.org/testTwo.html',
|
123
|
-
:description => 'this is the second post'
|
124
|
-
)
|
125
|
-
[post1, post2]
|
126
|
-
end
|
127
|
-
end
|