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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 38d9666b68d2c14fcebd6fe3e8f6581980d4e62fc86a62575863b9b9134c0cff
4
- data.tar.gz: e899fadf43703bbb5fc2ab6af91142cb145a149a16e3d3948b7c3be94655b822
3
+ metadata.gz: 148aef838267196453c729800e51c4d3b1f194586f5226e00c659d8f3fc80e58
4
+ data.tar.gz: dff1e493ea8a08976cd6cdd1fc80cf937cb2582bc41630c2ca6198fc9eab5ada
5
5
  SHA512:
6
- metadata.gz: 309bcca03d9006c8fe4881f3119ff50b0544307205da57599a4892fefd7f95c9373f6e7d11d681ecb77edf90798afbcd3480855a58429e2ed476f238d2aa9493
7
- data.tar.gz: 45daec6d8d39c959a462053cbbc351e35d6a3055b63d9bc2ff64e8f70146e605f9447fabf48d024d682e66c6612d1ee40b866a8673f70dceecbb738f51e0b2ab
6
+ metadata.gz: 86853f78cc0d8647ab5d639664dbb12d5e7101165641d91e4afdbc2affb3cf2c5434ea85bc7f9f92cec7ed571d34a4f23dd4bc0db6eaea9522df29e986df071f
7
+ data.tar.gz: 335be41aa317132979197275b9c6fad798525af1247d2878239229e4f81b6beaac916000af24a1da0ccd61ea22ee3356127aa7a485fe806cc9385ef8945370be
@@ -1,11 +1,11 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
- lib = File.expand_path('../lib', __FILE__)
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(Bade.gemspec Gemfile README.md)
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.add_development_dependency 'bundler', '~> 1'
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 'rake', '~> 11'
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 'ruby-prof'
8
- gem 'flamegraph'
8
+ gem 'coveralls', require: false
9
+
10
+ group :banchmarks, optional: true do
11
+ gem 'flamegraph'
12
+ gem 'ruby-prof'
13
+ end
@@ -23,7 +23,6 @@ module Bade
23
23
  def initialize(type, lineno: nil)
24
24
  @type = type
25
25
  @children = []
26
-
27
26
  @lineno = lineno
28
27
  end
29
28
 
@@ -22,19 +22,19 @@ module Bade
22
22
 
23
23
  class MixinDeclarationNode < MixinCommonNode
24
24
  def allowed_parameter_types
25
- [:mixin_param, :mixin_key_param, :mixin_block_param]
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
- [:mixin_param, :mixin_key_param]
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
- [:mixin_param, :mixin_key_param]
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
@@ -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
- # buff_print_value(NEW_LINE_NAME)
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]
@@ -126,7 +126,9 @@ module Bade
126
126
 
127
127
  def parse_import
128
128
  # TODO: change this to something better
129
- path = eval(@line) # rubocop:disable Lint/Eval
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
- until @line.empty? || (delimiters.empty? && @line =~ end_re)
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(' ").freeze
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 ? text_indent : indent, @tabsize)
67
+ @line.remove_indent!(text_indent || indent, @tabsize)
68
68
 
69
69
  parse_text
70
70
 
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'yaml'
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 = YAML.load(file)
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]
@@ -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"
@@ -0,0 +1,2 @@
1
+
2
+ def ruby2_keywords(*) end if RUBY_VERSION < '2.7'
@@ -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
@@ -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))
@@ -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
- block.call(blocks, *args)
10
- rescue ArgumentError => e
11
- case e.message
12
- when /\Awrong number of arguments \(given ([0-9]+), expected ([0-9]+)\)\Z/,
13
- /\Awrong number of arguments \(([0-9]+) for ([0-9]+)\)\Z/
14
- # handle incorrect parameters count
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
- when /\Aunknown keyword: (.*)\Z/
22
- # handle unknown key-value parameter
23
- key_name = $1
24
- raise ArgumentError, "unknown key-value argument `#{key_name}` for mixin `#{name}`"
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
- else
27
- raise
28
- end
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
- rescue Block::MissingBlockDefinitionError => e
31
- msg = case e.context
32
- when :call
33
- "Mixin `#{name}` requires block to get called of block `#{e.name}`"
34
- when :render
35
- "Mixin `#{name}` requires block to get rendered content of block `#{e.name}`"
36
- else
37
- raise ::ArgumentError, "Unknown context #{e.context} of error #{e}!"
38
- end
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
- raise Block::MissingBlockDefinitionError.new(e.name, e.context, msg)
42
+ raise Block::MissingBlockDefinitionError.new(e.name, e.context, msg)
43
+ end
41
44
  end
42
45
  end
43
46
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bade
4
- VERSION = '0.2.4'.freeze
4
+ VERSION = '0.2.5'.freeze
5
5
  end
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
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: 2018-09-05 00:00:00.000000000 Z
11
+ date: 2020-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: psych
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1'
20
- type: :development
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: '1'
29
+ version: '2.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.0'
27
33
  - !ruby/object:Gem::Dependency
28
- name: rspec
34
+ name: rake
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - "~>"
37
+ - - ">="
32
38
  - !ruby/object:Gem::Version
33
- version: '3.2'
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: '3.2'
46
+ version: '0'
41
47
  - !ruby/object:Gem::Dependency
42
- name: rake
48
+ name: rspec
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '11'
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: '11'
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: '0.35'
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: '0.35'
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
- rubyforge_project:
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.