rpcoder 0.2.3 → 0.2.4

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