Martin Kudlvasr write:
Hi,
I've been continuing with the work, which Martin Vidner and Karel started 2 weeks ago - trying to use ActiveResource without service_resource.rb . This is currently the "use-activeresource" branch.
I've added support for discovering controller paths from interface name. So currently there are no hard coded controller paths.
Previously resources were used like this:
*** Example from network_controller.rb *** hn = load_proxy "org.opensuse.yast.modules.yapi.network.hostname" ***
Now they can be used like this:
*** plugins/network/app/model/hostname.rb *** class Hostname < YastResource uses_interface "org.opensuse.yast.modules.yapi.network.hostname" end *** Example from network_controller.rb *** Hostname.initialize_from_interface
^^^^ Hi, why you need this line??? I think that have it in before_filter is good solution. What could be problem is that we should add some caching service as resource_loader store link for already created module.
hn = Hostname.find :one ***
I think, that: - this newer approach better follows the MVC philosophy (with service_resource.rb, no model class is possible) - the YastResource < ActiveResource class is much shorter and more readable - individual model classes can be enriched by resource-specific methods - YastResource and individual models are not created dynamically - and so are easier to test (in contrast with service_resource.rb) - test can be made for the model. Currently we depend on tests in controller. - it is Black Magic Free (TM) :-)
Please note, that "use-activeresource" branch depends on "resource-restful" branch, because it needs to discover individual resources (which is not possible with current "/resources" on web-service).
This work was done to show, that there are other (and many think better) approaches to the problem than dynamic creation of classes in service_resource.rb. So I especially ask Duncan and Klaas, what other problems service_resource solves and YastResource does not.
Please let me know what you think.
Martin Kudlvasr
-- Josef Reidinger YaST team maintainer of perl-Bootloader, YaST2-Repair, webyast modules language and time -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org