rpcoder 0.2.3 → 0.2.4

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/Gemfile CHANGED
@@ -11,5 +11,4 @@ group :development do
11
11
  gem "jeweler", "~> 1.5.2"
12
12
  gem "rcov", ">= 0"
13
13
  gem "rake", ">= 0"
14
- gem "sinatra", ">= 0"
15
14
  end
data/Gemfile.lock CHANGED
@@ -7,21 +7,16 @@ GEM
7
7
  bundler (~> 1.0.0)
8
8
  git (>= 1.2.5)
9
9
  rake
10
- rack (1.2.2)
11
10
  rake (0.8.7)
12
11
  rcov (0.9.9)
13
- rspec (2.5.0)
14
- rspec-core (~> 2.5.0)
15
- rspec-expectations (~> 2.5.0)
16
- rspec-mocks (~> 2.5.0)
17
- rspec-core (2.5.1)
18
- rspec-expectations (2.5.0)
12
+ rspec (2.6.0)
13
+ rspec-core (~> 2.6.0)
14
+ rspec-expectations (~> 2.6.0)
15
+ rspec-mocks (~> 2.6.0)
16
+ rspec-core (2.6.0)
17
+ rspec-expectations (2.6.0)
19
18
  diff-lcs (~> 1.1.2)
20
- rspec-mocks (2.5.0)
21
- sinatra (1.2.3)
22
- rack (~> 1.1)
23
- tilt (< 2.0, >= 1.2.2)
24
- tilt (1.2.2)
19
+ rspec-mocks (2.6.0)
25
20
 
26
21
  PLATFORMS
27
22
  ruby
@@ -32,4 +27,3 @@ DEPENDENCIES
32
27
  rake
33
28
  rcov
34
29
  rspec
35
- sinatra
data/README.rdoc CHANGED
@@ -65,3 +65,22 @@
65
65
  // failure
66
66
  })
67
67
 
68
+
69
+ === dummy RPC
70
+
71
+ Dummy RPC works standalone. You can set anything responses at callback.
72
+
73
+ var rpc:RPCInterface = new RPCDummy();
74
+ (rpc as RPCDummy).setDummySuccess("getMail", [
75
+ Mail.create('foo', 'bar')
76
+ ]);
77
+
78
+ rpc.getMail(function(mail:Mail):void {
79
+ // success
80
+ // responded mail as dummy
81
+ }, function():void {
82
+ // error
83
+ });
84
+
85
+ // rpc.getMail() may callback as error.
86
+ (rpc as RPCDummy).setDummyError("getMail", true);
data/Rakefile CHANGED
@@ -23,8 +23,6 @@ Jeweler::Tasks.new do |gem|
23
23
  # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
24
  # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
25
  # gem.add_development_dependency 'rspec', '> 1.2.3'
26
-
27
- gem.files.exclude 'mock/'
28
26
  end
29
27
  Jeweler::RubygemsDotOrgTasks.new
30
28
 
@@ -50,3 +48,7 @@ Rake::RDocTask.new do |rdoc|
50
48
  rdoc.rdoc_files.include('README*')
51
49
  rdoc.rdoc_files.include('lib/**/*.rb')
52
50
  end
51
+
52
+ task :as3test do
53
+ sh 'cd as3test; ant test'
54
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
data/as3test/build.xml ADDED
@@ -0,0 +1,59 @@
1
+ <project name="Flex Ant Tasks Build Script" default="compile">
2
+ <!-- setup a prefix for all environment variables -->
3
+ <property environment="env" />
4
+
5
+ <!-- Setup paths for build -->
6
+ <property name="src.loc" location="${basedir}/src" />
7
+ <property name="src.test.loc" location="${basedir}/src_test" />
8
+ <property name="lib.loc" location="${basedir}/lib" />
9
+ <property name="output.loc" location="${basedir}" />
10
+ <property name="bin.loc" location="${output.loc}/bin" />
11
+ <property name="report.loc" location="${output.loc}/report" />
12
+
13
+ <!-- Setup Flex and FlexUnit ant tasks -->
14
+ <!-- You can set this directly so mxmlc will work correctly, or set FLEX_HOME as an environment variable and use as below -->
15
+ <property name="FLEX_HOME" location="${env.FLEX_HOME}" />
16
+ <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />
17
+ <taskdef resource="flexUnitTasks.tasks" classpath="${lib.loc}/flexUnitTasks-4.0.0.jar" />
18
+
19
+ <target name="init">
20
+ <!-- Create directories needed for the build process -->
21
+ <mkdir dir="${bin.loc}" />
22
+ <mkdir dir="${report.loc}" />
23
+ </target>
24
+
25
+ <target name="contract">
26
+ <exec executable="ruby">
27
+ <arg line="contract.rb"/>
28
+ </exec>
29
+ </target>
30
+
31
+ <target name="compile" depends="init,contract">
32
+ <mxmlc file="${src.test.loc}/FlexUnitRunner.mxml" output="${bin.loc}/FlexUnitRunner.swf">
33
+ <source-path path-element="${src.loc}" />
34
+ <source-path path-element="${src.test.loc}" />
35
+ <library-path dir="${lib.loc}" append="true">
36
+ <include name="*.swc" />
37
+ </library-path>
38
+ <compiler.verbose-stacktraces>true</compiler.verbose-stacktraces>
39
+ <compiler.headless-server>true</compiler.headless-server>
40
+ </mxmlc>
41
+ </target>
42
+
43
+ <target name="test" depends="compile">
44
+ <!-- Execute FlexUnit tests and publish reports -->
45
+ <flexunit swf="${bin.loc}/FlexUnitRunner.swf"
46
+ toDir="${report.loc}"
47
+ haltonfailure="false"
48
+ verbose="true"
49
+ headless="true"
50
+ localTrusted="true" />
51
+ <!-- Generate readable JUnit-style reports -->
52
+ <junitreport todir="${report.loc}">
53
+ <fileset dir="${report.loc}">
54
+ <include name="TEST-*.xml" />
55
+ </fileset>
56
+ <report format="frames" todir="${report.loc}/html" />
57
+ </junitreport>
58
+ </target>
59
+ </project>
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ $LOAD_PATH.unshift(File.expand_path('../lib', File.dirname(__FILE__)))
5
+ require 'rpcoder'
6
+ require 'fileutils'
7
+
8
+ #######################################
9
+ # API definition
10
+ #######################################
11
+
12
+ RPCoder.name_space = 'com.oneup.rpcoder.generated'
13
+ RPCoder.api_class_name = 'API'
14
+
15
+ RPCoder.type "Mail" do |t|
16
+ t.add_field :subject, :String
17
+ t.add_field :body, :String
18
+ end
19
+
20
+ RPCoder.function "getMail" do |f|
21
+ f.path = "/mails/:id" # => ("/mails/" + id)
22
+ f.method = "GET"
23
+ f.add_return_type :mail, "Mail"
24
+ f.add_param :id, "int"
25
+ f.description = 'メールを取得'
26
+ end
27
+
28
+ RPCoder.function "sendMail" do |f|
29
+ f.path = "/mails" # => ("/mails/" + id)
30
+ f.method = "POST"
31
+ f.add_param :subject, "String"
32
+ f.add_param :body, "String"
33
+ f.description = 'メールを送信'
34
+ end
35
+
36
+ RPCoder.function "getError" do |f|
37
+ f.path = "/error/:statusCode"
38
+ f.method = "GET"
39
+ f.add_param :statusCode, :int
40
+ f.description = 'Get Error'
41
+ end
42
+
43
+ dir = File.expand_path('src', File.dirname(__FILE__))
44
+ RPCoder.export(dir)
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <s:Application
3
+ xmlns:fx="http://ns.adobe.com/mxml/2009"
4
+ xmlns:s="library://ns.adobe.com/flex/spark"
5
+ xmlns:mx="library://ns.adobe.com/flex/mx"
6
+ xmlns:adobe="http://www.adobe.com/2009/flexUnitUIRunner"
7
+ creationComplete="runMe()">
8
+
9
+ <fx:Script>
10
+ <![CDATA[
11
+ import org.flexunit.listeners.CIListener;
12
+ import org.flexunit.listeners.UIListener;
13
+ import org.flexunit.runner.FlexUnitCore;
14
+
15
+ private var core:FlexUnitCore;
16
+
17
+ public function runMe():void {
18
+ core = new FlexUnitCore();
19
+ core.addListener(new UIListener(uiListener));
20
+ core.addListener(new CIListener());
21
+ core.run(TestSuite);
22
+ }
23
+ ]]>
24
+ </fx:Script>
25
+
26
+ <adobe:TestRunnerBase id="uiListener" width="100%" height="100%" />
27
+ </s:Application>
@@ -0,0 +1,10 @@
1
+ package {
2
+ import com.oneup.rpcoder.test.APITest;
3
+ import com.oneup.rpcoder.test.TypeTest;
4
+ [Suite]
5
+ [RunWith("org.flexunit.runners.Suite")]
6
+ public class TestSuite {
7
+ public var t1:APITest;
8
+ public var t2:TypeTest;
9
+ }
10
+ }
@@ -0,0 +1,76 @@
1
+ package com.oneup.rpcoder.test {
2
+ import mx.rpc.AsyncToken;
3
+ import mx.rpc.http.HTTPService;
4
+ import flash.events.*;
5
+ import mockolate.*;
6
+ import mx.rpc.events.FaultEvent;
7
+ import org.flexunit.asserts.*;
8
+ import org.flexunit.async.Async;
9
+ import org.hamcrest.core.anything;
10
+
11
+ import com.oneup.rpcoder.generated.*;
12
+
13
+ public class APITest {
14
+ /*
15
+ * Preparing
16
+ */
17
+ [Before(async, timeout=5000)]
18
+ public function prepareMockolates() : void {
19
+ Async.proceedOnEvent(this, prepare(API, HTTPService, AsyncToken), Event.COMPLETE);
20
+ }
21
+
22
+ [Test(description="API を new できる")]
23
+ public function newAPI() : void {
24
+ var api : API = new API('http://example.com/');
25
+ assertEquals('http://example.com/', api.baseUrl);
26
+ }
27
+
28
+ [Test(description="API#getMail を呼び出せる")]
29
+ public function callGetMail() : void {
30
+ var api : API = nice(API);
31
+ mock(api).method("request").args('GET', '/mails/1', anything(), anything(), anything());
32
+ stub(api).method("getMail").callsSuper();
33
+ api.getMail(
34
+ 1,
35
+ function(mail : Mail) : void {},
36
+ function(e : FaultEvent) : void {}
37
+ );
38
+ verify(api);
39
+ }
40
+
41
+ [Test(description="API#sendMail を呼び出せる")]
42
+ public function callSendMail() : void {
43
+ var api : API = nice(API);
44
+ mock(api).method("request").args('POST', '/mails', anything(), anything(), anything());
45
+ stub(api).method("sendMail").callsSuper();
46
+ api.sendMail(
47
+ 'hi',
48
+ 'foo bar',
49
+ function(mail : Mail) : void {},
50
+ function(e : FaultEvent) : void {}
51
+ );
52
+ verify(api);
53
+ }
54
+
55
+ [Test(description="API#request を呼び出せる")]
56
+ public function callRequest() : void {
57
+ var api : API = nice(API);
58
+ var service : HTTPService = strict(HTTPService);
59
+ var token : AsyncToken = strict(AsyncToken);
60
+ var params : Object = {foo:'foo', bar:'bar'};
61
+
62
+ stub(api).method("createHttpService").anyArgs().returns(service);
63
+ mock(service).setter("method").arg("GET");
64
+ mock(service).setter("url").arg('/foo');
65
+ mock(service).setter("request").arg(params);
66
+ mock(service).setter("resultFormat").arg("text");
67
+ mock(service).method("send").returns(token);
68
+ mock(token).method("addResponder").anyArgs();
69
+
70
+ stub(api).method("request").callsSuper();
71
+ api.request('GET', '/foo', params, function():void{}, function():void{});
72
+
73
+ verify(service);
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,25 @@
1
+ package com.oneup.rpcoder.test {
2
+ import org.flexunit.asserts.assertEquals;
3
+ import com.oneup.rpcoder.generated.*;
4
+
5
+ public class TypeTest
6
+ {
7
+ [Test(description="オブジェクトを作成できる")]
8
+ public function createObject():void
9
+ {
10
+ var data:Object = {subject:'hi', body: 'foo bar'};
11
+ var mail:Mail = new Mail(data);
12
+ assertEquals(data['subject'], mail.subject);
13
+ assertEquals(data['body'], mail.body);
14
+ }
15
+
16
+ [Test(description="少ないデータをもとにオブジェクトを作成できる")]
17
+ public function createObjectWithFewData():void
18
+ {
19
+ var data:Object = {subject:'hi'};
20
+ var mail:Mail = new Mail(data);
21
+ assertEquals(data['subject'], mail.subject);
22
+ assertEquals(null, mail.body);
23
+ }
24
+ }
25
+ }
@@ -19,7 +19,7 @@ package <%= name_space %>
19
19
  return _dummy_success[function_name];
20
20
  }
21
21
 
22
- public function setError(function_name:String, is_error:Boolean):void
22
+ public function setDummyError(function_name:String, is_error:Boolean):void
23
23
  {
24
24
  _errors[function_name] = is_error;
25
25
  }
data/rpcoder.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rpcoder}
8
- s.version = "0.2.3"
8
+ s.version = "0.2.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["jugyo", "Toshiyuki Hirooka"]
12
- s.date = %q{2011-05-12}
12
+ s.date = %q{2011-05-16}
13
13
  s.description = %q{Simple JSON HTTP RPC generator for as3}
14
14
  s.email = %q{toshi.hirooka@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -23,6 +23,20 @@ Gem::Specification.new do |s|
23
23
  "README.rdoc",
24
24
  "Rakefile",
25
25
  "VERSION",
26
+ "as3test/build.xml",
27
+ "as3test/contract.rb",
28
+ "as3test/lib/as3corelib.swc",
29
+ "as3test/lib/flexUnitTasks-4.0.0.jar",
30
+ "as3test/lib/flexunit-4.0.0.swc",
31
+ "as3test/lib/flexunit-cilistener-4.0.0.swc",
32
+ "as3test/lib/flexunit-flexcoverlistener-4.0.0.swc",
33
+ "as3test/lib/flexunit-uilistener-4.0.0.swc",
34
+ "as3test/lib/hamcrest-as3-1.1.1.swc",
35
+ "as3test/lib/mockolate-0.9.3.swc",
36
+ "as3test/src_test/FlexUnitRunner.mxml",
37
+ "as3test/src_test/TestSuite.as",
38
+ "as3test/src_test/com/oneup/rpcoder/test/APITest.as",
39
+ "as3test/src_test/com/oneup/rpcoder/test/TypeTest.as",
26
40
  "lib/rpcoder.rb",
27
41
  "lib/rpcoder/function.rb",
28
42
  "lib/rpcoder/param.rb",
@@ -62,14 +76,12 @@ Gem::Specification.new do |s|
62
76
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
63
77
  s.add_development_dependency(%q<rcov>, [">= 0"])
64
78
  s.add_development_dependency(%q<rake>, [">= 0"])
65
- s.add_development_dependency(%q<sinatra>, [">= 0"])
66
79
  else
67
80
  s.add_dependency(%q<rspec>, [">= 0"])
68
81
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
69
82
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
70
83
  s.add_dependency(%q<rcov>, [">= 0"])
71
84
  s.add_dependency(%q<rake>, [">= 0"])
72
- s.add_dependency(%q<sinatra>, [">= 0"])
73
85
  end
74
86
  else
75
87
  s.add_dependency(%q<rspec>, [">= 0"])
@@ -77,7 +89,6 @@ Gem::Specification.new do |s|
77
89
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
78
90
  s.add_dependency(%q<rcov>, [">= 0"])
79
91
  s.add_dependency(%q<rake>, [">= 0"])
80
- s.add_dependency(%q<sinatra>, [">= 0"])
81
92
  end
82
93
  end
83
94
 
@@ -19,7 +19,7 @@ package foo.bar
19
19
  return _dummy_success[function_name];
20
20
  }
21
21
 
22
- public function setError(function_name:String, is_error:Boolean):void
22
+ public function setDummyError(function_name:String, is_error:Boolean):void
23
23
  {
24
24
  _errors[function_name] = is_error;
25
25
  }
data/spec/spec_helper.rb CHANGED
@@ -7,6 +7,3 @@ require 'rpcoder'
7
7
  # in ./support/ and its subdirectories.
8
8
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
9
 
10
- RSpec.configure do |config|
11
-
12
- end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rpcoder
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.3
5
+ version: 0.2.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - jugyo
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-05-12 00:00:00 Z
14
+ date: 2011-05-16 00:00:00 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rspec
@@ -68,17 +68,6 @@ dependencies:
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: sinatra
73
- requirement: &id006 !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: "0"
79
- type: :development
80
- prerelease: false
81
- version_requirements: *id006
82
71
  description: Simple JSON HTTP RPC generator for as3
83
72
  email: toshi.hirooka@gmail.com
84
73
  executables: []
@@ -95,6 +84,20 @@ files:
95
84
  - README.rdoc
96
85
  - Rakefile
97
86
  - VERSION
87
+ - as3test/build.xml
88
+ - as3test/contract.rb
89
+ - as3test/lib/as3corelib.swc
90
+ - as3test/lib/flexUnitTasks-4.0.0.jar
91
+ - as3test/lib/flexunit-4.0.0.swc
92
+ - as3test/lib/flexunit-cilistener-4.0.0.swc
93
+ - as3test/lib/flexunit-flexcoverlistener-4.0.0.swc
94
+ - as3test/lib/flexunit-uilistener-4.0.0.swc
95
+ - as3test/lib/hamcrest-as3-1.1.1.swc
96
+ - as3test/lib/mockolate-0.9.3.swc
97
+ - as3test/src_test/FlexUnitRunner.mxml
98
+ - as3test/src_test/TestSuite.as
99
+ - as3test/src_test/com/oneup/rpcoder/test/APITest.as
100
+ - as3test/src_test/com/oneup/rpcoder/test/TypeTest.as
98
101
  - lib/rpcoder.rb
99
102
  - lib/rpcoder/function.rb
100
103
  - lib/rpcoder/param.rb
@@ -125,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
128
  requirements:
126
129
  - - ">="
127
130
  - !ruby/object:Gem::Version
128
- hash: -1766578464661972759
131
+ hash: 2732136728128890098
129
132
  segments:
130
133
  - 0
131
134
  version: "0"