josevalim-inherited_resources 0.8.4 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +3 -0
 - data/README +1 -1
 - data/VERSION +1 -1
 - data/lib/inherited_resources/url_helpers.rb +14 -5
 - data/test/url_helpers_test.rb +6 -0
 - metadata +1 -1
 
    
        data/CHANGELOG
    CHANGED
    
    | 
         @@ -1,5 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Version 0.8
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            * Fixed a small bug on optional belongs to with namespaced controllers.
         
     | 
| 
      
 4 
     | 
    
         
            +
            * Allow a parameter to be given to collection_url in polymorphic cases to replace
         
     | 
| 
      
 5 
     | 
    
         
            +
              the parent.
         
     | 
| 
       3 
6 
     | 
    
         
             
            * Allow InheritedResources to be called without inheritance.
         
     | 
| 
       4 
7 
     | 
    
         
             
            * Ensure that controllers that inherit from a controller with InheritedResources
         
     | 
| 
       5 
8 
     | 
    
         
             
              works properly.
         
     | 
    
        data/README
    CHANGED
    
    
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.8. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.8.5
         
     | 
| 
         @@ -43,9 +43,12 @@ module InheritedResources 
     | 
|
| 
       43 
43 
     | 
    
         
             
                  resource_segments, resource_ivars = [], []
         
     | 
| 
       44 
44 
     | 
    
         
             
                  resource_config = self.resources_configuration[:self]
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
      
 46 
     | 
    
         
            +
                  singleton   = self.resources_configuration[:self][:singleton]
         
     | 
| 
      
 47 
     | 
    
         
            +
                  polymorphic = self.parents_symbols.include?(:polymorphic)
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
       46 
49 
     | 
    
         
             
                  # Add route_prefix if any.
         
     | 
| 
       47 
50 
     | 
    
         
             
                  unless resource_config[:route_prefix].blank?
         
     | 
| 
       48 
     | 
    
         
            -
                    if  
     | 
| 
      
 51 
     | 
    
         
            +
                    if polymorphic
         
     | 
| 
       49 
52 
     | 
    
         
             
                      resource_ivars << resource_config[:route_prefix].to_s.inspect
         
     | 
| 
       50 
53 
     | 
    
         
             
                    else
         
     | 
| 
       51 
54 
     | 
    
         
             
                      resource_segments << resource_config[:route_prefix]
         
     | 
| 
         @@ -66,9 +69,6 @@ module InheritedResources 
     | 
|
| 
       66 
69 
     | 
    
         
             
                    end
         
     | 
| 
       67 
70 
     | 
    
         
             
                  end
         
     | 
| 
       68 
71 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
                  singleton   = self.resources_configuration[:self][:singleton]
         
     | 
| 
       70 
     | 
    
         
            -
                  polymorphic = self.parents_symbols.include?(:polymorphic)
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
72 
     | 
    
         
             
                  collection_ivars    = resource_ivars.dup
         
     | 
| 
       73 
73 
     | 
    
         
             
                  collection_segments = resource_segments.dup
         
     | 
| 
       74 
74 
     | 
    
         | 
| 
         @@ -108,7 +108,7 @@ module InheritedResources 
     | 
|
| 
       108 
108 
     | 
    
         
             
                      new_ivars       = resource_ivars
         
     | 
| 
       109 
109 
     | 
    
         
             
                    end
         
     | 
| 
       110 
110 
     | 
    
         
             
                  elsif polymorphic
         
     | 
| 
       111 
     | 
    
         
            -
                    collection_ivars << 'resource_class.new'
         
     | 
| 
      
 111 
     | 
    
         
            +
                    collection_ivars << '(@_resource_class_new ||= resource_class.new)'
         
     | 
| 
       112 
112 
     | 
    
         
             
                  end
         
     | 
| 
       113 
113 
     | 
    
         | 
| 
       114 
114 
     | 
    
         
             
                  generate_url_and_path_helpers nil,   :collection, collection_segments, collection_ivars
         
     | 
| 
         @@ -130,6 +130,15 @@ module InheritedResources 
     | 
|
| 
       130 
130 
     | 
    
         
             
                    ivars.push "(given_args.first || #{ivars.pop})"
         
     | 
| 
       131 
131 
     | 
    
         
             
                  end
         
     | 
| 
       132 
132 
     | 
    
         | 
| 
      
 133 
     | 
    
         
            +
                  # In collection in polymorphic cases, allow an argument to be given as a
         
     | 
| 
      
 134 
     | 
    
         
            +
                  # replacemente for the parent.
         
     | 
| 
      
 135 
     | 
    
         
            +
                  #
         
     | 
| 
      
 136 
     | 
    
         
            +
                  if name == :collection && polymorphic
         
     | 
| 
      
 137 
     | 
    
         
            +
                    index = ivars.index(:parent)
         
     | 
| 
      
 138 
     | 
    
         
            +
                    ivars.insert index, "(given_args.first || parent)"
         
     | 
| 
      
 139 
     | 
    
         
            +
                    ivars.delete(:parent)
         
     | 
| 
      
 140 
     | 
    
         
            +
                  end
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
       133 
142 
     | 
    
         
             
                  # When polymorphic is true, the segments must be replace by :polymorphic
         
     | 
| 
       134 
143 
     | 
    
         
             
                  # and ivars should be gathered into an array, which is compacted when
         
     | 
| 
       135 
144 
     | 
    
         
             
                  # optional.
         
     | 
    
        data/test/url_helpers_test.rb
    CHANGED
    
    | 
         @@ -302,6 +302,9 @@ class UrlHelpersTest < ActiveSupport::TestCase 
     | 
|
| 
       302 
302 
     | 
    
         
             
                controller.send("resource_url", :page => 1)
         
     | 
| 
       303 
303 
     | 
    
         | 
| 
       304 
304 
     | 
    
         
             
                # With args
         
     | 
| 
      
 305 
     | 
    
         
            +
                controller.expects("polymorphic_url").with([:arg, new_bed], {}).once
         
     | 
| 
      
 306 
     | 
    
         
            +
                controller.send("collection_url", :arg)
         
     | 
| 
      
 307 
     | 
    
         
            +
             
     | 
| 
       305 
308 
     | 
    
         
             
                controller.expects("polymorphic_url").with([house, :arg], {}).once
         
     | 
| 
       306 
309 
     | 
    
         
             
                controller.send("resource_url", :arg)
         
     | 
| 
       307 
310 
     | 
    
         | 
| 
         @@ -341,6 +344,9 @@ class UrlHelpersTest < ActiveSupport::TestCase 
     | 
|
| 
       341 
344 
     | 
    
         
             
                controller.send("resource_url", :page => 1)
         
     | 
| 
       342 
345 
     | 
    
         | 
| 
       343 
346 
     | 
    
         
             
                # With args
         
     | 
| 
      
 347 
     | 
    
         
            +
                controller.expects("polymorphic_url").with(['admin', :arg, new_desk], {}).once
         
     | 
| 
      
 348 
     | 
    
         
            +
                controller.send("collection_url", :arg)
         
     | 
| 
      
 349 
     | 
    
         
            +
             
     | 
| 
       344 
350 
     | 
    
         
             
                controller.expects("polymorphic_url").with(['admin', house, :arg], {}).once
         
     | 
| 
       345 
351 
     | 
    
         
             
                controller.send("resource_url", :arg)
         
     | 
| 
       346 
352 
     | 
    
         |