RemoteClass issues with assume_types

0 views
Skip to first unread message

Peter Armstrong

unread,
Nov 16, 2007, 4:07:16 PM11/16/07
to rub...@googlegroups.com
Hi all,

So, this is me attempting to create a reproducible test case for the
issue I have.

Aaron says:

"Or if you use assume_types you can just define the AS:
[RemoteClass(alias='Task')]
and leave out the class mapping completely in configuration."

So, this is my rubyamf_config.rb (I could be doing something dumb here
-- I have tried numerous combinations of these flags though):

require 'app/configuration'
module RubyAMF
module Configuration
ClassMappings.translate_case = true
ClassMappings.force_active_record_ids = true
ClassMappings.assume_types = true
ClassMappings.check_for_associations = true
ParameterMappings.always_add_to_params = true
ParameterMappings.scaffolding = true
end
end

I am attaching a standalone application (RamfTestApp.mxml) and the
supporting files. Note that I tried both

[RemoteClass(alias='com.pomodo.model.Task')]

and

[RemoteClass(alias='Task')]

with the same effect. (When I just used 'Task' I just used 'Project',
'Location', etc.; when I used the full package I used it everywhere.)

In both cases I get:

FAULT:
There was an error with your parameter mappings: {Anonymous modules
have no name to be referenced by}

The exception is inside Rails methods that are trying to form a name:
search for "Anonymous modules have no name to be referenced by" in the
Rails 1.99.0 (Rails 2.0 release candidate) sources and you'll see it.

My guess is the bug is that RubyAMF is providing something empty when
there is no module that the model classes are in.

Note: index works fine with both these configs. The problem is with
show. I'm currently sending this to Rails to do show:

private function doShow():void {
tasksRO.show.send({id:4});
}

Now, this **WORKS** when I use the manual, explicit ClassMappings
approach (assume_types = false). However, with the
ClassMappings.assume_types = true approach, it explodes.

I'm attaching the test files. You need to put them in the appropriate
structure to test.

Thanks,
Peter

This was the trace when I used annotations like
[RemoteClass(alias='Task')]

c:\peter\flexiblerails\code\iteration11\pomodo>ruby script\server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2007-11-16 12:58:17] INFO WEBrick 1.3.1
[2007-11-16 12:58:17] INFO ruby 1.8.5 (2006-08-25) [i386-mswin32]
[2007-11-16 12:58:17] INFO WEBrick::HTTPServer#start: pid=3832 port=3000
127.0.0.1 - - [16/Nov/2007:12:58:25 Pacific Standard Time] "GET
/AC_OETags.js HTTP/1.1" 200 8068
http://localhost:3000/ -> /AC_OETags.js
127.0.0.1 - - [16/Nov/2007:12:58:25 Pacific Standard Time] "GET
/Pomodo.swf HTTP/1.1" 200 681289
http://localhost:3000/ -> /Pomodo.swf
127.0.0.1 - - [16/Nov/2007:12:58:46 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:58:47 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:58:48 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
There was an error with your parameter mappings: {Anonymous modules
have no name to be referenced by}
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/actions.rb:142:in
`invoke'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/actions.rb:86:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:44:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:42:in
`each'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:42:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:40:in
`upto'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:40:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:11:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:10:in
`each'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:10:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/rails_gateway.rb:28:in
`service'
c:/peter/flexiblerails/code/iteration11/pomodo/app/controllers/rubyamf_controller.rb:16:in
`gateway'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:1137:in
`send'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:1137:in
`perform_action_without_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:697:in
`call_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:689:in
`perform_action_without_benchmark'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in
`perform_action_without_caching'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/caching.rb:669:in
`perform_action'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in
`cache'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in
`cache'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/caching.rb:668:in
`perform_action'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:513:in
`send'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:513:in
`process_without_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:685:in
`process_without_session_management_support'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in
`process'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:377:in
`process'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in
`handle_request'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in
`dispatch_cgi'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:112:in
`handle_dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:78:in
`service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:62:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/commands/servers/webrick.rb:66
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in
`require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in
`new_constants_in'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in
`require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/commands/server.rb:39
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
script/server:3
127.0.0.1 - - [16/Nov/2007:12:58:52 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 5841
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway


This was the trace when I used annotations like
[RemoteClass(alias='com.pomodo.model.Task')]

c:\peter\flexiblerails\code\iteration11\pomodo>ruby script\server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2007-11-16 12:46:47] INFO WEBrick 1.3.1
[2007-11-16 12:46:47] INFO ruby 1.8.5 (2006-08-25) [i386-mswin32]
[2007-11-16 12:46:48] INFO WEBrick::HTTPServer#start: pid=1164 port=3000
127.0.0.1 - - [16/Nov/2007:12:50:45 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:50:46 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:52:12 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:52:12 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
127.0.0.1 - - [16/Nov/2007:12:52:14 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 311
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway
There was an error with your parameter mappings: {Anonymous modules
have no name to be referenced by}
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/actions.rb:142:in
`invoke'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/actions.rb:86:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:44:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:42:in
`each'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:42:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:40:in
`upto'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:40:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:11:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:10:in
`each'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/filters.rb:10:in
`run'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/plugins/rubyamf/app/rails_gateway.rb:28:in
`service'
c:/peter/flexiblerails/code/iteration11/pomodo/app/controllers/rubyamf_controller.rb:16:in
`gateway'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:1137:in
`send'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:1137:in
`perform_action_without_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:697:in
`call_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:689:in
`perform_action_without_benchmark'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
c:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in
`perform_action_without_rescue'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/rescue.rb:199:in
`perform_action_without_caching'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/caching.rb:669:in
`perform_action'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in
`cache'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in
`cache'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/caching.rb:668:in
`perform_action'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:513:in
`send'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:513:in
`process_without_filters'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/filters.rb:685:in
`process_without_session_management_support'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in
`process'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/base.rb:377:in
`process'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in
`handle_request'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in
`dispatch_cgi'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:112:in
`handle_dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:78:in
`service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `each'
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start'
c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/webrick_server.rb:62:in
`dispatch'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/commands/servers/webrick.rb:66
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in
`require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in
`new_constants_in'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/activesupport/lib/active_support/dependencies.rb:496:in
`require'
c:/peter/flexiblerails/code/iteration11/pomodo/vendor/rails/railties/lib/commands/server.rb:39
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
script/server:3
127.0.0.1 - - [16/Nov/2007:12:52:19 Pacific Standard Time] "POST
/rubyamf/gateway HTTP/1.1" 200 5841
file:///C:/peter/flexiblerails/code/iteration11/pomodo/public/RamfTestApp.swf
-> /rubyamf/gateway

RamfTestApp.mxml
rubyamf_config.rb
Task.as
Project.as
Location.as
Note.as
User.as

Tony Hillerson

unread,
Nov 17, 2007, 12:08:37 PM11/17/07
to rubyamf
It might be having trouble when you pass an anonymous object with
assume_types on. I'll file a bug.

On Nov 16, 2:07 pm, "Peter Armstrong" <peterarmstr...@gmail.com>
wrote:
> => Rails application started onhttp://0.0.0.0:3000
> => Ctrl-C to shutdown server; call with --help for options
> [2007-11-16 12:58:17] INFO WEBrick 1.3.1
> [2007-11-16 12:58:17] INFO ruby 1.8.5 (2006-08-25) [i386-mswin32]
> [2007-11-16 12:58:17] INFO WEBrick::HTTPServer#start: pid=3832 port=3000
> 127.0.0.1 - - [16/Nov/2007:12:58:25 Pacific Standard Time] "GET
> /AC_OETags.js HTTP/1.1" 200 8068http://localhost:3000/-> /AC_OETags.js
> 127.0.0.1 - - [16/Nov/2007:12:58:25 Pacific Standard Time] "GET
> /Pomodo.swf HTTP/1.1" 200 681289http://localhost:3000/-> /Pomodo.swf
> => Rails application started onhttp://0.0.0.0:3000
> RamfTestApp.mxml
> 4KDownload
>
> rubyamf_config.rb
> 1KDownload
>
> Task.as
> 3KDownload
>
> Project.as
> 3KDownload
>
> Location.as
> 2KDownload
>
> Note.as
> 1KDownload
>
> User.as
> 2KDownload

Peter Armstrong

unread,
Nov 17, 2007, 1:06:05 PM11/17/07
to rub...@googlegroups.com
Thanks; that makes sense. (I had suspected it was a bug, but since
I'm still pretty new to RubyAMF I wanted confirmation. The last thing
I need to do is pollute the Google code project with bad bug reports!)

Cheers,
Peter

Reply all
Reply to author
Forward
0 new messages