re_duxml 0.2.2 → 0.2.3
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/lib/re_duxml.rb +6 -1
- data/lib/re_duxml/evaluate.rb +3 -1
- data/lib/re_duxml/evaluate/parser.rb +2 -2
- data/lib/ruby_ext/macro.rb +6 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 137900a8cff029f268daeb5a3e7423dd2cc7976f
         | 
| 4 | 
            +
              data.tar.gz: 1446449984ed19d2545ccf2ee42a1f64bb0fb922
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7d89f27bbf73a6311ffc0b7c38458e7b6959f07aea9dbffa2af3d1b7cbff0b0e2dba4a4b3034a7a5c7e5ba55fbe9dc15377f4f5d46fb02d5955b0c4bd9ac1ce1
         | 
| 7 | 
            +
              data.tar.gz: 8035361a455de992579d58bab2e563172dbf39cfcf85399c61589cb6b10ee15db0fac7340e57c94bea58a55cbc9ff48c35f44bfce7bd25093675c33ce7991293
         | 
    
        data/lib/re_duxml.rb
    CHANGED
    
    | @@ -90,7 +90,12 @@ module ReDuxml | |
| 90 90 | 
             
                return output_str if questions.empty?
         | 
| 91 91 | 
             
                questions.each do |question|
         | 
| 92 92 | 
             
                  reply = Macro.new e.evaluate(question, param_hash).to_s
         | 
| 93 | 
            -
                  replacement_str = reply.parameterized? | 
| 93 | 
            +
                  replacement_str = if reply.parameterized?
         | 
| 94 | 
            +
                      reply.to_s
         | 
| 95 | 
            +
                    else
         | 
| 96 | 
            +
                      macro_value = reply.demacro
         | 
| 97 | 
            +
                      Regexp.string.match(macro_value) ? macro_value[1..-2] : macro_value
         | 
| 98 | 
            +
                    end
         | 
| 94 99 | 
             
                  macro_string = Macro.new(question).macro_string
         | 
| 95 100 | 
             
                  output_str.gsub!(macro_string, replacement_str)
         | 
| 96 101 | 
             
                end
         | 
    
        data/lib/re_duxml/evaluate.rb
    CHANGED
    
    | @@ -56,7 +56,9 @@ module ReDuxml | |
| 56 56 | 
             
                include Symbolic
         | 
| 57 57 |  | 
| 58 58 | 
             
                def reduce(_ast)
         | 
| 59 | 
            -
                   | 
| 59 | 
            +
                  return _ast if _ast.children.empty?
         | 
| 60 | 
            +
                  ast = _ast.type.respond_to?(:symbol) ? _ast
         | 
| 61 | 
            +
                    : new_ast(parser.logic[_ast.type.to_s], _ast.children.dup)
         | 
| 60 62 | 
             
                  if ast.children.any?
         | 
| 61 63 | 
             
                    operator = ast.type
         | 
| 62 64 | 
             
                    args = ast.children.collect do |c|
         | 
| @@ -126,7 +126,7 @@ module ReDuxml | |
| 126 126 | 
             
                  unless output.count == 1
         | 
| 127 127 | 
             
                    fail ParseError, "Invalid statement"
         | 
| 128 128 | 
             
                  end
         | 
| 129 | 
            -
             | 
| 129 | 
            +
                  
         | 
| 130 130 | 
             
                  output.first
         | 
| 131 131 | 
             
                end # def parse(expr)
         | 
| 132 132 |  | 
| @@ -142,4 +142,4 @@ module ReDuxml | |
| 142 142 | 
             
                  Array.new(count) { output.pop }.reverse.compact
         | 
| 143 143 | 
             
                end
         | 
| 144 144 | 
             
              end # class Parser
         | 
| 145 | 
            -
            end # module ReDuxml
         | 
| 145 | 
            +
            end # module ReDuxml
         | 
    
        data/lib/ruby_ext/macro.rb
    CHANGED
    
    | @@ -44,8 +44,13 @@ class Macro | |
| 44 44 | 
             
                macro_string[2..-2]
         | 
| 45 45 | 
             
              end
         | 
| 46 46 |  | 
| 47 | 
            +
              def to_s
         | 
| 48 | 
            +
                macro_string
         | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
             | 
| 47 51 | 
             
              # returns nil if not, and match data for any parameter names found
         | 
| 48 52 | 
             
              def parameterized?
         | 
| 53 | 
            +
                return false if macro_string[2] == '"' && macro_string[-2] == '"'
         | 
| 49 54 | 
             
                macro_string.match Regexp.identifier
         | 
| 50 55 | 
             
              end
         | 
| 51 | 
            -
            end # class Macro
         | 
| 56 | 
            +
            end # class Macro
         |