papercraft 3.0.1 → 3.1.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.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +8 -0
 - data/lib/papercraft/compiler.rb +18 -2
 - data/lib/papercraft/proc.rb +29 -0
 - data/lib/papercraft/version.rb +1 -1
 - metadata +2 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: ae9f80f18ef49a3766980675f5da9f841091f25cb42755d0f14b7672c473f410
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 91b85643852a00f65daa355d8b89fcf0038e370ccbfe6869686ad5a3e33011bc
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 27f79243f5d6dceb20f3bd5b049c37943715f1667d4b9a7fab1023b1c91c6ddac4052b2ba1a1142de3ed57600ed22faeab93604e291c1114b9302e0ca29e215b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 8562e5ec48d3795da75c94a12c9f422ff0f42b09d4ed042626ee3210bcce570417a656bdb4c5ed86b1cced2c65bfb27418de52d3e35b818a8537f95e1771eae2
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/lib/papercraft/compiler.rb
    CHANGED
    
    | 
         @@ -699,6 +699,16 @@ module Papercraft 
     | 
|
| 
       699 
699 
     | 
    
         
             
                  @pending_html_parts << [loc, str]
         
     | 
| 
       700 
700 
     | 
    
         
             
                end
         
     | 
| 
       701 
701 
     | 
    
         | 
| 
      
 702 
     | 
    
         
            +
                def visit_if_node_ternary(node)
         
     | 
| 
      
 703 
     | 
    
         
            +
                  emit_code(node.predicate)
         
     | 
| 
      
 704 
     | 
    
         
            +
                  emit_code(node.then_keyword_loc)
         
     | 
| 
      
 705 
     | 
    
         
            +
                  @in_ternary_op = true
         
     | 
| 
      
 706 
     | 
    
         
            +
                  emit_code(node.statements)
         
     | 
| 
      
 707 
     | 
    
         
            +
                  emit_code(node.subsequent)
         
     | 
| 
      
 708 
     | 
    
         
            +
                  flush_html_parts!
         
     | 
| 
      
 709 
     | 
    
         
            +
                  @in_ternary_op = nil
         
     | 
| 
      
 710 
     | 
    
         
            +
                end
         
     | 
| 
      
 711 
     | 
    
         
            +
             
     | 
| 
       702 
712 
     | 
    
         
             
                # Flushes pending HTML parts to the source code buffer.
         
     | 
| 
       703 
713 
     | 
    
         
             
                #
         
     | 
| 
       704 
714 
     | 
    
         
             
                # @return [void]
         
     | 
| 
         @@ -706,7 +716,11 @@ module Papercraft 
     | 
|
| 
       706 
716 
     | 
    
         
             
                  return if @pending_html_parts.empty?
         
     | 
| 
       707 
717 
     | 
    
         | 
| 
       708 
718 
     | 
    
         
             
                  adjust_whitespace(@html_loc_start, advance_to_end: false)
         
     | 
| 
       709 
     | 
    
         
            -
                   
     | 
| 
      
 719 
     | 
    
         
            +
                  if @in_ternary_op
         
     | 
| 
      
 720 
     | 
    
         
            +
                    emit('(; __buffer__')
         
     | 
| 
      
 721 
     | 
    
         
            +
                  else
         
     | 
| 
      
 722 
     | 
    
         
            +
                    emit('; __buffer__')
         
     | 
| 
      
 723 
     | 
    
         
            +
                  end
         
     | 
| 
       710 
724 
     | 
    
         
             
                  concatenated = +''
         
     | 
| 
       711 
725 
     | 
    
         | 
| 
       712 
726 
     | 
    
         
             
                  last_loc = @html_loc_start
         
     | 
| 
         @@ -722,7 +736,9 @@ module Papercraft 
     | 
|
| 
       722 
736 
     | 
    
         
             
                    last_loc = loc
         
     | 
| 
       723 
737 
     | 
    
         
             
                  end
         
     | 
| 
       724 
738 
     | 
    
         
             
                  emit_html_buffer_push(concatenated, quotes: true) if !concatenated.empty?
         
     | 
| 
       725 
     | 
    
         
            -
             
     | 
| 
      
 739 
     | 
    
         
            +
                  if @in_ternary_op
         
     | 
| 
      
 740 
     | 
    
         
            +
                    emit(')')
         
     | 
| 
      
 741 
     | 
    
         
            +
                  end
         
     | 
| 
       726 
742 
     | 
    
         
             
                  @pending_html_parts.clear
         
     | 
| 
       727 
743 
     | 
    
         | 
| 
       728 
744 
     | 
    
         
             
                  @last_loc = last_loc
         
     | 
| 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require_relative '../papercraft'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module Papercraft
         
     | 
| 
      
 6 
     | 
    
         
            +
              module ProcAPI
         
     | 
| 
      
 7 
     | 
    
         
            +
                def ast
         
     | 
| 
      
 8 
     | 
    
         
            +
                  Papercraft.ast(self)
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                def compiled_code
         
     | 
| 
      
 12 
     | 
    
         
            +
                  Papercraft.compiled_code(self)
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                def to_html(*, **, &)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  Papercraft.html(self, *, **, &)
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                def to_xml(*, **, &)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  Papercraft.xml(self, *, **, &)
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                def apply(*, **, &)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  Papercraft.apply(self, *, **, &)
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            ::Proc.prepend(Papercraft::ProcAPI)
         
     | 
    
        data/lib/papercraft/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: papercraft
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Sharon Rosner
         
     | 
| 
         @@ -134,6 +134,7 @@ files: 
     | 
|
| 
       134 
134 
     | 
    
         
             
            - lib/papercraft/compiler.rb
         
     | 
| 
       135 
135 
     | 
    
         
             
            - lib/papercraft/compiler/nodes.rb
         
     | 
| 
       136 
136 
     | 
    
         
             
            - lib/papercraft/compiler/tag_translator.rb
         
     | 
| 
      
 137 
     | 
    
         
            +
            - lib/papercraft/proc.rb
         
     | 
| 
       137 
138 
     | 
    
         
             
            - lib/papercraft/proc_ext.rb
         
     | 
| 
       138 
139 
     | 
    
         
             
            - lib/papercraft/template.rb
         
     | 
| 
       139 
140 
     | 
    
         
             
            - lib/papercraft/version.rb
         
     |