Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #8563: namespace_added_to_active_resource.diff

File namespace_added_to_active_resource.diff, 1.9 kB (added by foeken, 1 year ago)
  • /Users/andre.foeken/Projects/ioroute/trunk/vendor/plugins/active_resource/lib/active_resource/base.rb

    old new  
    2222        @connection = nil 
    2323        @site = create_site_uri_from(site) 
    2424      end 
     25       
     26      # Gets the namespace of the resource 
     27      def namespace 
     28        if defined?(@namespace) 
     29          @namespace 
     30        elsif superclass != Object and superclass.namespace 
     31          superclass.namespace.dup.freeze 
     32        end 
     33      end 
    2534 
     35      # Set the namespace for the REST resources 
     36      def namespace=(namespace) 
     37        @namespace = namespace 
     38      end 
     39 
    2640      # Base connection to remote service 
    2741      def connection(refresh = false) 
    2842        @connection = Connection.new(site) if refresh || @connection.nil? 
     
    385399       
    386400      # Tries to find a resource for a given name; if it fails, then the resource is created 
    387401      def find_or_create_resource_for(name) 
    388         resource_name = name.to_s.camelize 
    389  
     402        resource_name = self.class.namespace.nil? ? name.to_s.camelize : (self.class.namespace.to_s + name.to_s).camelize 
     403                 
    390404        # FIXME: Make it generic enough to support any depth of module nesting 
    391405        if (ancestors = self.class.name.split("::")).size > 1 
    392406          begin 
     
    399413        end 
    400414      rescue NameError 
    401415        resource = self.class.const_set(resource_name, Class.new(ActiveResource::Base)) 
    402         resource.prefix = self.class.prefix 
    403         resource.site   = self.class.site 
     416        resource.prefix       = self.class.prefix 
     417        resource.site         = self.class.site 
     418        resource.namespace    = self.class.namespace 
    404419        resource 
    405420      end 
    406421