jbuilder 2.2.8 → 2.2.9
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +11 -0
- data/jbuilder.gemspec +1 -1
- data/lib/jbuilder/jbuilder_template.rb +7 -2
- data/test/jbuilder_template_test.rb +17 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 65e2e51bfcf3cf17786986d6dc8826b0b0436955
         | 
| 4 | 
            +
              data.tar.gz: 23739f1c015a50a27239b0f96bb2f8d811f3ff59
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d37cb2048c0c0c5ff27f4fe5a0e9d868766bd8b96317686a98da3aea45ab7365bc98390d185072ee359da7b44281b3ab42f206f4d9ff3ee2ffabef8b4ebd5e02
         | 
| 7 | 
            +
              data.tar.gz: 14e3be5081174e64616bbbd189bd42fef0ddaacdfcdba260672b763224a52ece1adf3190a6feaf1b95074ddc4f1072009c186162ef2c4f00d21f6581954351ec
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,10 @@ | |
| 1 1 | 
             
            # Changelog
         | 
| 2 2 |  | 
| 3 | 
            +
            2.2.9
         | 
| 4 | 
            +
            -----
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            * Support `partial!` call with `locals` option in `JbuilderTemplate` [#251](https://github.com/rails/jbuilder/pull/251)
         | 
| 7 | 
            +
             | 
| 3 8 | 
             
            2.2.8
         | 
| 4 9 | 
             
            -----
         | 
| 5 10 | 
             
            * [Raise ArrayError when trying to add key to an array](https://github.com/rails/jbuilder/commit/869e4be1ad165ce986d8fca78311bdd3ed166087)
         | 
    
        data/README.md
    CHANGED
    
    | @@ -181,6 +181,17 @@ json.partial! partial: 'posts/post', collection: @posts, as: :post | |
| 181 181 | 
             
            json.comments @post.comments, partial: 'comment/comment', as: :comment
         | 
| 182 182 | 
             
            ```
         | 
| 183 183 |  | 
| 184 | 
            +
            You can pass any objects into partial templates with or without `:locals` option.
         | 
| 185 | 
            +
             | 
| 186 | 
            +
            ```ruby
         | 
| 187 | 
            +
            json.partial! 'sub_template', locals: { user: user }
         | 
| 188 | 
            +
             | 
| 189 | 
            +
            # or
         | 
| 190 | 
            +
             | 
| 191 | 
            +
            json.partial! 'sub_template', user: user
         | 
| 192 | 
            +
            ```
         | 
| 193 | 
            +
             | 
| 194 | 
            +
             | 
| 184 195 | 
             
            You can explicitly make Jbuilder object return null if you want:
         | 
| 185 196 |  | 
| 186 197 | 
             
            ``` ruby
         | 
    
        data/jbuilder.gemspec
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Gem::Specification.new do |s|
         | 
| 2 2 | 
             
              s.name     = 'jbuilder'
         | 
| 3 | 
            -
              s.version  = '2.2. | 
| 3 | 
            +
              s.version  = '2.2.9'
         | 
| 4 4 | 
             
              s.authors  = ['David Heinemeier Hansson', 'Pavel Pravosud']
         | 
| 5 5 | 
             
              s.email    = ['david@37signals.com', 'pavel@pravosud.com']
         | 
| 6 6 | 
             
              s.summary  = 'Create JSON structures via a Builder-style DSL'
         | 
| @@ -17,11 +17,16 @@ class JbuilderTemplate < Jbuilder | |
| 17 17 | 
             
              def partial!(name_or_options, locals = {})
         | 
| 18 18 | 
             
                case name_or_options
         | 
| 19 19 | 
             
                when ::Hash
         | 
| 20 | 
            -
                  # partial! partial: 'name',  | 
| 20 | 
            +
                  # partial! partial: 'name', foo: 'bar'
         | 
| 21 21 | 
             
                  options = name_or_options
         | 
| 22 22 | 
             
                else
         | 
| 23 | 
            +
                  # partial! 'name', locals: {foo: 'bar'}
         | 
| 24 | 
            +
                  if locals.one? && (locals.keys.first == :locals)
         | 
| 25 | 
            +
                    options = locals.merge(partial: name_or_options)
         | 
| 26 | 
            +
                  else
         | 
| 27 | 
            +
                    options = { partial: name_or_options, locals: locals }
         | 
| 28 | 
            +
                  end
         | 
| 23 29 | 
             
                  # partial! 'name', foo: 'bar'
         | 
| 24 | 
            -
                  options = { partial: name_or_options, locals: locals }
         | 
| 25 30 | 
             
                  as = locals.delete(:as)
         | 
| 26 31 | 
             
                  options[:as] = as if as.present?
         | 
| 27 32 | 
             
                  options[:collection] = locals[:collection] if locals.key?(:collection)
         | 
| @@ -40,7 +40,7 @@ class JbuilderTemplateTest < ActionView::TestCase | |
| 40 40 |  | 
| 41 41 | 
             
              def partials
         | 
| 42 42 | 
             
                {
         | 
| 43 | 
            -
                  '_partial.json.jbuilder'  => 'json.content  | 
| 43 | 
            +
                  '_partial.json.jbuilder'  => 'foo ||= "hello"; json.content foo',
         | 
| 44 44 | 
             
                  '_blog_post.json.jbuilder' => BLOG_POST_PARTIAL,
         | 
| 45 45 | 
             
                  '_collection.json.jbuilder' => COLLECTION_PARTIAL
         | 
| 46 46 | 
             
                }
         | 
| @@ -110,6 +110,22 @@ class JbuilderTemplateTest < ActionView::TestCase | |
| 110 110 | 
             
                assert_equal 'hello', MultiJson.load(json)['content']
         | 
| 111 111 | 
             
              end
         | 
| 112 112 |  | 
| 113 | 
            +
              test 'partial! + locals via :locals option' do
         | 
| 114 | 
            +
                json = render_jbuilder <<-JBUILDER
         | 
| 115 | 
            +
                  json.partial! 'partial', locals: { foo: 'howdy' }
         | 
| 116 | 
            +
                JBUILDER
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                assert_equal 'howdy', MultiJson.load(json)['content']
         | 
| 119 | 
            +
              end
         | 
| 120 | 
            +
             | 
| 121 | 
            +
              test 'partial! + locals without :locals key' do
         | 
| 122 | 
            +
                json = render_jbuilder <<-JBUILDER
         | 
| 123 | 
            +
                  json.partial! 'partial', foo: 'goodbye'
         | 
| 124 | 
            +
                JBUILDER
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                assert_equal 'goodbye', MultiJson.load(json)['content']
         | 
| 127 | 
            +
              end
         | 
| 128 | 
            +
             | 
| 113 129 | 
             
              test 'partial! renders collections' do
         | 
| 114 130 | 
             
                json = render_jbuilder <<-JBUILDER
         | 
| 115 131 | 
             
                  json.partial! 'blog_post', :collection => BLOG_POST_COLLECTION, :as => :blog_post
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: jbuilder
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.2. | 
| 4 | 
            +
              version: 2.2.9
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - David Heinemeier Hansson
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2015- | 
| 12 | 
            +
            date: 2015-03-03 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activesupport
         |