actionwebservice 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|