blogrpc 1.0.0 → 1.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.
- checksums.yaml +7 -0
- data/Gemfile +4 -7
- data/Gemfile.lock +54 -12
- data/README.rdoc +30 -15
- data/Rakefile +2 -4
- data/blogrpc.gemspec +18 -14
- data/lib/blogrpc.rb +1 -1
- data/test/helper.rb +3 -24
- data/test/test_blogapi.rb +2 -2
- data/test/test_rpc_handler_method_definitions.rb +2 -2
- metadata +44 -39
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f80eb33c495db35d40812513355afc186e3cbb77
|
4
|
+
data.tar.gz: 2b32f521a985baca6786bee98f0a46b68a651641
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d4c922ffd55e435a3aa32f6c39a7b528a812ae866a7df436b5d6c1c01d532a12ce28a41449afaf1a07cd93e9aa5321155b4e9a8471e2d37416f96a99187c066e
|
7
|
+
data.tar.gz: de2f9864c9a5e4f052ff6bc03c953c59d596703f75add45fa5ce6e2170876758d17a443b0f26ed7b59e4d9f350c0328c637ea7dc444cc2ed0faacb453cd974de
|
data/Gemfile
CHANGED
@@ -1,16 +1,13 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
|
-
|
6
|
-
gem "builder", "~> 3.0.0"
|
7
2
|
|
3
|
+
gem "builder", ">= 3.1"
|
8
4
|
|
9
5
|
# Add dependencies to develop your gem here.
|
10
6
|
# Include everything needed to run rake, tests, features, etc.
|
11
7
|
group :development do
|
8
|
+
gem 'minitest'
|
12
9
|
gem "rdoc", "~> 3.12"
|
13
|
-
gem "jeweler",
|
14
|
-
gem "flexmock"
|
10
|
+
gem "jeweler", '~> 2', '>= 2.1.2'
|
11
|
+
gem "flexmock"
|
15
12
|
gem "rack-test"
|
16
13
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,28 +1,70 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
addressable (2.5.0)
|
5
|
+
public_suffix (~> 2.0, >= 2.0.2)
|
6
|
+
builder (3.2.2)
|
7
|
+
descendants_tracker (0.0.4)
|
8
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
9
|
+
faraday (0.9.2)
|
10
|
+
multipart-post (>= 1.2, < 3)
|
11
|
+
flexmock (2.3.4)
|
12
|
+
git (1.3.0)
|
13
|
+
github_api (0.11.3)
|
14
|
+
addressable (~> 2.3)
|
15
|
+
descendants_tracker (~> 0.0.1)
|
16
|
+
faraday (~> 0.8, < 0.10)
|
17
|
+
hashie (>= 1.2)
|
18
|
+
multi_json (>= 1.7.5, < 2.0)
|
19
|
+
nokogiri (~> 1.6.0)
|
20
|
+
oauth2
|
21
|
+
hashie (3.4.6)
|
22
|
+
highline (1.7.8)
|
23
|
+
jeweler (2.1.2)
|
24
|
+
builder
|
25
|
+
bundler (>= 1.0)
|
9
26
|
git (>= 1.2.5)
|
27
|
+
github_api (~> 0.11.0)
|
28
|
+
highline (>= 1.6.15)
|
29
|
+
nokogiri (>= 1.5.10)
|
10
30
|
rake
|
11
31
|
rdoc
|
12
|
-
|
13
|
-
|
32
|
+
semver
|
33
|
+
json (1.8.3)
|
34
|
+
jwt (1.5.6)
|
35
|
+
mini_portile2 (2.1.0)
|
36
|
+
minitest (5.9.1)
|
37
|
+
multi_json (1.12.1)
|
38
|
+
multi_xml (0.5.5)
|
39
|
+
multipart-post (2.0.0)
|
40
|
+
nokogiri (1.6.8.1)
|
41
|
+
mini_portile2 (~> 2.1.0)
|
42
|
+
oauth2 (1.2.0)
|
43
|
+
faraday (>= 0.8, < 0.10)
|
44
|
+
jwt (~> 1.0)
|
45
|
+
multi_json (~> 1.3)
|
46
|
+
multi_xml (~> 0.5)
|
47
|
+
rack (>= 1.2, < 3)
|
48
|
+
public_suffix (2.0.4)
|
49
|
+
rack (2.0.1)
|
14
50
|
rack-test (0.6.1)
|
15
51
|
rack (>= 1.0)
|
16
|
-
rake (
|
17
|
-
rdoc (3.12)
|
52
|
+
rake (11.3.0)
|
53
|
+
rdoc (3.12.2)
|
18
54
|
json (~> 1.4)
|
55
|
+
semver (1.0.1)
|
56
|
+
thread_safe (0.3.5)
|
19
57
|
|
20
58
|
PLATFORMS
|
21
59
|
ruby
|
22
60
|
|
23
61
|
DEPENDENCIES
|
24
|
-
builder (
|
25
|
-
flexmock
|
26
|
-
jeweler (~> 1.
|
62
|
+
builder (>= 3.1)
|
63
|
+
flexmock
|
64
|
+
jeweler (~> 2, >= 2.1.2)
|
65
|
+
minitest
|
27
66
|
rack-test
|
28
67
|
rdoc (~> 3.12)
|
68
|
+
|
69
|
+
BUNDLED WITH
|
70
|
+
1.13.1
|
data/README.rdoc
CHANGED
@@ -5,29 +5,44 @@ Your application can then be used with blog clients like BlogJet and MarsEdit.
|
|
5
5
|
|
6
6
|
== Quickly defining a blog RPC handler
|
7
7
|
|
8
|
-
|
8
|
+
Define your blog handler right in the rackup file:
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
10
|
+
rpc_endpoint = BlogRPC.generate_endpoint do | handler |
|
11
|
+
handler.rpc "mt.publishPost", :in => [:int, :string, :string], :out => :bool do | postid, user, pw |
|
12
|
+
login!(user, pw)
|
13
|
+
get_entry(postid).update_attributes :draft => false
|
14
|
+
true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
run rpc_endpoint
|
17
19
|
|
18
|
-
|
20
|
+
or as a separate class:
|
21
|
+
|
22
|
+
class MyHandler < BlogRPC::BasicHandler
|
23
|
+
rpc "mt.publishPost", :in => [:int, :string, :string], :out => :bool do | postid, user, pw |
|
24
|
+
login!(user, pw)
|
25
|
+
get_entry(postid).update_attributes :draft => false
|
26
|
+
true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
rpc_endpoint = BlogRPC::RackApp.new(MyHandler.new)
|
31
|
+
run rpc_endpoint
|
19
32
|
|
20
33
|
|
21
34
|
== More involved examples
|
22
35
|
|
23
|
-
The gem consists of two parts. The first part is a Rack application that will handle XML-RPC requests and respond to them. It
|
24
|
-
|
36
|
+
The gem consists of two parts. The first part is a Rack application that will handle XML-RPC requests and respond to them. It's primary role is
|
37
|
+
an adapter between the old Ruby's XML-RPC library that ships with Ruby and the more modern Rack infrastructure.
|
38
|
+
|
39
|
+
It handles things like wrapping exceptions properly, detecting the needed parameters and configuring all of the IO so that Ruby's XML-RPC facilities can get at it.
|
25
40
|
You use it like this:
|
26
41
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
42
|
+
rpc_endpoint = BlogRPC::RackApp.new(MyBlogHandler.new)
|
43
|
+
rpc_endpoint.blog_url = "http://site.com"
|
44
|
+
rpc_endpoint.rpc_endpoint_url = "/secret-rpc-url.xml"
|
45
|
+
rpc_endpoint.call(env)
|
31
46
|
|
32
47
|
The BlogHandler object should be a more or less complete subclass of BlogHandler that you provide. When the RPC application receives a GET request
|
33
48
|
it will respond with the RSD fragment that will auto-configure your blogging client (like MarsEdit or BlogJet).
|
data/Rakefile
CHANGED
@@ -27,10 +27,8 @@ end
|
|
27
27
|
Jeweler::RubygemsDotOrgTasks.new
|
28
28
|
|
29
29
|
require 'rake/testtask'
|
30
|
-
Rake::TestTask.new
|
31
|
-
|
32
|
-
test.pattern = 'test/**/test_*.rb'
|
33
|
-
test.verbose = true
|
30
|
+
Rake::TestTask.new do |t|
|
31
|
+
t.test_files = FileList['test/**/test_*.rb']
|
34
32
|
end
|
35
33
|
|
36
34
|
task :default => :test
|
data/blogrpc.gemspec
CHANGED
@@ -2,14 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: blogrpc 1.0.1 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = "blogrpc"
|
8
|
-
s.version = "1.0.
|
9
|
+
s.version = "1.0.1"
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
11
13
|
s.authors = ["Julik Tarkhanov"]
|
12
|
-
s.date = "
|
14
|
+
s.date = "2016-11-12"
|
13
15
|
s.email = "me@julik.nl"
|
14
16
|
s.extra_rdoc_files = [
|
15
17
|
"LICENSE.txt",
|
@@ -34,31 +36,33 @@ Gem::Specification.new do |s|
|
|
34
36
|
]
|
35
37
|
s.homepage = "http://github.com/julik/blogrpc"
|
36
38
|
s.licenses = ["MIT"]
|
37
|
-
s.
|
38
|
-
s.rubygems_version = "1.8.24"
|
39
|
+
s.rubygems_version = "2.4.5.1"
|
39
40
|
s.summary = "Easily construct MT and MetaWeblog XML-RPC backends"
|
40
41
|
|
41
42
|
if s.respond_to? :specification_version then
|
42
|
-
s.specification_version =
|
43
|
+
s.specification_version = 4
|
43
44
|
|
44
45
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
45
|
-
s.add_runtime_dependency(%q<builder>, ["
|
46
|
+
s.add_runtime_dependency(%q<builder>, [">= 3.1"])
|
47
|
+
s.add_development_dependency(%q<minitest>, [">= 0"])
|
46
48
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
47
|
-
s.add_development_dependency(%q<jeweler>, ["
|
48
|
-
s.add_development_dependency(%q<flexmock>, ["
|
49
|
+
s.add_development_dependency(%q<jeweler>, [">= 2.1.2", "~> 2"])
|
50
|
+
s.add_development_dependency(%q<flexmock>, [">= 0"])
|
49
51
|
s.add_development_dependency(%q<rack-test>, [">= 0"])
|
50
52
|
else
|
51
|
-
s.add_dependency(%q<builder>, ["
|
53
|
+
s.add_dependency(%q<builder>, [">= 3.1"])
|
54
|
+
s.add_dependency(%q<minitest>, [">= 0"])
|
52
55
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
53
|
-
s.add_dependency(%q<jeweler>, ["
|
54
|
-
s.add_dependency(%q<flexmock>, ["
|
56
|
+
s.add_dependency(%q<jeweler>, [">= 2.1.2", "~> 2"])
|
57
|
+
s.add_dependency(%q<flexmock>, [">= 0"])
|
55
58
|
s.add_dependency(%q<rack-test>, [">= 0"])
|
56
59
|
end
|
57
60
|
else
|
58
|
-
s.add_dependency(%q<builder>, ["
|
61
|
+
s.add_dependency(%q<builder>, [">= 3.1"])
|
62
|
+
s.add_dependency(%q<minitest>, [">= 0"])
|
59
63
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
60
|
-
s.add_dependency(%q<jeweler>, ["
|
61
|
-
s.add_dependency(%q<flexmock>, ["
|
64
|
+
s.add_dependency(%q<jeweler>, [">= 2.1.2", "~> 2"])
|
65
|
+
s.add_dependency(%q<flexmock>, [">= 0"])
|
62
66
|
s.add_dependency(%q<rack-test>, [">= 0"])
|
63
67
|
end
|
64
68
|
end
|
data/lib/blogrpc.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -1,32 +1,11 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler'
|
3
|
-
require '
|
4
|
-
require 'test/unit'
|
3
|
+
require 'minitest'
|
5
4
|
require 'flexmock'
|
6
|
-
require 'flexmock/
|
5
|
+
require 'flexmock/minitest'
|
7
6
|
require 'net/http'
|
8
|
-
|
9
|
-
# http://redmine.ruby-lang.org/issues/4882
|
10
|
-
# https://github.com/jimweirich/flexmock/issues/4
|
11
|
-
# https://github.com/julik/flexmock/commit/4acea00677e7b558bd564ec7c7630f0b27d368ca
|
12
|
-
class FlexMock::PartialMockProxy
|
13
|
-
def singleton?(method_name)
|
14
|
-
@obj.singleton_methods.include?(method_name.to_s)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
begin
|
19
|
-
Bundler.setup(:default, :development)
|
20
|
-
rescue Bundler::BundlerError => e
|
21
|
-
$stderr.puts e.message
|
22
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
23
|
-
exit e.status_code
|
24
|
-
end
|
25
|
-
require 'test/unit'
|
7
|
+
require_relative 'http_simulator'
|
26
8
|
|
27
9
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
28
10
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
29
11
|
require 'blogrpc'
|
30
|
-
|
31
|
-
class Test::Unit::TestCase
|
32
|
-
end
|
data/test/test_blogapi.rb
CHANGED
metadata
CHANGED
@@ -1,94 +1,103 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blogrpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Julik Tarkhanov
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-11-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: builder
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 3.
|
19
|
+
version: '3.1'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 3.
|
26
|
+
version: '3.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
30
41
|
- !ruby/object:Gem::Dependency
|
31
42
|
name: rdoc
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
44
|
requirements:
|
35
|
-
- - ~>
|
45
|
+
- - "~>"
|
36
46
|
- !ruby/object:Gem::Version
|
37
47
|
version: '3.12'
|
38
48
|
type: :development
|
39
49
|
prerelease: false
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
51
|
requirements:
|
43
|
-
- - ~>
|
52
|
+
- - "~>"
|
44
53
|
- !ruby/object:Gem::Version
|
45
54
|
version: '3.12'
|
46
55
|
- !ruby/object:Gem::Dependency
|
47
56
|
name: jeweler
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
58
|
requirements:
|
51
|
-
- -
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.1.2
|
62
|
+
- - "~>"
|
52
63
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
64
|
+
version: '2'
|
54
65
|
type: :development
|
55
66
|
prerelease: false
|
56
67
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
68
|
requirements:
|
59
|
-
- -
|
69
|
+
- - ">="
|
60
70
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
71
|
+
version: 2.1.2
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '2'
|
62
75
|
- !ruby/object:Gem::Dependency
|
63
76
|
name: flexmock
|
64
77
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
78
|
requirements:
|
67
|
-
- -
|
79
|
+
- - ">="
|
68
80
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0
|
81
|
+
version: '0'
|
70
82
|
type: :development
|
71
83
|
prerelease: false
|
72
84
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
85
|
requirements:
|
75
|
-
- -
|
86
|
+
- - ">="
|
76
87
|
- !ruby/object:Gem::Version
|
77
|
-
version: '0
|
88
|
+
version: '0'
|
78
89
|
- !ruby/object:Gem::Dependency
|
79
90
|
name: rack-test
|
80
91
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
92
|
requirements:
|
83
|
-
- -
|
93
|
+
- - ">="
|
84
94
|
- !ruby/object:Gem::Version
|
85
95
|
version: '0'
|
86
96
|
type: :development
|
87
97
|
prerelease: false
|
88
98
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
99
|
requirements:
|
91
|
-
- -
|
100
|
+
- - ">="
|
92
101
|
- !ruby/object:Gem::Version
|
93
102
|
version: '0'
|
94
103
|
description:
|
@@ -99,7 +108,7 @@ extra_rdoc_files:
|
|
99
108
|
- LICENSE.txt
|
100
109
|
- README.rdoc
|
101
110
|
files:
|
102
|
-
- .document
|
111
|
+
- ".document"
|
103
112
|
- Gemfile
|
104
113
|
- Gemfile.lock
|
105
114
|
- LICENSE.txt
|
@@ -117,29 +126,25 @@ files:
|
|
117
126
|
homepage: http://github.com/julik/blogrpc
|
118
127
|
licenses:
|
119
128
|
- MIT
|
129
|
+
metadata: {}
|
120
130
|
post_install_message:
|
121
131
|
rdoc_options: []
|
122
132
|
require_paths:
|
123
133
|
- lib
|
124
134
|
required_ruby_version: !ruby/object:Gem::Requirement
|
125
|
-
none: false
|
126
135
|
requirements:
|
127
|
-
- -
|
136
|
+
- - ">="
|
128
137
|
- !ruby/object:Gem::Version
|
129
138
|
version: '0'
|
130
|
-
segments:
|
131
|
-
- 0
|
132
|
-
hash: -815078792002993529
|
133
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
-
none: false
|
135
140
|
requirements:
|
136
|
-
- -
|
141
|
+
- - ">="
|
137
142
|
- !ruby/object:Gem::Version
|
138
143
|
version: '0'
|
139
144
|
requirements: []
|
140
145
|
rubyforge_project:
|
141
|
-
rubygems_version:
|
146
|
+
rubygems_version: 2.4.5.1
|
142
147
|
signing_key:
|
143
|
-
specification_version:
|
148
|
+
specification_version: 4
|
144
149
|
summary: Easily construct MT and MetaWeblog XML-RPC backends
|
145
150
|
test_files: []
|