> From: Thibault Martin-Lagardette <[email protected]>
>
> Hi!
>
> I believe the problem is that you were overriding the wrong init method. Here
> is what I changed to your code to make it work:
>
> class MyNode < ODNode
> def initWithSession(session, name:name, error:err)
> if super
> @session = session
> self
> end
> end
> end
>
> session = ODSession.defaultSession
> node = MyNode.nodeWithSession session, name: "/Local/Default", error: nil
>
> I override initWithSession:name:error instead of init, and created a "MyNode"
> object the exact same way I would have created an ODNode :-)
> The results were, I believe, what you would expect:
Thanks, but unfortunately that doesn't actually help - there's no difference in
use between that and not wrapping the object init... For example, what I'm
doing currently is this -
module OpenDirectory
class Node
attr_reader :node
def initialize config = { :node_name => "/Local/Default" }
if config[:node_name].eql? "/Local/Default"
@session = ODSession.defaultSession
else
@session = ODSession.sessionWithOptions config[:session_options],
error:nil
end
@node = ODNode.nodeWithSession @session, name:config[:node_name],
error:nil
end
end
end
so I can either
local_node = OpenDirectory::Node.new
or
remote_node = OpenDirectory::Node.new proxy_config
where proxy_config is a hash containing info for a DS remote connection to our
directory master. I then access the ODNode as either local_node.node or
remote_node.node where required. What I want to be able to do is just use
local_node or remote_node as if they were ODNode objects (or subclasses of
ODNode) to remove the ruby proxying wrapper around the core Obj-C objects, but
still hide the ugliness of OpenDirectory behind some simpler Model style
wrappers.
(I hope that makes sense)
cheers
Russell
_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel