papercraft 0.13 → 0.14
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 +4 -0
- data/lib/papercraft/component.rb +6 -14
- data/lib/papercraft/renderer.rb +11 -10
- data/lib/papercraft/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8ecbcde7e33f35958acc4ca0c5c0623468563f14322675a3c7315ed92e0b289c
         | 
| 4 | 
            +
              data.tar.gz: 5f6bdcdee15ef9ca04bc982405bd07ea3da49c4a43fbd8fd95a70494e0c43dab
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7496b82113125d5f20287cb8b2f6607acfe7c16dda2a4670152867a175c877c33865f85ad155e733509b55e36067d0c3ea60578bf55f041e95bb46e3c1fa84f9
         | 
| 7 | 
            +
              data.tar.gz: 91d5a7059eaf4b760412d9440f8ae08b48486c6ca6fc423a1ce32eb61a9a376385b4830b88b8a2ca1721971c48e4525a99d732d7650522fa71a55654c63aae86
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/lib/papercraft/component.rb
    CHANGED
    
    | @@ -106,11 +106,8 @@ module Papercraft | |
| 106 106 | 
             
                  template = self
         | 
| 107 107 | 
             
                  Renderer.verify_proc_parameters(template, a, b)
         | 
| 108 108 | 
             
                  renderer_class.new do
         | 
| 109 | 
            -
                    if block
         | 
| 110 | 
            -
             | 
| 111 | 
            -
                    else
         | 
| 112 | 
            -
                      instance_exec(*a, **b, &template)
         | 
| 113 | 
            -
                    end
         | 
| 109 | 
            +
                    push_emit_yield_block(block) if block
         | 
| 110 | 
            +
                    instance_exec(*a, **b, &template)
         | 
| 114 111 | 
             
                  end.to_s
         | 
| 115 112 | 
             
                rescue ArgumentError => e
         | 
| 116 113 | 
             
                  raise Papercraft::Error, e.message
         | 
| @@ -136,15 +133,10 @@ module Papercraft | |
| 136 133 | 
             
                # @return [Papercraft::Component] applied component
         | 
| 137 134 | 
             
                def apply(*a, **b, &block)
         | 
| 138 135 | 
             
                  template = self
         | 
| 139 | 
            -
                   | 
| 140 | 
            -
                     | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
                  else
         | 
| 144 | 
            -
                    Component.new(&proc do |*x, **y|
         | 
| 145 | 
            -
                      instance_exec(*a, *x, **b, **y, &template)
         | 
| 146 | 
            -
                    end)
         | 
| 147 | 
            -
                  end
         | 
| 136 | 
            +
                  Component.new(&proc do |*x, **y|
         | 
| 137 | 
            +
                    push_emit_yield_block(block) if block
         | 
| 138 | 
            +
                    instance_exec(*a, *x, **b, **y, &template)
         | 
| 139 | 
            +
                  end)
         | 
| 148 140 | 
             
                end
         | 
| 149 141 |  | 
| 150 142 | 
             
                # Returns the Renderer class used for rendering the templates, according to
         | 
    
        data/lib/papercraft/renderer.rb
    CHANGED
    
    | @@ -242,9 +242,10 @@ module Papercraft | |
| 242 242 | 
             
                # @param **b [Hash] named arguments to pass to a proc
         | 
| 243 243 | 
             
                # @return [void]
         | 
| 244 244 | 
             
                def emit_yield(*a, **b)
         | 
| 245 | 
            -
                   | 
| 245 | 
            +
                  block = @emit_yield_stack&.pop
         | 
| 246 | 
            +
                  raise Papercraft::Error, "No block given" unless block
         | 
| 246 247 |  | 
| 247 | 
            -
                  instance_exec(*a, **b,  | 
| 248 | 
            +
                  instance_exec(*a, **b, &block)
         | 
| 248 249 | 
             
                end
         | 
| 249 250 |  | 
| 250 251 | 
             
                # Defers the given block to be evaluated later. Deferred evaluation allows
         | 
| @@ -304,19 +305,19 @@ module Papercraft | |
| 304 305 | 
             
                private
         | 
| 305 306 |  | 
| 306 307 | 
             
                # Escapes text. This method must be overriden in descendant classes.
         | 
| 308 | 
            +
                #
         | 
| 309 | 
            +
                # @param text [String] text to be escaped
         | 
| 307 310 | 
             
                def escape_text(text)
         | 
| 308 311 | 
             
                  raise NotImplementedError
         | 
| 309 312 | 
             
                end
         | 
| 310 313 |  | 
| 311 | 
            -
                #  | 
| 312 | 
            -
                 | 
| 313 | 
            -
             | 
| 314 | 
            -
             | 
| 315 | 
            -
                   | 
| 316 | 
            -
                ensure
         | 
| 317 | 
            -
                  @inner_block = old_block
         | 
| 314 | 
            +
                # Pushes the given block onto the emit_yield stack.
         | 
| 315 | 
            +
                #
         | 
| 316 | 
            +
                # @param block [Proc] block
         | 
| 317 | 
            +
                def push_emit_yield_block(block)
         | 
| 318 | 
            +
                  (@emit_yield_stack ||= []) << block
         | 
| 318 319 | 
             
                end
         | 
| 319 | 
            -
             | 
| 320 | 
            +
             | 
| 320 321 | 
             
                # Emits tag attributes into the rendering buffer
         | 
| 321 322 | 
             
                # @param props [Hash] tag attributes
         | 
| 322 323 | 
             
                # @return [void]
         | 
    
        data/lib/papercraft/version.rb
    CHANGED