opal-haml 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9ce1f27ce301dbcc2efea937c40f8b1570f7f41
4
- data.tar.gz: 9eb9ef4cdae82daa24e59118740bc27c59496005
3
+ metadata.gz: 1419033dec6d3a72ed09a3011ecc454551406271
4
+ data.tar.gz: '02064278322c4b072f766465870a035cc4724ad5'
5
5
  SHA512:
6
- metadata.gz: 19fbdb72b9fb1a024e0e64a3ab8e31c2309824006e9023f9a7d7515157c9bded2dcc2529b10cc92dae350b7cfa8c9daf32a4c74b1120a7f19518c893afa0f8bd
7
- data.tar.gz: 7e2aedbceddef4c80d652ef507813c460c111fa437f7d378472d214818ed4bbdc10aac1b978d29a22d2b5b0a18fe54a14e1fe3098c7241f94a3e67cae2d861c2
6
+ metadata.gz: 5c66562091ba037ecbead72df0a925044e129c65a2d8d31965cd4a0293bdfa7935614630335b6f4c45577f949b3e903a4a532ff74efc139ad603cbe982866977
7
+ data.tar.gz: 9c7de3fd306c703c012ee02992339cff80df33b18042aca33bc3ab535f2f43effd18cb38da334de2b1c00d68ec6f824942fdfa9129f4ef7e63690921f9669a76
data/.travis.yml ADDED
@@ -0,0 +1,30 @@
1
+ language: ruby
2
+ sudo: false
3
+ rvm: 2.3.4
4
+
5
+
6
+ env:
7
+ - HAML_VERSION="~> 4.0" OPAL_VERSION='~> 0.10.0'
8
+ - HAML_VERSION="~> 5.0" OPAL_VERSION='~> 0.10.0'
9
+ - HAML_VERSION="~> 4.0" OPAL_VERSION='~> 0.11.0.rc1'
10
+ - HAML_VERSION="~> 5.0" OPAL_VERSION='~> 0.11.0.rc1'
11
+
12
+ cache:
13
+ bundler: true
14
+ directories:
15
+ - node_modules
16
+ - phantom20
17
+
18
+ before_install:
19
+ # Attempt to work around Travis issues and Ruby 2.3 - https://github.com/vcr/vcr/issues/582
20
+ - gem update --system
21
+ - "mkdir -p phantom20"
22
+ - "export PATH=`pwd`/phantom20:$PATH"
23
+ - "echo $PATH"
24
+ - "pushd phantom20"
25
+ - "ls phantomjs || curl -L -O https://s3.amazonaws.com/travis-phantomjs/phantomjs-2.0.0-ubuntu-12.04.tar.bz2"
26
+ - "ls phantomjs || tar xjvf phantomjs-2.0.0-ubuntu-12.04.tar.bz2"
27
+ - "rm -rf phantomjs-2.0.0-ubuntu-12.04.tar.bz2"
28
+ - "popd"
29
+
30
+
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.4.3 2017-05-02
2
+
3
+ * Add support for Haml v5.0
4
+
1
5
  ## 0.4.2 2016-10-06
2
6
 
3
7
  * Avoid Sprockets v3.7 deprecations
data/Gemfile CHANGED
@@ -1,2 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
+ gem 'haml', ENV['HAML_VERSION'] || '> 0'
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # opal-haml: Haml templates for opal
2
2
 
3
+ [![Build Status](https://travis-ci.org/opal/opal-haml.svg?branch=master)](https://travis-ci.org/opal/opal-haml)
4
+
3
5
  This gem adds `.haml` files to sprockets to precompile templates for opal. This
4
6
  gem does not make the haml compiler available under opal, just the result of
5
7
  pre-compiling a haml template.
@@ -20,7 +22,7 @@ Template['user'].render(my_user)
20
22
  Add opal-haml to your `Gemfile`:
21
23
 
22
24
  ```ruby
23
- gem 'opal-haml', :github => 'opal/opal-haml'
25
+ gem 'opal-haml'
24
26
  ```
25
27
 
26
28
  Create a haml file in the opal load path (e.g. `app/user_template.haml`):
data/lib/opal/haml.rb CHANGED
@@ -5,12 +5,19 @@ require 'opal/haml/version'
5
5
 
6
6
  module Opal
7
7
  module Haml
8
+ haml_major_version = ::Haml::VERSION.to_i
9
+ @options = if haml_major_version > 4
10
+ {freeze_static: false, remove_whitespace: true}
11
+ else
12
+ {freeze_static: false, remove_whitespace: true, ugly: true}
13
+ end.freeze
14
+
8
15
  def self.compile(source, file = '(haml)')
9
16
  Opal.compile(compile_haml(source, file))
10
17
  end
11
18
 
12
19
  def self.compile_haml(source, file)
13
- haml = ::Haml::Engine.new(source, :ugly => true).precompiled
20
+ haml = ::Haml::Engine.new(source, @options).precompiled
14
21
  haml = haml.gsub('_hamlout.buffer', '_hamlout')
15
22
  wrap(haml, file)
16
23
  end
@@ -19,6 +26,7 @@ module Opal
19
26
  <<-EOS
20
27
  require 'opal-haml'
21
28
  Template.new('#{file}') do |_hamlout|
29
+ _hamlout.extend Haml::Buffer
22
30
  #{haml}
23
31
  _hamlout.join
24
32
  end
@@ -15,10 +15,7 @@ module Opal
15
15
  end
16
16
 
17
17
  def prepare(source, path)
18
- haml = ::Haml::Engine.new(source, :ugly => true).precompiled
19
- haml = haml.gsub('_hamlout.buffer', '_hamlout')
20
-
21
- ::Opal::Haml.wrap haml, path
18
+ ::Opal::Haml.compile_haml(source, path)
22
19
  end
23
20
  end
24
21
  end
@@ -1,5 +1,5 @@
1
1
  module Opal
2
2
  module Haml
3
- VERSION = '0.4.2'
3
+ VERSION = '0.4.3'
4
4
  end
5
5
  end
data/opal/opal-haml.rb CHANGED
@@ -1,5 +1,34 @@
1
1
  require 'template'
2
2
 
3
+ module Haml
4
+ module Buffer
5
+ def rstrip!
6
+ self
7
+ end
8
+ end
9
+
10
+ module Helpers
11
+ def self.html_escape(string)
12
+ # http://stackoverflow.com/a/9756789
13
+ %x{
14
+ return ('' + string) /* Forces the conversion to string. */
15
+ .replace(/&/g, '&amp;') /* This MUST be the 1st replacement. */
16
+ .replace(/'/g, '&apos;') /* The 4 other predefined entities, required. */
17
+ .replace(/"/g, '&quot;')
18
+ .replace(/</g, '&lt;')
19
+ .replace(/>/g, '&gt;')
20
+ /*
21
+ You may add other replacements here for HTML only
22
+ (but it's not necessary).
23
+ Or for XML, only if the named entities are defined in its DTD.
24
+ */
25
+ .replace(/\r\n/g, '&#13;') /* Must be before the next replacement. */
26
+ .replace(/[\r\n]/g, '&#13;');
27
+ }
28
+ end
29
+ end
30
+ end
31
+
3
32
  class Template
4
33
  class OutputBuffer
5
34
  alias << append
data/spec/advanced.haml CHANGED
@@ -1 +1,2 @@
1
1
  = @haml_message
2
+ %a(foo=123 bar="baz" quz="#{456+678}" href="#")= 'foo' * 3
data/spec/haml_spec.rb CHANGED
@@ -19,6 +19,10 @@ describe "Haml files" do
19
19
  it "accepts a context to render template with" do
20
20
  @haml_message = "hello world"
21
21
  expect(advanced.render(self)).to include('hello world')
22
+ expect([
23
+ %{hello world<a bar='baz' href='#' foo='123' quz='1134'>foofoofoo</a>}, # haml 4
24
+ %{hello world<a bar='baz' foo='123' href='#' quz='1134'>foofoofoo</a>}, # haml 5
25
+ ]).to include(advanced.render(self))
22
26
  end
23
27
 
24
28
  it "generates html with a given context" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal-haml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Beynon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-06 00:00:00.000000000 Z
11
+ date: 2017-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal
@@ -73,6 +73,7 @@ extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
75
  - ".gitignore"
76
+ - ".travis.yml"
76
77
  - CHANGELOG.md
77
78
  - Gemfile
78
79
  - LICENSE
@@ -112,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
113
  version: '0'
113
114
  requirements: []
114
115
  rubyforge_project:
115
- rubygems_version: 2.6.4
116
+ rubygems_version: 2.6.8
116
117
  signing_key:
117
118
  specification_version: 4
118
119
  summary: Run Haml templates client-side with Opal