roap_rpc 1.0.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5aa2aecd7a78036e70d9c2f90b23fccc89b9793d
4
+ data.tar.gz: be5c6a6768433fc4f589525961b853cb6cb96aab
5
+ SHA512:
6
+ metadata.gz: 0ff82cca5237eaf8cf9bf452e5d3f00554aed82f72a6ae4fb56aaa95e1dacd51cfd1af3cac4714b9cbe777536ceb4dc5742fbe0f055ecf11907f184af692941e
7
+ data.tar.gz: 7fdd2f5fe2d5279783f5c1da2a06c6d30eb98fa007b45eb4eb661520ad90b32e17c9b65ecf8f8b8af1d34fd47927a22659af9403bd5fc6c474e274e05e6ae344
data/lib/roap_rpc.rb ADDED
@@ -0,0 +1,2 @@
1
+
2
+ require_relative 'roap_rpc/extension'
@@ -0,0 +1,27 @@
1
+ require 'xmlrpc/server'
2
+
3
+ module Roap
4
+ module RpcExtension
5
+ extend Roap::AttributeBase
6
+
7
+ @@server = XMLRPC::Server.new
8
+
9
+ #static
10
+ on /rpc()/ do |klass, method, md|
11
+ @@server.add_handler("#{klass}::#{method.name}") do |*args|
12
+ klass.singleton_method(method.name).call *args
13
+ end
14
+ end
15
+
16
+ #runtime
17
+ on /from-rpc (?<server>.*)/ do |_super, md, *args|
18
+ server = instance_eval md[:server]
19
+
20
+ server.call("#{_super.owner}::#{_super.name}", *args)
21
+ end
22
+
23
+ def self.serve
24
+ @@server.serve
25
+ end
26
+ end
27
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roap_rpc
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - pjc0247
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: roap
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: aop for ruby
28
+ email:
29
+ - pjc0247@naver.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/roap_rpc.rb
35
+ - lib/roap_rpc/extension.rb
36
+ homepage: http://github.com/pjc0247/roap_test_helper
37
+ licenses: []
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project: roap_rpc
55
+ rubygems_version: 2.4.5
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: aop for ruby
59
+ test_files: []