hamlit 2.9.3 → 2.9.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 834bf503c4e677e0251ec2549a17a8515f8b618d8e92a04aa1b907dd8b420658
4
- data.tar.gz: dd6b1f3a854fcf8515f920c8818dc6d6f6e115d7405cce9006f3bca1beab5d91
3
+ metadata.gz: ff5c08623e133d33678ed09abfa8aeb752ff6fe48a203d6d22000430335e0ced
4
+ data.tar.gz: caa9eb9872690fc5ae45432c5c8487be7fafe51f2e65f484e6f9602f5afdf4d2
5
5
  SHA512:
6
- metadata.gz: fee60fd3d15480d32d4649791f20231b8070203715427c5da12b68074787272dd37542258319648625d256d4c1017337b04b94f586ce85b130f628f77ae84009
7
- data.tar.gz: f91cc1e1111cdb8ece53e94d5bd65bd4d879f929b77f71d9d06c260f2918b3957b038e068372d1f704b644bc5d72f96828a052b7e08b5dd3b7fc55b279762e89
6
+ metadata.gz: 0d1241f1a8d1fea6d4528649047d5830197b84e3c2bc01c17f8dd07d59f9cc02023b9c28140817f8aeee92ea26bd67ca3bbf864fa3ffeaff83f271d365b87a23
7
+ data.tar.gz: 97fcaa8d8b03f6fc84c27927c9a1b73f871211b3d109b32258786a897d54ccb5f3b68c2e42c7e2175dda04073f1dc2aaecb3d3479df34806a5119b035b773968
@@ -17,7 +17,9 @@ matrix:
17
17
  env: TASK=test
18
18
  - rvm: ruby-head
19
19
  env: TASK=test
20
- - rvm: jruby-9.1.9.0
20
+ - rvm: jruby-9.2.8.0
21
+ env: TASK=test
22
+ - rvm: truffleruby
21
23
  env: TASK=test
22
24
  - rvm: 2.6.0
23
25
  env: TASK=bench TEMPLATE=benchmark/boolean_attribute.haml,benchmark/class_attribute.haml,benchmark/id_attribute.haml,benchmark/data_attribute.haml,benchmark/common_attribute.haml
@@ -4,18 +4,30 @@ All notable changes to this project will be documented in this file. This
4
4
  project adheres to [Semantic Versioning](http://semver.org/). This change log is based upon
5
5
  [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog).
6
6
 
7
+ ## [2.9.4](https://github.com/k0kubun/hamlit/compare/v2.9.3...v2.9.4) - 2019-09-08
8
+
9
+ ### Added
10
+
11
+ - Experimental support of truffleruby [#145](https://github.com/k0kubun/hamlit/issues/145).
12
+
7
13
  ## [2.9.3](https://github.com/k0kubun/hamlit/compare/v2.9.2...v2.9.3) - 2019-04-09
8
14
 
15
+ ### Fixed
16
+
9
17
  - Fix deprecation warning on Rails 6 [#138](https://github.com/k0kubun/hamlit/issues/138).
10
18
  *Thanks to @r7kamura*
11
19
 
12
20
  ## [2.9.2](https://github.com/k0kubun/hamlit/compare/v2.9.1...v2.9.2) - 2018-11-30
13
21
 
22
+ ### Fixed
23
+
14
24
  - Fix possible `autoload` failure of dependency [#131](https://github.com/k0kubun/hamlit/issues/131).
15
25
  *Thanks to @wimrijnders*
16
26
 
17
27
  ## [2.9.1](https://github.com/k0kubun/hamlit/compare/v2.9.0...v2.9.1) - 2018-11-01
18
28
 
29
+ ### Added
30
+
19
31
  - Start supporting JRuby [#100](https://github.com/k0kubun/hamlit/issues/100).
20
32
 
21
33
  ## [2.9.0](https://github.com/k0kubun/hamlit/compare/v2.8.10...v2.9.0) - 2018-10-16
data/Gemfile CHANGED
@@ -19,10 +19,12 @@ if /java/ === RUBY_PLATFORM # JRuby
19
19
  gem 'pandoc-ruby'
20
20
  else
21
21
  gem 'pry-byebug'
22
- gem 'redcarpet', github: 'vmg/redcarpet' # To resolve circular require warning
22
+ gem 'redcarpet'
23
23
 
24
- if RUBY_PLATFORM !~ /mswin|mingw/
25
- gem 'faml'
24
+ if RUBY_PLATFORM !~ /mswin|mingw/ && RUBY_ENGINE != 'truffleruby'
25
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0') # Travis cannot compile ruby.h with C++
26
+ gem 'faml'
27
+ end
26
28
  gem 'stackprof'
27
29
  end
28
30
  end
@@ -99,6 +99,9 @@ Hamlit does not remove non-boolean attributes and render ``
99
99
  (`foo` is not removed). This design allows us to reduce string concatenation and
100
100
  is the only difference between Faml and Hamlit.
101
101
 
102
+ You may be also interested in
103
+ [hamlit/hamlit-boolean\_attributes](https://github.com/hamlit/hamlit-boolean_attributes).
104
+
102
105
  ## 5 Types of Attributes
103
106
 
104
107
  Haml has 3 types of attributes: id, class and others.
@@ -181,7 +184,10 @@ defer reversed ismap seamless muted required autofocus novalidate formnovalidate
181
184
  itemscope allowfullscreen default inert sortable truespeed typemustmatch
182
185
  ```
183
186
 
184
- "data-\*" is also regarded as boolean.
187
+ If you want to customize the list of boolean attributes, you can use
188
+ [hamlit/hamlit-boolean\_attributes](https://github.com/hamlit/hamlit-boolean_attributes).
189
+
190
+ "aria-\*" and "data-\*" are also regarded as boolean.
185
191
 
186
192
  ### other attributes
187
193
  No hyphenation and boolean support. `false` is rendered as "false" (like Rails helpers).
@@ -1,5 +1,6 @@
1
1
  #include <ruby.h>
2
2
  #include <ruby/encoding.h>
3
+ #ifndef TRUFFLERUBY
3
4
  #include "hescape.h"
4
5
  #include "string.h"
5
6
 
@@ -551,3 +552,4 @@ Init_hamlit(void)
551
552
  rb_const_set(mAttributeBuilder, id_space, rb_obj_freeze(rb_str_new_cstr(" ")));
552
553
  rb_const_set(mAttributeBuilder, id_underscore, rb_obj_freeze(rb_str_new_cstr("_")));
553
554
  }
555
+ #endif
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.add_development_dependency 'less'
38
38
  spec.add_development_dependency 'minitest-reporters', '~> 1.1'
39
39
  spec.add_development_dependency 'rails', '>= 4.0.0'
40
- spec.add_development_dependency 'rake', '~> 10.0'
40
+ spec.add_development_dependency 'rake'
41
41
  spec.add_development_dependency 'rake-compiler'
42
42
  spec.add_development_dependency 'sass'
43
43
  spec.add_development_dependency 'slim'
@@ -9,7 +9,9 @@ module Hamlit::AttributeBuilder
9
9
  itemscope allowfullscreen default inert sortable
10
10
  truespeed typemustmatch download].freeze
11
11
 
12
- if /java/ === RUBY_PLATFORM # JRuby
12
+ # Java extension is not implemented for JRuby yet.
13
+ # TruffleRuby does not implement `rb_ary_sort_bang`, etc.
14
+ if /java/ === RUBY_PLATFORM || RUBY_ENGINE == 'truffleruby'
13
15
  class << self
14
16
  def build(escape_attrs, quote, format, object_ref, *hashes)
15
17
  hashes << Hamlit::ObjectRef.parse(object_ref) if object_ref
@@ -14,7 +14,9 @@ module Hamlit
14
14
 
15
15
  def compile(node)
16
16
  hashes = []
17
- return runtime_compile(node) if node.value[:object_ref] != :nil
17
+ if node.value[:object_ref] != :nil || !Ripper.respond_to?(:lex) # No Ripper.lex in truffleruby
18
+ return runtime_compile(node)
19
+ end
18
20
  node.value[:attributes_hashes].each do |attribute_str|
19
21
  hash = AttributeParser.parse(attribute_str)
20
22
  return runtime_compile(node) unless hash
@@ -11,6 +11,10 @@ module Hamlit
11
11
  end
12
12
 
13
13
  def compile(node, &block)
14
+ unless Ripper.respond_to?(:lex) # No Ripper.lex in truffleruby
15
+ return dynamic_compile(node, &block)
16
+ end
17
+
14
18
  no_children = node.children.empty?
15
19
  case
16
20
  when no_children && node.value[:escape_interpolation]
@@ -28,8 +28,10 @@ module Hamlit
28
28
  nil
29
29
  when node.value[:parse]
30
30
  return compile_interpolated_plain(node) if node.value[:escape_interpolation]
31
- return delegate_optimization(node) if RubyExpression.string_literal?(node.value[:value])
32
- return delegate_optimization(node) if Temple::StaticAnalyzer.static?(node.value[:value])
31
+ if Ripper.respond_to?(:lex) # No Ripper.lex in truffleruby
32
+ return delegate_optimization(node) if RubyExpression.string_literal?(node.value[:value])
33
+ return delegate_optimization(node) if Temple::StaticAnalyzer.static?(node.value[:value])
34
+ end
33
35
 
34
36
  var = @identity.generate
35
37
  [:multi,
@@ -53,6 +55,10 @@ module Hamlit
53
55
 
54
56
  # We should handle interpolation here to escape only interpolated values.
55
57
  def compile_interpolated_plain(node)
58
+ unless Ripper.respond_to?(:lex) # No Ripper.lex in truffleruby
59
+ return [:multi, [:escape, node.value[:escape_interpolation], [:dynamic, "%Q[#{node.value[:value]}]"]], [:newline]]
60
+ end
61
+
56
62
  temple = [:multi]
57
63
  StringSplitter.compile(node.value[:value]).each do |type, value|
58
64
  case type
@@ -25,8 +25,10 @@ module Hamlit
25
25
  use Parser
26
26
  use Compiler
27
27
  use HTML
28
- use StringSplitter
29
- filter :StaticAnalyzer
28
+ if Ripper.respond_to?(:lex) # No Ripper.lex in truffleruby
29
+ use StringSplitter
30
+ filter :StaticAnalyzer
31
+ end
30
32
  use Escapable
31
33
  use ForceEscapable
32
34
  filter :ControlFlow
@@ -5,6 +5,9 @@ module Hamlit
5
5
  class Filters
6
6
  class Plain < Base
7
7
  def compile(node)
8
+ unless Ripper.respond_to?(:lex)
9
+ raise NotImplementedError.new('This platform does not have Ripper.lex required for :plain filter')
10
+ end
8
11
  text = node.value[:text]
9
12
  text = text.rstrip unless ::Hamlit::HamlUtil.contains_interpolation?(text) # for compatibility
10
13
  [:multi, *compile_plain(text)]
Binary file
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
  module Hamlit
3
3
  module Utils
4
- if /java/ === RUBY_PLATFORM # JRuby
4
+ # Java extension is not implemented for JRuby yet.
5
+ # TruffleRuby does not implement `rb_ary_sort_bang`, etc.
6
+ if /java/ === RUBY_PLATFORM || RUBY_ENGINE == 'truffleruby'
5
7
  require 'cgi/escape'
6
8
 
7
9
  def self.escape_html(html)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Hamlit
3
- VERSION = '2.9.3'
3
+ VERSION = '2.9.4'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hamlit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.3
4
+ version: 2.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-09 00:00:00.000000000 Z
11
+ date: 2019-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: temple
@@ -154,16 +154,16 @@ dependencies:
154
154
  name: rake
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: '10.0'
159
+ version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: '10.0'
166
+ version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake-compiler
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -311,6 +311,7 @@ files:
311
311
  - lib/hamlit/filters/text_base.rb
312
312
  - lib/hamlit/filters/tilt_base.rb
313
313
  - lib/hamlit/force_escapable.rb
314
+ - lib/hamlit/hamlit.su
314
315
  - lib/hamlit/helpers.rb
315
316
  - lib/hamlit/html.rb
316
317
  - lib/hamlit/identity.rb
@@ -353,8 +354,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
353
354
  - !ruby/object:Gem::Version
354
355
  version: '0'
355
356
  requirements: []
356
- rubyforge_project:
357
- rubygems_version: 2.7.6
357
+ rubygems_version: 3.0.3
358
358
  signing_key:
359
359
  specification_version: 4
360
360
  summary: High Performance Haml Implementation