bade 0.2.4 → 0.2.5
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/Bade.gemspec +7 -6
 - data/Gemfile +8 -3
 - data/lib/bade/ast/node.rb +0 -1
 - data/lib/bade/ast/node/mixin_node.rb +3 -3
 - data/lib/bade/ast/node/static_text_node.rb +4 -2
 - data/lib/bade/ast/node/value_node.rb +4 -2
 - data/lib/bade/generator.rb +1 -5
 - data/lib/bade/parser.rb +3 -1
 - data/lib/bade/parser/parser_constants.rb +4 -4
 - data/lib/bade/parser/parser_lines.rb +13 -13
 - data/lib/bade/parser/parser_mixin.rb +10 -10
 - data/lib/bade/parser/parser_ruby_code.rb +17 -7
 - data/lib/bade/parser/parser_tag.rb +4 -4
 - data/lib/bade/parser/parser_text.rb +3 -3
 - data/lib/bade/precompiled.rb +6 -3
 - data/lib/bade/renderer.rb +3 -0
 - data/lib/bade/ruby2_keywords.rb +2 -0
 - data/lib/bade/ruby_extensions/string.rb +0 -5
 - data/lib/bade/runtime/block.rb +4 -2
 - data/lib/bade/runtime/mixin.rb +32 -29
 - data/lib/bade/version.rb +1 -1
 - metadata +26 -20
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 148aef838267196453c729800e51c4d3b1f194586f5226e00c659d8f3fc80e58
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: dff1e493ea8a08976cd6cdd1fc80cf937cb2582bc41630c2ca6198fc9eab5ada
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 86853f78cc0d8647ab5d639664dbb12d5e7101165641d91e4afdbc2affb3cf2c5434ea85bc7f9f92cec7ed571d34a4f23dd4bc0db6eaea9522df29e986df071f
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 335be41aa317132979197275b9c6fad798525af1247d2878239229e4f81b6beaac916000af24a1da0ccd61ea22ee3356127aa7a485fe806cc9385ef8945370be
         
     | 
    
        data/Bade.gemspec
    CHANGED
    
    | 
         @@ -1,11 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # coding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            lib = File.expand_path(' 
     | 
| 
      
 4 
     | 
    
         
            +
            lib = File.expand_path('lib', __dir__)
         
     | 
| 
       4 
5 
     | 
    
         
             
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
7 
     | 
    
         
             
            require 'bade/version'
         
     | 
| 
       7 
8 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
9 
     | 
    
         
             
            Gem::Specification.new do |spec|
         
     | 
| 
       10 
10 
     | 
    
         
             
              spec.name        = 'bade'
         
     | 
| 
       11 
11 
     | 
    
         
             
              spec.version     = Bade::VERSION
         
     | 
| 
         @@ -16,13 +16,14 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       16 
16 
     | 
    
         
             
              spec.license     = 'MIT'
         
     | 
| 
       17 
17 
     | 
    
         
             
              spec.required_ruby_version = '>= 2.0'
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
              spec.files         = Dir['bin/**/*'] + Dir['lib/**/*'] + %w 
     | 
| 
      
 19 
     | 
    
         
            +
              spec.files         = Dir['bin/**/*'] + Dir['lib/**/*'] + %w[Bade.gemspec Gemfile README.md]
         
     | 
| 
       20 
20 
     | 
    
         
             
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         
     | 
| 
       21 
21 
     | 
    
         
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
       22 
22 
     | 
    
         
             
              spec.require_paths = ['lib']
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
              spec. 
     | 
| 
      
 24 
     | 
    
         
            +
              spec.add_dependency 'psych', '>= 2.2', '< 4.0'
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              spec.add_development_dependency 'rake'
         
     | 
| 
       25 
27 
     | 
    
         
             
              spec.add_development_dependency 'rspec', '~> 3.2'
         
     | 
| 
       26 
     | 
    
         
            -
              spec.add_development_dependency ' 
     | 
| 
       27 
     | 
    
         
            -
              spec.add_development_dependency 'rubocop', '~> 0.35'
         
     | 
| 
      
 28 
     | 
    
         
            +
              spec.add_development_dependency 'rubocop', '~> 0.50.0'
         
     | 
| 
       28 
29 
     | 
    
         
             
            end
         
     | 
    
        data/Gemfile
    CHANGED
    
    | 
         @@ -1,8 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            source 'https://rubygems.org'
         
     | 
| 
       2 
4 
     | 
    
         | 
| 
       3 
5 
     | 
    
         
             
            gemspec
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            gem 'coveralls', require: false
         
     | 
| 
       6 
7 
     | 
    
         
             
            gem 'benchmark-ips', require: false
         
     | 
| 
       7 
     | 
    
         
            -
            gem ' 
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
            gem 'coveralls', require: false
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            group :banchmarks, optional: true do
         
     | 
| 
      
 11 
     | 
    
         
            +
              gem 'flamegraph'
         
     | 
| 
      
 12 
     | 
    
         
            +
              gem 'ruby-prof'
         
     | 
| 
      
 13 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/bade/ast/node.rb
    CHANGED
    
    
| 
         @@ -22,19 +22,19 @@ module Bade 
     | 
|
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
                class MixinDeclarationNode < MixinCommonNode
         
     | 
| 
       24 
24 
     | 
    
         
             
                  def allowed_parameter_types
         
     | 
| 
       25 
     | 
    
         
            -
                    [ 
     | 
| 
      
 25 
     | 
    
         
            +
                    %i[mixin_param mixin_key_param mixin_block_param]
         
     | 
| 
       26 
26 
     | 
    
         
             
                  end
         
     | 
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                class MixinBlockNode < MixinCommonNode
         
     | 
| 
       30 
30 
     | 
    
         
             
                  def allowed_parameter_types
         
     | 
| 
       31 
     | 
    
         
            -
                    [ 
     | 
| 
      
 31 
     | 
    
         
            +
                    %i[mixin_param mixin_key_param]
         
     | 
| 
       32 
32 
     | 
    
         
             
                  end
         
     | 
| 
       33 
33 
     | 
    
         
             
                end
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
                class MixinCallNode < MixinCommonNode
         
     | 
| 
       36 
36 
     | 
    
         
             
                  def allowed_parameter_types
         
     | 
| 
       37 
     | 
    
         
            -
                    [ 
     | 
| 
      
 37 
     | 
    
         
            +
                    %i[mixin_param mixin_key_param]
         
     | 
| 
       38 
38 
     | 
    
         
             
                  end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
                  def blocks
         
     | 
| 
         @@ -1,5 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require_relative '../../ruby2_keywords'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       3 
5 
     | 
    
         
             
            module Bade
         
     | 
| 
       4 
6 
     | 
    
         
             
              module AST
         
     | 
| 
       5 
7 
     | 
    
         
             
                class StaticTextNode < Node
         
     | 
| 
         @@ -11,8 +13,8 @@ module Bade 
     | 
|
| 
       11 
13 
     | 
    
         
             
                  #
         
     | 
| 
       12 
14 
     | 
    
         
             
                  attr_accessor :escaped
         
     | 
| 
       13 
15 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                  def initialize(*args)
         
     | 
| 
       15 
     | 
    
         
            -
                    super
         
     | 
| 
      
 16 
     | 
    
         
            +
                  ruby2_keywords def initialize(*args)
         
     | 
| 
      
 17 
     | 
    
         
            +
                    super(*args)
         
     | 
| 
       16 
18 
     | 
    
         | 
| 
       17 
19 
     | 
    
         
             
                    @escaped = false
         
     | 
| 
       18 
20 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -1,5 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require_relative '../../ruby2_keywords'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       3 
5 
     | 
    
         
             
            module Bade
         
     | 
| 
       4 
6 
     | 
    
         
             
              module AST
         
     | 
| 
       5 
7 
     | 
    
         
             
                class ValueNode < Node
         
     | 
| 
         @@ -15,8 +17,8 @@ module Bade 
     | 
|
| 
       15 
17 
     | 
    
         
             
                  #
         
     | 
| 
       16 
18 
     | 
    
         
             
                  attr_accessor :conditional
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                  def initialize(*args)
         
     | 
| 
       19 
     | 
    
         
            -
                    super
         
     | 
| 
      
 20 
     | 
    
         
            +
                  ruby2_keywords def initialize(*args)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    super(*args)
         
     | 
| 
       20 
22 
     | 
    
         | 
| 
       21 
23 
     | 
    
         
             
                    @escaped = false
         
     | 
| 
       22 
24 
     | 
    
         
             
                    @conditional = false
         
     | 
    
        data/lib/bade/generator.rb
    CHANGED
    
    | 
         @@ -78,7 +78,6 @@ module Bade 
     | 
|
| 
       78 
78 
     | 
    
         
             
                  @buff << '  ' * @code_indent + text
         
     | 
| 
       79 
79 
     | 
    
         
             
                end
         
     | 
| 
       80 
80 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
81 
     | 
    
         
             
                # @param document [Bade::Document]
         
     | 
| 
       83 
82 
     | 
    
         
             
                #
         
     | 
| 
       84 
83 
     | 
    
         
             
                def visit_document(document)
         
     | 
| 
         @@ -158,8 +157,7 @@ module Bade 
     | 
|
| 
       158 
157 
     | 
    
         
             
                    buff_print_text output_code
         
     | 
| 
       159 
158 
     | 
    
         | 
| 
       160 
159 
     | 
    
         
             
                  when :newline
         
     | 
| 
       161 
     | 
    
         
            -
                    #  
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
      
 160 
     | 
    
         
            +
                    # no-op
         
     | 
| 
       163 
161 
     | 
    
         
             
                  when :import
         
     | 
| 
       164 
162 
     | 
    
         
             
                    base_path = File.expand_path(current_node.value, File.dirname(@document.file_path))
         
     | 
| 
       165 
163 
     | 
    
         
             
                    load_path = if base_path.end_with?('.rb') && File.exist?(base_path)
         
     | 
| 
         @@ -362,8 +360,6 @@ module Bade 
     | 
|
| 
       362 
360 
     | 
    
         
             
                  buff_code '})'
         
     | 
| 
       363 
361 
     | 
    
         
             
                end
         
     | 
| 
       364 
362 
     | 
    
         | 
| 
       365 
     | 
    
         
            -
             
     | 
| 
       366 
     | 
    
         
            -
             
     | 
| 
       367 
363 
     | 
    
         
             
                # @param [String] str
         
     | 
| 
       368 
364 
     | 
    
         
             
                #
         
     | 
| 
       369 
365 
     | 
    
         
             
                # @return [Void]
         
     | 
    
        data/lib/bade/parser.rb
    CHANGED
    
    | 
         @@ -126,7 +126,9 @@ module Bade 
     | 
|
| 
       126 
126 
     | 
    
         | 
| 
       127 
127 
     | 
    
         
             
                def parse_import
         
     | 
| 
       128 
128 
     | 
    
         
             
                  # TODO: change this to something better
         
     | 
| 
       129 
     | 
    
         
            -
                   
     | 
| 
      
 129 
     | 
    
         
            +
                  # rubocop:disable Security/Eval
         
     | 
| 
      
 130 
     | 
    
         
            +
                  path = eval(@line)
         
     | 
| 
      
 131 
     | 
    
         
            +
                  # rubocop:enable Security/Eval
         
     | 
| 
       130 
132 
     | 
    
         
             
                  append_node(:import, value: path)
         
     | 
| 
       131 
133 
     | 
    
         | 
| 
       132 
134 
     | 
    
         
             
                  @dependency_paths << path unless @dependency_paths.include?(path)
         
     | 
| 
         @@ -9,10 +9,10 @@ module Bade 
     | 
|
| 
       9 
9 
     | 
    
         
             
                NAME_RE_STRING = "(#{WORD_RE}(?:#{WORD_RE}|:|-|_)*)".freeze
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                ATTR_NAME_RE_STRING = "\\A\\s*#{NAME_RE_STRING}".freeze
         
     | 
| 
       12 
     | 
    
         
            -
                CODE_ATTR_RE = /#{ATTR_NAME_RE_STRING}\s*&?:\s 
     | 
| 
      
 12 
     | 
    
         
            +
                CODE_ATTR_RE = /#{ATTR_NAME_RE_STRING}\s*&?:\s*/.freeze
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                TAG_RE = /\A#{NAME_RE_STRING} 
     | 
| 
       15 
     | 
    
         
            -
                CLASS_TAG_RE = /\A\.#{NAME_RE_STRING} 
     | 
| 
       16 
     | 
    
         
            -
                ID_TAG_RE = /\A##{NAME_RE_STRING} 
     | 
| 
      
 14 
     | 
    
         
            +
                TAG_RE = /\A#{NAME_RE_STRING}/.freeze
         
     | 
| 
      
 15 
     | 
    
         
            +
                CLASS_TAG_RE = /\A\.#{NAME_RE_STRING}/.freeze
         
     | 
| 
      
 16 
     | 
    
         
            +
                ID_TAG_RE = /\A##{NAME_RE_STRING}/.freeze
         
     | 
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
18 
     | 
    
         
             
            end
         
     | 
| 
         @@ -6,19 +6,19 @@ module Bade 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              class Parser
         
     | 
| 
       8 
8 
     | 
    
         
             
                module LineIndicatorRegexps
         
     | 
| 
       9 
     | 
    
         
            -
                  IMPORT = /\Aimport  
     | 
| 
       10 
     | 
    
         
            -
                  MIXIN_DECL = /\Amixin #{NAME_RE_STRING} 
     | 
| 
       11 
     | 
    
         
            -
                  MIXIN_CALL = /\A\+#{NAME_RE_STRING} 
     | 
| 
       12 
     | 
    
         
            -
                  BLOCK_DECLARATION = /\Ablock #{NAME_RE_STRING} 
     | 
| 
       13 
     | 
    
         
            -
                  HTML_COMMENT = %r{\A//! }
         
     | 
| 
       14 
     | 
    
         
            -
                  NORMAL_COMMENT = %r{\A//}
         
     | 
| 
       15 
     | 
    
         
            -
                  TEXT_BLOCK_START = /\A\|( ?) 
     | 
| 
       16 
     | 
    
         
            -
                  INLINE_HTML = /\A 
     | 
| 
       17 
     | 
    
         
            -
                  CODE_BLOCK = /\A 
     | 
| 
       18 
     | 
    
         
            -
                  OUTPUT_BLOCK = /\A(\??)(&?) 
     | 
| 
       19 
     | 
    
         
            -
                  DOCTYPE = /\Adoctype\s/i
         
     | 
| 
       20 
     | 
    
         
            -
                  TAG_CLASS_START_BLOCK = /\A 
     | 
| 
       21 
     | 
    
         
            -
                  TAG_ID_START_BLOCK = /\A 
     | 
| 
      
 9 
     | 
    
         
            +
                  IMPORT = /\Aimport /.freeze
         
     | 
| 
      
 10 
     | 
    
         
            +
                  MIXIN_DECL = /\Amixin #{NAME_RE_STRING}/.freeze
         
     | 
| 
      
 11 
     | 
    
         
            +
                  MIXIN_CALL = /\A\+#{NAME_RE_STRING}/.freeze
         
     | 
| 
      
 12 
     | 
    
         
            +
                  BLOCK_DECLARATION = /\Ablock #{NAME_RE_STRING}/.freeze
         
     | 
| 
      
 13 
     | 
    
         
            +
                  HTML_COMMENT = %r{\A//! }.freeze
         
     | 
| 
      
 14 
     | 
    
         
            +
                  NORMAL_COMMENT = %r{\A//}.freeze
         
     | 
| 
      
 15 
     | 
    
         
            +
                  TEXT_BLOCK_START = /\A\|( ?)/.freeze
         
     | 
| 
      
 16 
     | 
    
         
            +
                  INLINE_HTML = /\A</.freeze
         
     | 
| 
      
 17 
     | 
    
         
            +
                  CODE_BLOCK = /\A-/.freeze
         
     | 
| 
      
 18 
     | 
    
         
            +
                  OUTPUT_BLOCK = /\A(\??)(&?)=/.freeze
         
     | 
| 
      
 19 
     | 
    
         
            +
                  DOCTYPE = /\Adoctype\s/i.freeze
         
     | 
| 
      
 20 
     | 
    
         
            +
                  TAG_CLASS_START_BLOCK = /\A\./.freeze
         
     | 
| 
      
 21 
     | 
    
         
            +
                  TAG_ID_START_BLOCK = /\A#/.freeze
         
     | 
| 
       22 
22 
     | 
    
         
             
                end
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                def reset(lines = nil, stacks = nil)
         
     | 
| 
         @@ -6,17 +6,17 @@ module Bade 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              class Parser
         
     | 
| 
       8 
8 
     | 
    
         
             
                module MixinRegexps
         
     | 
| 
       9 
     | 
    
         
            -
                  TEXT_START = /\A  
     | 
| 
       10 
     | 
    
         
            -
                  BLOCK_EXPANSION = /\A:\s 
     | 
| 
       11 
     | 
    
         
            -
                  OUTPUT_CODE = /\A(&?) 
     | 
| 
      
 9 
     | 
    
         
            +
                  TEXT_START = /\A /.freeze
         
     | 
| 
      
 10 
     | 
    
         
            +
                  BLOCK_EXPANSION = /\A:\s+/.freeze
         
     | 
| 
      
 11 
     | 
    
         
            +
                  OUTPUT_CODE = /\A(&?)=/.freeze
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
                  PARAMS_END = /\A\s*\) 
     | 
| 
      
 13 
     | 
    
         
            +
                  PARAMS_END = /\A\s*\)/.freeze
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
                  PARAMS_END_SPACES = /^\s 
     | 
| 
       16 
     | 
    
         
            -
                  PARAMS_ARGS_DELIMITER = /\A\s 
     | 
| 
      
 15 
     | 
    
         
            +
                  PARAMS_END_SPACES = /^\s*$/.freeze
         
     | 
| 
      
 16 
     | 
    
         
            +
                  PARAMS_ARGS_DELIMITER = /\A\s*,/.freeze
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                  PARAMS_PARAM_NAME = /\A\s*#{NAME_RE_STRING} 
     | 
| 
       19 
     | 
    
         
            -
                  PARAMS_BLOCK_NAME = /\A\s*&#{NAME_RE_STRING} 
     | 
| 
      
 18 
     | 
    
         
            +
                  PARAMS_PARAM_NAME = /\A\s*#{NAME_RE_STRING}/.freeze
         
     | 
| 
      
 19 
     | 
    
         
            +
                  PARAMS_BLOCK_NAME = /\A\s*&#{NAME_RE_STRING}/.freeze
         
     | 
| 
       20 
20 
     | 
    
         
             
                  PARAMS_KEY_PARAM_NAME = CODE_ATTR_RE
         
     | 
| 
       21 
21 
     | 
    
         
             
                end
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
         @@ -64,7 +64,7 @@ module Bade 
     | 
|
| 
       64 
64 
     | 
    
         
             
                      @line = $'
         
     | 
| 
       65 
65 
     | 
    
         
             
                      attr_node = append_node(:mixin_key_param)
         
     | 
| 
       66 
66 
     | 
    
         
             
                      attr_node.name = fixed_trailing_colon($1)
         
     | 
| 
       67 
     | 
    
         
            -
                      attr_node.value = parse_ruby_code(ParseRubyCodeRegexps::END_PARAMS_ARG)
         
     | 
| 
      
 67 
     | 
    
         
            +
                      attr_node.value = parse_ruby_code(ParseRubyCodeRegexps::END_PARAMS_ARG, allow_multiline: true)
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
                    when MixinRegexps::PARAMS_ARGS_DELIMITER
         
     | 
| 
       70 
70 
     | 
    
         
             
                      # args delimiter
         
     | 
| 
         @@ -83,7 +83,7 @@ module Bade 
     | 
|
| 
       83 
83 
     | 
    
         | 
| 
       84 
84 
     | 
    
         
             
                    else
         
     | 
| 
       85 
85 
     | 
    
         
             
                      attr_node = append_node(:mixin_param)
         
     | 
| 
       86 
     | 
    
         
            -
                      attr_node.value = parse_ruby_code(ParseRubyCodeRegexps::END_PARAMS_ARG)
         
     | 
| 
      
 86 
     | 
    
         
            +
                      attr_node.value = parse_ruby_code(ParseRubyCodeRegexps::END_PARAMS_ARG, allow_multiline: true)
         
     | 
| 
       87 
87 
     | 
    
         
             
                    end
         
     | 
| 
       88 
88 
     | 
    
         
             
                  end
         
     | 
| 
       89 
89 
     | 
    
         
             
                end
         
     | 
| 
         @@ -6,8 +6,8 @@ module Bade 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              class Parser
         
     | 
| 
       8 
8 
     | 
    
         
             
                module ParseRubyCodeRegexps
         
     | 
| 
       9 
     | 
    
         
            -
                  END_NEW_LINE = /\A\s*\n 
     | 
| 
       10 
     | 
    
         
            -
                  END_PARAMS_ARG = /\A\s*[,)] 
     | 
| 
      
 9 
     | 
    
         
            +
                  END_NEW_LINE = /\A\s*\n/.freeze
         
     | 
| 
      
 10 
     | 
    
         
            +
                  END_PARAMS_ARG = /\A\s*[,)]/.freeze
         
     | 
| 
       11 
11 
     | 
    
         
             
                end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                # Parse ruby code, ended with outer delimiters
         
     | 
| 
         @@ -16,17 +16,27 @@ module Bade 
     | 
|
| 
       16 
16 
     | 
    
         
             
                #
         
     | 
| 
       17 
17 
     | 
    
         
             
                # @return [Void] parsed ruby code
         
     | 
| 
       18 
18 
     | 
    
         
             
                #
         
     | 
| 
       19 
     | 
    
         
            -
                def parse_ruby_code(outer_delimiters)
         
     | 
| 
      
 19 
     | 
    
         
            +
                def parse_ruby_code(outer_delimiters, allow_multiline: false)
         
     | 
| 
       20 
20 
     | 
    
         
             
                  code = String.new
         
     | 
| 
       21 
21 
     | 
    
         
             
                  end_re = if outer_delimiters.is_a?(Regexp)
         
     | 
| 
       22 
22 
     | 
    
         
             
                             outer_delimiters
         
     | 
| 
       23 
23 
     | 
    
         
             
                           else
         
     | 
| 
       24 
24 
     | 
    
         
             
                             /\A\s*[#{Regexp.escape outer_delimiters.to_s}]/
         
     | 
| 
       25 
25 
     | 
    
         
             
                           end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
       26 
27 
     | 
    
         
             
                  delimiters = []
         
     | 
| 
       27 
28 
     | 
    
         
             
                  string_start_quote_char = nil
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
                   
     | 
| 
      
 30 
     | 
    
         
            +
                  loop do
         
     | 
| 
      
 31 
     | 
    
         
            +
                    break if !allow_multiline && @line.empty?
         
     | 
| 
      
 32 
     | 
    
         
            +
                    break if allow_multiline && @line.empty? && (@lines && @lines.empty?)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    break if delimiters.empty? && @line =~ end_re
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    if @line.empty? && allow_multiline && !(@lines && @lines.empty?)
         
     | 
| 
      
 36 
     | 
    
         
            +
                      next_line
         
     | 
| 
      
 37 
     | 
    
         
            +
                      code << "\n"
         
     | 
| 
      
 38 
     | 
    
         
            +
                    end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
       30 
40 
     | 
    
         
             
                    char = @line[0]
         
     | 
| 
       31 
41 
     | 
    
         | 
| 
       32 
42 
     | 
    
         
             
                    # backslash escaped delimiter
         
     | 
| 
         @@ -70,7 +80,7 @@ module Bade 
     | 
|
| 
       70 
80 
     | 
    
         
             
                  '{' => '}',
         
     | 
| 
       71 
81 
     | 
    
         
             
                }.freeze
         
     | 
| 
       72 
82 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
                RUBY_QUOTES = %w 
     | 
| 
      
 83 
     | 
    
         
            +
                RUBY_QUOTES = %w[' "].freeze
         
     | 
| 
       74 
84 
     | 
    
         | 
| 
       75 
85 
     | 
    
         
             
                RUBY_NOT_NESTABLE_DELIMITERS = RUBY_QUOTES
         
     | 
| 
       76 
86 
     | 
    
         | 
| 
         @@ -78,7 +88,7 @@ module Bade 
     | 
|
| 
       78 
88 
     | 
    
         
             
                RUBY_END_DELIMITERS = (%w(\) ] }) + RUBY_NOT_NESTABLE_DELIMITERS).freeze
         
     | 
| 
       79 
89 
     | 
    
         
             
                RUBY_ALL_DELIMITERS = (RUBY_START_DELIMITERS + RUBY_END_DELIMITERS).uniq.freeze
         
     | 
| 
       80 
90 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
                RUBY_START_DELIMITERS_RE = /\A[#{Regexp.escape RUBY_START_DELIMITERS.join}] 
     | 
| 
       82 
     | 
    
         
            -
                RUBY_END_DELIMITERS_RE = /\A[#{Regexp.escape RUBY_END_DELIMITERS.join}] 
     | 
| 
      
 91 
     | 
    
         
            +
                RUBY_START_DELIMITERS_RE = /\A[#{Regexp.escape RUBY_START_DELIMITERS.join}]/.freeze
         
     | 
| 
      
 92 
     | 
    
         
            +
                RUBY_END_DELIMITERS_RE = /\A[#{Regexp.escape RUBY_END_DELIMITERS.join}]/.freeze
         
     | 
| 
       83 
93 
     | 
    
         
             
              end
         
     | 
| 
       84 
94 
     | 
    
         
             
            end
         
     | 
| 
         @@ -6,12 +6,12 @@ module Bade 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              class Parser
         
     | 
| 
       8 
8 
     | 
    
         
             
                module TagRegexps
         
     | 
| 
       9 
     | 
    
         
            -
                  BLOCK_EXPANSION = /\A:\s 
     | 
| 
      
 9 
     | 
    
         
            +
                  BLOCK_EXPANSION = /\A:\s+/.freeze
         
     | 
| 
       10 
10 
     | 
    
         
             
                  OUTPUT_CODE = LineIndicatorRegexps::OUTPUT_BLOCK
         
     | 
| 
       11 
     | 
    
         
            -
                  TEXT_START = /\A  
     | 
| 
      
 11 
     | 
    
         
            +
                  TEXT_START = /\A /.freeze
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
                  PARAMS_ARGS_DELIMITER = /\A\s 
     | 
| 
       14 
     | 
    
         
            -
                  PARAMS_END = /\A\s*\) 
     | 
| 
      
 13 
     | 
    
         
            +
                  PARAMS_ARGS_DELIMITER = /\A\s*,/.freeze
         
     | 
| 
      
 14 
     | 
    
         
            +
                  PARAMS_END = /\A\s*\)/.freeze
         
     | 
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                # @param [String] tag  tag name
         
     | 
| 
         @@ -6,8 +6,8 @@ module Bade 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              class Parser
         
     | 
| 
       8 
8 
     | 
    
         
             
                module TextRegexps
         
     | 
| 
       9 
     | 
    
         
            -
                  INTERPOLATION_START = /(\\)?(&|#)\{ 
     | 
| 
       10 
     | 
    
         
            -
                  INTERPOLATION_END = /\A\} 
     | 
| 
      
 9 
     | 
    
         
            +
                  INTERPOLATION_START = /(\\)?(&|#)\{/.freeze
         
     | 
| 
      
 10 
     | 
    
         
            +
                  INTERPOLATION_END = /\A\}/.freeze
         
     | 
| 
       11 
11 
     | 
    
         
             
                end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                def parse_text
         
     | 
| 
         @@ -64,7 +64,7 @@ module Bade 
     | 
|
| 
       64 
64 
     | 
    
         | 
| 
       65 
65 
     | 
    
         
             
                      next_line
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                      @line.remove_indent!(text_indent  
     | 
| 
      
 67 
     | 
    
         
            +
                      @line.remove_indent!(text_indent || indent, @tabsize)
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
                      parse_text
         
     | 
| 
       70 
70 
     | 
    
         | 
    
        data/lib/bade/precompiled.rb
    CHANGED
    
    | 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            require ' 
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'psych'
         
     | 
| 
       5 
4 
     | 
    
         | 
| 
       6 
5 
     | 
    
         
             
            module Bade
         
     | 
| 
       7 
6 
     | 
    
         
             
              class Precompiled
         
     | 
| 
         @@ -26,7 +25,11 @@ module Bade 
     | 
|
| 
       26 
25 
     | 
    
         
             
                           file
         
     | 
| 
       27 
26 
     | 
    
         
             
                         end
         
     | 
| 
       28 
27 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
                  hash =  
     | 
| 
      
 28 
     | 
    
         
            +
                  hash = if Gem::Version.new(Psych::VERSION) >= Gem::Version.new('3.0')
         
     | 
| 
      
 29 
     | 
    
         
            +
                           YAML.safe_load(file, filename: file.path, permitted_classes: [Symbol])
         
     | 
| 
      
 30 
     | 
    
         
            +
                         else
         
     | 
| 
      
 31 
     | 
    
         
            +
                           YAML.safe_load(file, [Symbol])
         
     | 
| 
      
 32 
     | 
    
         
            +
                         end
         
     | 
| 
       30 
33 
     | 
    
         
             
                  raise LoadError, 'YAML file is not in valid format' unless hash.is_a?(Hash)
         
     | 
| 
       31 
34 
     | 
    
         | 
| 
       32 
35 
     | 
    
         
             
                  file_path = hash[:source_file_path]
         
     | 
    
        data/lib/bade/renderer.rb
    CHANGED
    
    | 
         @@ -164,9 +164,11 @@ module Bade 
     | 
|
| 
       164 
164 
     | 
    
         | 
| 
       165 
165 
     | 
    
         
             
                # @return [RenderBinding]
         
     | 
| 
       166 
166 
     | 
    
         
             
                #
         
     | 
| 
      
 167 
     | 
    
         
            +
                # rubocop:disable Lint/DuplicateMethods
         
     | 
| 
       167 
168 
     | 
    
         
             
                def render_binding
         
     | 
| 
       168 
169 
     | 
    
         
             
                  @render_binding ||= Runtime::RenderBinding.new(locals || {})
         
     | 
| 
       169 
170 
     | 
    
         
             
                end
         
     | 
| 
      
 171 
     | 
    
         
            +
                # rubocop:enable Lint/DuplicateMethods
         
     | 
| 
       170 
172 
     | 
    
         | 
| 
       171 
173 
     | 
    
         
             
                # @return [Proc]
         
     | 
| 
       172 
174 
     | 
    
         
             
                #
         
     | 
| 
         @@ -249,6 +251,7 @@ module Bade 
     | 
|
| 
       249 
251 
     | 
    
         | 
| 
       250 
252 
     | 
    
         
             
                  if File.exist?(sub_path)
         
     | 
| 
       251 
253 
     | 
    
         
             
                    return if sub_path.end_with?('.rb') # handled in Generator
         
     | 
| 
      
 254 
     | 
    
         
            +
             
     | 
| 
       252 
255 
     | 
    
         
             
                    sub_path
         
     | 
| 
       253 
256 
     | 
    
         
             
                  else
         
     | 
| 
       254 
257 
     | 
    
         
             
                    bade_path = "#{sub_path}.bade"
         
     | 
| 
         @@ -13,12 +13,10 @@ class String 
     | 
|
| 
       13 
13 
     | 
    
         
             
                %('#{self}')
         
     | 
| 
       14 
14 
     | 
    
         
             
              end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
16 
     | 
    
         
             
              def blank?
         
     | 
| 
       18 
17 
     | 
    
         
             
                strip.empty?
         
     | 
| 
       19 
18 
     | 
    
         
             
              end
         
     | 
| 
       20 
19 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
20 
     | 
    
         
             
              def remove_last(count = 1)
         
     | 
| 
       23 
21 
     | 
    
         
             
                slice(0, length - count)
         
     | 
| 
       24 
22 
     | 
    
         
             
              end
         
     | 
| 
         @@ -27,7 +25,6 @@ class String 
     | 
|
| 
       27 
25 
     | 
    
         
             
                slice!(length - count, count)
         
     | 
| 
       28 
26 
     | 
    
         
             
              end
         
     | 
| 
       29 
27 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
28 
     | 
    
         
             
              def remove_first(count = 1)
         
     | 
| 
       32 
29 
     | 
    
         
             
                slice(count, length - count)
         
     | 
| 
       33 
30 
     | 
    
         
             
              end
         
     | 
| 
         @@ -67,7 +64,6 @@ class String 
     | 
|
| 
       67 
64 
     | 
    
         
             
                remove_first(__chars_count_for_indent(indent, tabsize))
         
     | 
| 
       68 
65 
     | 
    
         
             
              end
         
     | 
| 
       69 
66 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
67 
     | 
    
         
             
              # Remove indent
         
     | 
| 
       72 
68 
     | 
    
         
             
              #
         
     | 
| 
       73 
69 
     | 
    
         
             
              # @param [Int] indent
         
     | 
| 
         @@ -77,7 +73,6 @@ class String 
     | 
|
| 
       77 
73 
     | 
    
         
             
                remove_first!(__chars_count_for_indent(indent, tabsize))
         
     | 
| 
       78 
74 
     | 
    
         
             
              end
         
     | 
| 
       79 
75 
     | 
    
         | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
76 
     | 
    
         
             
              # Calculate indent for line
         
     | 
| 
       82 
77 
     | 
    
         
             
              #
         
     | 
| 
       83 
78 
     | 
    
         
             
              # @param [Int] tabsize
         
     | 
    
        data/lib/bade/runtime/block.rb
    CHANGED
    
    | 
         @@ -1,5 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require_relative '../ruby2_keywords'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       3 
5 
     | 
    
         
             
            module Bade
         
     | 
| 
       4 
6 
     | 
    
         
             
              module Runtime
         
     | 
| 
       5 
7 
     | 
    
         
             
                class RuntimeError < ::StandardError; end
         
     | 
| 
         @@ -52,11 +54,11 @@ module Bade 
     | 
|
| 
       52 
54 
     | 
    
         | 
| 
       53 
55 
     | 
    
         
             
                  # --- Calling methods
         
     | 
| 
       54 
56 
     | 
    
         | 
| 
       55 
     | 
    
         
            -
                  def call(*args)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  ruby2_keywords def call(*args)
         
     | 
| 
       56 
58 
     | 
    
         
             
                    call!(*args) unless @block.nil?
         
     | 
| 
       57 
59 
     | 
    
         
             
                  end
         
     | 
| 
       58 
60 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
                  def call!(*args)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  ruby2_keywords def call!(*args)
         
     | 
| 
       60 
62 
     | 
    
         
             
                    raise MissingBlockDefinitionError.new(name, :call) if @block.nil?
         
     | 
| 
       61 
63 
     | 
    
         | 
| 
       62 
64 
     | 
    
         
             
                    render_binding.__buff.concat(@block.call(*args))
         
     | 
    
        data/lib/bade/runtime/mixin.rb
    CHANGED
    
    | 
         @@ -1,43 +1,46 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require_relative '../ruby2_keywords'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
       3 
5 
     | 
    
         
             
            module Bade
         
     | 
| 
       4 
6 
     | 
    
         
             
              module Runtime
         
     | 
| 
       5 
7 
     | 
    
         
             
                require_relative 'block'
         
     | 
| 
       6 
8 
     | 
    
         | 
| 
       7 
9 
     | 
    
         
             
                class Mixin < Block
         
     | 
| 
       8 
     | 
    
         
            -
                  def call!(blocks, *args)
         
     | 
| 
       9 
     | 
    
         
            -
                     
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                     
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                      # minus one, because first argument is always hash of blocks
         
     | 
| 
       17 
     | 
    
         
            -
                      given = $1.to_i - 1
         
     | 
| 
       18 
     | 
    
         
            -
                      expected = $2.to_i - 1
         
     | 
| 
       19 
     | 
    
         
            -
                      raise ArgumentError, "wrong number of arguments (given #{given}, expected #{expected}) for mixin `#{name}`"
         
     | 
| 
      
 10 
     | 
    
         
            +
                  ruby2_keywords def call!(blocks, *args)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 12 
     | 
    
         
            +
                      block.call(blocks, *args)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    rescue ArgumentError => e
         
     | 
| 
      
 14 
     | 
    
         
            +
                      case e.message
         
     | 
| 
      
 15 
     | 
    
         
            +
                      when /\Awrong number of arguments \(given ([0-9]+), expected ([0-9]+)\)\Z/,
         
     | 
| 
      
 16 
     | 
    
         
            +
                           /\Awrong number of arguments \(([0-9]+) for ([0-9]+)\)\Z/
         
     | 
| 
      
 17 
     | 
    
         
            +
                        # handle incorrect parameters count
         
     | 
| 
       20 
18 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                        # minus one, because first argument is always hash of blocks
         
     | 
| 
      
 20 
     | 
    
         
            +
                        given = $1.to_i - 1
         
     | 
| 
      
 21 
     | 
    
         
            +
                        expected = $2.to_i - 1
         
     | 
| 
      
 22 
     | 
    
         
            +
                        raise ArgumentError, "wrong number of arguments (given #{given}, expected #{expected}) for mixin `#{name}`"
         
     | 
| 
       25 
23 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
      
 24 
     | 
    
         
            +
                      when /\Aunknown keyword: (.*)\Z/
         
     | 
| 
      
 25 
     | 
    
         
            +
                        # handle unknown key-value parameter
         
     | 
| 
      
 26 
     | 
    
         
            +
                        key_name = $1
         
     | 
| 
      
 27 
     | 
    
         
            +
                        raise ArgumentError, "unknown key-value argument `#{key_name}` for mixin `#{name}`"
         
     | 
| 
       29 
28 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
                      else
         
     | 
| 
      
 30 
     | 
    
         
            +
                        raise
         
     | 
| 
      
 31 
     | 
    
         
            +
                      end
         
     | 
| 
      
 32 
     | 
    
         
            +
                    rescue Block::MissingBlockDefinitionError => e
         
     | 
| 
      
 33 
     | 
    
         
            +
                      msg = case e.context
         
     | 
| 
      
 34 
     | 
    
         
            +
                            when :call
         
     | 
| 
      
 35 
     | 
    
         
            +
                              "Mixin `#{name}` requires block to get called of block `#{e.name}`"
         
     | 
| 
      
 36 
     | 
    
         
            +
                            when :render
         
     | 
| 
      
 37 
     | 
    
         
            +
                              "Mixin `#{name}` requires block to get rendered content of block `#{e.name}`"
         
     | 
| 
      
 38 
     | 
    
         
            +
                            else
         
     | 
| 
      
 39 
     | 
    
         
            +
                              raise ::ArgumentError, "Unknown context #{e.context} of error #{e}!"
         
     | 
| 
      
 40 
     | 
    
         
            +
                            end
         
     | 
| 
       39 
41 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
      
 42 
     | 
    
         
            +
                      raise Block::MissingBlockDefinitionError.new(e.name, e.context, msg)
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
       41 
44 
     | 
    
         
             
                  end
         
     | 
| 
       42 
45 
     | 
    
         
             
                end
         
     | 
| 
       43 
46 
     | 
    
         
             
              end
         
     | 
    
        data/lib/bade/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,71 +1,77 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bade
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Roman Kříž
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-04-25 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
     | 
    
         
            -
              name:  
     | 
| 
      
 14 
     | 
    
         
            +
              name: psych
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - - " 
     | 
| 
      
 17 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: ' 
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '2.2'
         
     | 
| 
      
 20 
     | 
    
         
            +
                - - "<"
         
     | 
| 
      
 21 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 22 
     | 
    
         
            +
                    version: '4.0'
         
     | 
| 
      
 23 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
       21 
24 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
25 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
26 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - - " 
     | 
| 
      
 27 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       25 
28 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 29 
     | 
    
         
            +
                    version: '2.2'
         
     | 
| 
      
 30 
     | 
    
         
            +
                - - "<"
         
     | 
| 
      
 31 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version: '4.0'
         
     | 
| 
       27 
33 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
     | 
    
         
            -
              name:  
     | 
| 
      
 34 
     | 
    
         
            +
              name: rake
         
     | 
| 
       29 
35 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
36 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - - " 
     | 
| 
      
 37 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       32 
38 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 39 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       34 
40 
     | 
    
         
             
              type: :development
         
     | 
| 
       35 
41 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       36 
42 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
43 
     | 
    
         
             
                requirements:
         
     | 
| 
       38 
     | 
    
         
            -
                - - " 
     | 
| 
      
 44 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       39 
45 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 46 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       41 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
     | 
    
         
            -
              name:  
     | 
| 
      
 48 
     | 
    
         
            +
              name: rspec
         
     | 
| 
       43 
49 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
50 
     | 
    
         
             
                requirements:
         
     | 
| 
       45 
51 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       46 
52 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       47 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 53 
     | 
    
         
            +
                    version: '3.2'
         
     | 
| 
       48 
54 
     | 
    
         
             
              type: :development
         
     | 
| 
       49 
55 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       50 
56 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       51 
57 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
58 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       53 
59 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 60 
     | 
    
         
            +
                    version: '3.2'
         
     | 
| 
       55 
61 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       56 
62 
     | 
    
         
             
              name: rubocop
         
     | 
| 
       57 
63 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       58 
64 
     | 
    
         
             
                requirements:
         
     | 
| 
       59 
65 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       60 
66 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
     | 
    
         
            -
                    version:  
     | 
| 
      
 67 
     | 
    
         
            +
                    version: 0.50.0
         
     | 
| 
       62 
68 
     | 
    
         
             
              type: :development
         
     | 
| 
       63 
69 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       64 
70 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
71 
     | 
    
         
             
                requirements:
         
     | 
| 
       66 
72 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       67 
73 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       68 
     | 
    
         
            -
                    version:  
     | 
| 
      
 74 
     | 
    
         
            +
                    version: 0.50.0
         
     | 
| 
       69 
75 
     | 
    
         
             
            description: 
         
     | 
| 
       70 
76 
     | 
    
         
             
            email:
         
     | 
| 
       71 
77 
     | 
    
         
             
            - samnung@gmail.com
         
     | 
| 
         @@ -98,6 +104,7 @@ files: 
     | 
|
| 
       98 
104 
     | 
    
         
             
            - lib/bade/parser/parser_text.rb
         
     | 
| 
       99 
105 
     | 
    
         
             
            - lib/bade/precompiled.rb
         
     | 
| 
       100 
106 
     | 
    
         
             
            - lib/bade/renderer.rb
         
     | 
| 
      
 107 
     | 
    
         
            +
            - lib/bade/ruby2_keywords.rb
         
     | 
| 
       101 
108 
     | 
    
         
             
            - lib/bade/ruby_extensions/array.rb
         
     | 
| 
       102 
109 
     | 
    
         
             
            - lib/bade/ruby_extensions/string.rb
         
     | 
| 
       103 
110 
     | 
    
         
             
            - lib/bade/runtime.rb
         
     | 
| 
         @@ -124,8 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       124 
131 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       125 
132 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       126 
133 
     | 
    
         
             
            requirements: []
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
            rubygems_version: 2.7.7
         
     | 
| 
      
 134 
     | 
    
         
            +
            rubygems_version: 3.1.2
         
     | 
| 
       129 
135 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       130 
136 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       131 
137 
     | 
    
         
             
            summary: Minimalistic template engine for Ruby.
         
     |