hamlit-block 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c3a214d50595a9d3efee68fc6f3853c83e36951f
4
- data.tar.gz: ed5b31078d28eb7660db2aff0a87f8b44bd16865
3
+ metadata.gz: 1b62b48437a95c5a66b0a728ddc1bcd37aeaec64
4
+ data.tar.gz: 46b1e5a1cf26f7730bc9343e3f601e17ab029b5e
5
5
  SHA512:
6
- metadata.gz: 107409a95dd93bcc2a0a76185662de5fc1cc5ccc7c1b4ccd2401974d8dec2d69a00e4f55af4a9cf31160f96b1c19acdab96809c7cc6ef85398d59cf7f4a0bc01
7
- data.tar.gz: 83c5c6738d03e05d1283ab43253685d7a187a0e15ef66eba333155bd906cc427a4b717dc322630884c273c0c9d2050bddf0fc629898f31bbd91aa1d553a35538
6
+ metadata.gz: fe5f0360b02aa69724a86bcc178dfca4d4eaab15bcc67803401e18f017a12cb55dd1af8d0f716ebb4a8d48f813fa19a10145007c6d02a2a9d3a97fb9a1c97a46
7
+ data.tar.gz: 28a7067b9bad5707fee6b06c8cf6cf19176857c354bb3bca05525fc37e280154553e75d1bcad8237ebf2e7f8c4928aaa4d5786ec8311064d4ee012f8170dfa1c
data/README.md CHANGED
@@ -16,7 +16,9 @@ And then execute:
16
16
 
17
17
  ## Usage
18
18
 
19
- Basically the same as Hamlit. `require 'hamlit/block'` may be necessary. Contents inside script block is not rendered but available via `yield`.
19
+ Basically the same as Hamlit. `require 'hamlit/block'` may be necessary. Contents inside script block is not rendered but available via `yield`.
20
+
21
+ See [spec](spec/hamlit/block_spec.rb) for detail.
20
22
 
21
23
  ## License
22
24
 
@@ -3,12 +3,5 @@
3
3
  require "bundler/setup"
4
4
  require "hamlit/block"
5
5
 
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
6
+ require "pry"
7
+ Pry.start
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "hamlit", "~> 2.0"
22
+ spec.add_dependency "hamlit", ">= 2"
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.11"
25
25
  spec.add_development_dependency "pry"
@@ -1,17 +1,3 @@
1
1
  require "hamlit"
2
- require "hamlit/block/compiler_extension"
3
- require "hamlit/block/script_compiler_extension"
4
- require "hamlit/block/silent_script_compiler_extension"
2
+ require "hamlit/block/engine"
5
3
  require "hamlit/block/version"
6
-
7
- module Hamlit
8
- class Compiler
9
- prepend Block::CompilerExtension
10
-
11
- ScriptCompiler.send(:prepend, Block::ScriptCompilerExtension)
12
- SilentScriptCompiler.send(:prepend, Block::SilentScriptCompilerExtension)
13
- end
14
-
15
- # Maybe hamlit-block's users expect this. This is Haml's default.
16
- Engine.options[:escape_html] = false
17
- end
@@ -0,0 +1,20 @@
1
+ require 'hamlit/block/script_compiler'
2
+ require 'hamlit/block/silent_script_compiler'
3
+
4
+ module Hamlit
5
+ module Block
6
+ class Compiler < ::Hamlit::Compiler
7
+ def initialize(options = {})
8
+ super
9
+
10
+ # Re-generate identity for Hamlit::Block and share it
11
+ identity = Identity.new
12
+ @tag_compiler = ::Hamlit::Compiler::TagCompiler.new(identity, options)
13
+
14
+ # Replace internal compilers with Hamlit::Block's ones.
15
+ @script_compiler = ::Hamlit::Block::ScriptCompiler.new(identity)
16
+ @silent_script_compiler = ::Hamlit::Block::SilentScriptCompiler.new(identity)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,33 @@
1
+ require 'hamlit/engine'
2
+ require 'hamlit/block/compiler'
3
+
4
+ module Hamlit
5
+ module Block
6
+ class Engine < Temple::Engine
7
+ define_options(
8
+ :buffer_class,
9
+ generator: Temple::Generators::ArrayBuffer,
10
+ format: :html,
11
+ attr_quote: "'",
12
+ escape_html: false,
13
+ escape_attrs: true,
14
+ autoclose: %w(area base basefont br col command embed frame
15
+ hr img input isindex keygen link menuitem meta
16
+ param source track wbr),
17
+ filename: "",
18
+ )
19
+
20
+ use Hamlit::Parser
21
+ use Hamlit::Block::Compiler
22
+ use Hamlit::HTML
23
+ use Hamlit::StringSplitter
24
+ use Hamlit::StaticAnalyzer
25
+ use Hamlit::Escapable
26
+ use Hamlit::ForceEscapable
27
+ filter :ControlFlow
28
+ filter :MultiFlattener
29
+ filter :StaticMerger
30
+ use :Generator, -> { options[:generator] }
31
+ end
32
+ end
33
+ end
@@ -1,9 +1,7 @@
1
1
  module Hamlit
2
2
  module Block
3
3
  # Suppress block's internal rendering result and pass it to [:capture, ...].
4
- module ScriptCompilerExtension
5
- attr_reader :identity
6
-
4
+ class ScriptCompiler < ::Hamlit::Compiler::ScriptCompiler
7
5
  def compile_script_assign(var, node, &block)
8
6
  if node.children.empty?
9
7
  super
@@ -2,8 +2,10 @@ module Hamlit
2
2
  module Block
3
3
  # Suppress block's internal rendering result and pass it to [:capture, ...]
4
4
  # if the silent script is `do .. end` block
5
- module SilentScriptCompilerExtension
6
- attr_writer :identity
5
+ class SilentScriptCompiler < ::Hamlit::Compiler::SilentScriptCompiler
6
+ def initialize(identity)
7
+ @identity = identity
8
+ end
7
9
 
8
10
  BLOCK_REGEX = /do(\s*\|\s*[^\|]*\s*\|)?\s*\z/
9
11
 
@@ -1,5 +1,14 @@
1
1
  module Hamlit
2
2
  module Block
3
- VERSION = "0.3.1"
3
+ VERSION = "0.4.0"
4
+
5
+ begin
6
+ require 'cell/hamlit/version'
7
+ rescue LoadError
8
+ else
9
+ if Gem::Version.new(Cell::Hamlit::VERSION) <= Gem::Version.new('0.2')
10
+ raise NotImplementedError.new('hamlit-block does not support cells-hamlit <= 0.2. See https://github.com/trailblazer/cells-hamlit/issues/6')
11
+ end
12
+ end
4
13
  end
5
14
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hamlit-block
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-19 00:00:00.000000000 Z
11
+ date: 2017-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hamlit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -112,9 +112,10 @@ files:
112
112
  - bin/setup
113
113
  - hamlit-block.gemspec
114
114
  - lib/hamlit/block.rb
115
- - lib/hamlit/block/compiler_extension.rb
116
- - lib/hamlit/block/script_compiler_extension.rb
117
- - lib/hamlit/block/silent_script_compiler_extension.rb
115
+ - lib/hamlit/block/compiler.rb
116
+ - lib/hamlit/block/engine.rb
117
+ - lib/hamlit/block/script_compiler.rb
118
+ - lib/hamlit/block/silent_script_compiler.rb
118
119
  - lib/hamlit/block/version.rb
119
120
  homepage: https://github.com/hamlit/hamlit-block
120
121
  licenses:
@@ -136,8 +137,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
137
  version: '0'
137
138
  requirements: []
138
139
  rubyforge_project:
139
- rubygems_version: 2.5.1
140
+ rubygems_version: 2.6.8
140
141
  signing_key:
141
142
  specification_version: 4
142
143
  summary: Hamlit extension to support capturing via yield
143
144
  test_files: []
145
+ has_rdoc:
@@ -1,11 +0,0 @@
1
- module Hamlit
2
- module Block
3
- # Set identity for SilentScriptCompilerExtension
4
- module CompilerExtension
5
- def initialize(*)
6
- super
7
- @silent_script_compiler.identity = @script_compiler.identity
8
- end
9
- end
10
- end
11
- end