view_models 2.0.0.ruby19 → 2.0.0
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.
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            h1. module ModulesInRenderHierarchy
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Why would we need that?
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            h2. Situation
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            We have a music platform. There we have public profiles, and private profiles. And of each type a band, and a venue profile.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Public / Private have different functionality, and also Band / Venue.
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            The chose class structure looks like this:
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            @Public::Base < Project@, @Private::Base < Project@
         | 
| 14 | 
            +
            @Public::Band < Public::Base@, @Public::Venue < Public::Base@, @Private::Band < Private::Base@, @Private::Venue < Private::Base@
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            To not have duplicate code, we include the functionality for Bands and Venues by using @include BandFunctionality@ and @include VenueFunctionality@.
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            h2. Problem
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            When rendering using the hierarchical rendering, we look up the templates as follows:
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            (For ViewModels::Public::Band#render_as :example, :format => :html)
         | 
| 23 | 
            +
            # @views/view_models/public/band/_example.html.erb@
         | 
| 24 | 
            +
            # @views/view_models/public/base/_example.html.erb@
         | 
| 25 | 
            +
            # @views/view_models/project/_example.html.erb@
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            So the example template is taken from the @public/band@ directory. Why not from a @functionality/band@ directory (assuming the module is named @Functionality::Band@). The reason for this is that the current (v1.5.4) hierarchical rendering process uses superclass, which hops over Modules, rather than using ancestors, which wouldn't.
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            h2. Solution
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            #. Either override superclass, with all associated problems
         | 
| 32 | 
            +
            #. Or refit the whole hierarchical rendering into a HierarchicalRendering Class. (Preferred)
         | 
| @@ -88,7 +88,7 @@ module ViewModels | |
| 88 88 | 
             
                    # Combines left parentheses and filters.
         | 
| 89 89 | 
             
                    #
         | 
| 90 90 | 
             
                    def filtered_left_parentheses
         | 
| 91 | 
            -
                      filters.zip(left_parentheses). | 
| 91 | 
            +
                      filters.zip(left_parentheses).to_s
         | 
| 92 92 | 
             
                    end
         | 
| 93 93 |  | 
| 94 94 | 
             
                    # Generates the needed amount of parentheses to match the left parentheses.
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: view_models
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
               | 
| 4 | 
            +
              hash: 15
         | 
| 5 | 
            +
              prerelease: false
         | 
| 5 6 | 
             
              segments: 
         | 
| 6 7 | 
             
              - 2
         | 
| 7 8 | 
             
              - 0
         | 
| 8 9 | 
             
              - 0
         | 
| 9 | 
            -
               | 
| 10 | 
            -
              version: 2.0.0.ruby19
         | 
| 10 | 
            +
              version: 2.0.0
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Florian Hanke
         | 
| @@ -18,7 +18,7 @@ autorequire: | |
| 18 18 | 
             
            bindir: bin
         | 
| 19 19 | 
             
            cert_chain: []
         | 
| 20 20 |  | 
| 21 | 
            -
            date: 2010-07- | 
| 21 | 
            +
            date: 2010-07-20 00:00:00 +02:00
         | 
| 22 22 | 
             
            default_executable: 
         | 
| 23 23 | 
             
            dependencies: 
         | 
| 24 24 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -29,6 +29,7 @@ dependencies: | |
| 29 29 | 
             
                requirements: 
         | 
| 30 30 | 
             
                - - ">="
         | 
| 31 31 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 32 | 
            +
                    hash: 7
         | 
| 32 33 | 
             
                    segments: 
         | 
| 33 34 | 
             
                    - 2
         | 
| 34 35 | 
             
                    - 2
         | 
| @@ -44,6 +45,7 @@ dependencies: | |
| 44 45 | 
             
                requirements: 
         | 
| 45 46 | 
             
                - - ">="
         | 
| 46 47 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 48 | 
            +
                    hash: 13
         | 
| 47 49 | 
             
                    segments: 
         | 
| 48 50 | 
             
                    - 1
         | 
| 49 51 | 
             
                    - 2
         | 
| @@ -68,6 +70,7 @@ files: | |
| 68 70 | 
             
            - lib/padrino/lib/view_models/base.rb
         | 
| 69 71 | 
             
            - lib/rails2/README.textile
         | 
| 70 72 | 
             
            - lib/rails2/TODO.textile
         | 
| 73 | 
            +
            - lib/rails2/generators/view_models/USAGE
         | 
| 71 74 | 
             
            - lib/rails2/generators/view_models/templates/README
         | 
| 72 75 | 
             
            - lib/rails2/generators/view_models/templates/spec/view_model_spec.rb
         | 
| 73 76 | 
             
            - lib/rails2/generators/view_models/templates/view_models/view_model.rb
         | 
| @@ -81,18 +84,19 @@ files: | |
| 81 84 | 
             
            - lib/rails2/generators/view_models/templates/views/view_models/collection/_pagination.text.erb
         | 
| 82 85 | 
             
            - lib/rails2/generators/view_models/templates/views/view_models/collection/_table.html.haml
         | 
| 83 86 | 
             
            - lib/rails2/generators/view_models/templates/views/view_models/collection/_table.text.erb
         | 
| 84 | 
            -
            - lib/rails2/generators/view_models/USAGE
         | 
| 85 87 | 
             
            - lib/rails2/generators/view_models/view_models_generator.rb
         | 
| 86 88 | 
             
            - lib/rails2/init.rb
         | 
| 89 | 
            +
            - lib/rails2/lib/experimental/README.textile
         | 
| 87 90 | 
             
            - lib/rails2/lib/experimental/modules_in_render_hierarchy.rb
         | 
| 88 91 | 
             
            - lib/rails2/lib/extensions/view.rb
         | 
| 89 92 | 
             
            - lib/rails2/lib/helpers/collection.rb
         | 
| 90 93 | 
             
            - lib/rails2/lib/helpers/view.rb
         | 
| 94 | 
            +
            - lib/rails2/lib/view_models.rb
         | 
| 91 95 | 
             
            - lib/rails2/lib/view_models/base.rb
         | 
| 92 96 | 
             
            - lib/rails2/lib/view_models/view.rb
         | 
| 93 | 
            -
            - lib/rails2/lib/view_models.rb
         | 
| 94 97 | 
             
            - lib/shared/README.textile
         | 
| 95 98 | 
             
            - lib/shared/init.rb
         | 
| 99 | 
            +
            - lib/shared/lib/view_models.rb
         | 
| 96 100 | 
             
            - lib/shared/lib/view_models/base.rb
         | 
| 97 101 | 
             
            - lib/shared/lib/view_models/context_extractor.rb
         | 
| 98 102 | 
             
            - lib/shared/lib/view_models/extensions/active_record.rb
         | 
| @@ -101,7 +105,6 @@ files: | |
| 101 105 | 
             
            - lib/shared/lib/view_models/helpers/mapping.rb
         | 
| 102 106 | 
             
            - lib/shared/lib/view_models/path_store.rb
         | 
| 103 107 | 
             
            - lib/shared/lib/view_models/render_options.rb
         | 
| 104 | 
            -
            - lib/shared/lib/view_models.rb
         | 
| 105 108 | 
             
            - lib/view_models.rb
         | 
| 106 109 | 
             
            has_rdoc: true
         | 
| 107 110 | 
             
            homepage: http://floere.github.com/view_models
         | 
| @@ -118,6 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 118 121 | 
             
              requirements: 
         | 
| 119 122 | 
             
              - - ">="
         | 
| 120 123 | 
             
                - !ruby/object:Gem::Version 
         | 
| 124 | 
            +
                  hash: 3
         | 
| 121 125 | 
             
                  segments: 
         | 
| 122 126 | 
             
                  - 0
         | 
| 123 127 | 
             
                  version: "0"
         | 
| @@ -126,6 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 126 130 | 
             
              requirements: 
         | 
| 127 131 | 
             
              - - ">="
         | 
| 128 132 | 
             
                - !ruby/object:Gem::Version 
         | 
| 133 | 
            +
                  hash: 3
         | 
| 129 134 | 
             
                  segments: 
         | 
| 130 135 | 
             
                  - 0
         | 
| 131 136 | 
             
                  version: "0"
         |