> 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

Reply via email to