From 51b29d53e2afca67011bb76905a32f0564177b83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 13 Oct 2016 12:15:22 +0200 Subject: [PATCH] Update to Haml 4.0.7. --- .gitignore | 1 + 5017d332-Add-Haml-TestCase.patch | 169 ------------------ ...haml-4.11.x-Drop-support-for-Rails-3.patch | 130 ++++++++++++++ rubygem-haml.spec | 82 ++++----- sources | 2 +- 5 files changed, 174 insertions(+), 210 deletions(-) delete mode 100644 5017d332-Add-Haml-TestCase.patch create mode 100644 rubygem-haml-4.11.x-Drop-support-for-Rails-3.patch diff --git a/.gitignore b/.gitignore index a27baa0..63b8116 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ haml-3.1.7.gem/haml-4.0.5.gem +/haml-4.0.7.gem diff --git a/5017d332-Add-Haml-TestCase.patch b/5017d332-Add-Haml-TestCase.patch deleted file mode 100644 index 231a5de..0000000 --- a/5017d332-Add-Haml-TestCase.patch +++ /dev/null @@ -1,169 +0,0 @@ -diff --git a/test/engine_test.rb b/test/engine_test.rb -index 3b47217..5049340 100644 ---- a/test/engine_test.rb -+++ b/test/engine_test.rb -@@ -1,7 +1,7 @@ - # -*- coding: utf-8 -*- - require 'test_helper' - --class EngineTest < MiniTest::Unit::TestCase -+class EngineTest < Haml::TestCase - # A map of erroneous Haml documents to the error messages they should produce. - # The error messages may be arrays; - # if so, the second element should be the line number that should be reported for the error. -diff --git a/test/filters_test.rb b/test/filters_test.rb -index 5f16d2e..ca767ed 100644 ---- a/test/filters_test.rb -+++ b/test/filters_test.rb -@@ -1,6 +1,6 @@ - require 'test_helper' - --class FiltersTest < MiniTest::Unit::TestCase -+class FiltersTest < Haml::TestCase - test "should be registered as filters when including Haml::Filters::Base" do - begin - refute Haml::Filters.defined.has_key? "bar" -@@ -116,7 +116,7 @@ class FiltersTest < MiniTest::Unit::TestCase - - end - --class ErbFilterTest < MiniTest::Unit::TestCase -+class ErbFilterTest < Haml::TestCase - test "multiline expressions should work" do - html = "foobarbaz\n" - haml = %Q{:erb\n <%= "foo" +\n "bar" +\n "baz" %>} -@@ -137,7 +137,7 @@ class ErbFilterTest < MiniTest::Unit::TestCase - - end - --class JavascriptFilterTest < MiniTest::Unit::TestCase -+class JavascriptFilterTest < Haml::TestCase - test "should interpolate" do - scope = Object.new.instance_eval {foo = "bar"; nil if foo; binding} - haml = ":javascript\n \#{foo}" -@@ -183,7 +183,7 @@ class JavascriptFilterTest < MiniTest::Unit::TestCase - end - end - --class CSSFilterTest < MiniTest::Unit::TestCase -+class CSSFilterTest < Haml::TestCase - test "should wrap output in CDATA and a CSS tag when output is XHTML" do - html = "\n" - haml = ":css\n foo" -@@ -222,7 +222,7 @@ class CSSFilterTest < MiniTest::Unit::TestCase - end - end - --class CDATAFilterTest < MiniTest::Unit::TestCase -+class CDATAFilterTest < Haml::TestCase - test "should wrap output in CDATA tag" do - html = "\n" - haml = ":cdata\n foo" -@@ -230,7 +230,7 @@ class CDATAFilterTest < MiniTest::Unit::TestCase - end - end - --class EscapedFilterTest < MiniTest::Unit::TestCase -+class EscapedFilterTest < Haml::TestCase - test "should escape ampersands" do - html = "&\n" - haml = ":escaped\n &" -@@ -238,7 +238,7 @@ class EscapedFilterTest < MiniTest::Unit::TestCase - end - end - --class RubyFilterTest < MiniTest::Unit::TestCase -+class RubyFilterTest < Haml::TestCase - test "can write to haml_io" do - haml = ":ruby\n haml_io.puts 'hello'\n" - html = "hello\n" -@@ -256,4 +256,4 @@ class RubyFilterTest < MiniTest::Unit::TestCase - html = "7\n" - assert_equal(html, render(haml)) - end --end -\ No newline at end of file -+end -diff --git a/test/helper_test.rb b/test/helper_test.rb -index bf6b718..c845436 100644 ---- a/test/helper_test.rb -+++ b/test/helper_test.rb -@@ -27,6 +27,6 @@ class FormModel - end - --class HelperTest < MiniTest::Unit::TestCase -+class HelperTest < Haml::TestCase - Post = Struct.new('Post', :body, :error_field, :errors) - class PostErrors - def on(name) -diff --git a/test/parser_test.rb b/test/parser_test.rb -index 3435562..b11c075 100644 ---- a/test/parser_test.rb -+++ b/test/parser_test.rb -@@ -1,7 +1,7 @@ - require 'test_helper' - - module Haml -- class ParserTest < MiniTest::Unit::TestCase -+ class ParserTest < Haml::TestCase - - test "should raise error for 'else' at wrong indent level" do - begin -@@ -124,4 +124,4 @@ module Haml - parser.parse - end - end --end -\ No newline at end of file -+end -diff --git a/test/template_test.rb b/test/template_test.rb -index 59ccd75..0c8e636 100644 ---- a/test/template_test.rb -+++ b/test/template_test.rb -@@ -38,7 +38,7 @@ class DummyController - end - end - --class TemplateTest < MiniTest::Unit::TestCase -+class TemplateTest < Haml::TestCase - TEMPLATE_PATH = File.join(File.dirname(__FILE__), "templates") - TEMPLATES = %w{ very_basic standard helpers - whitespace_handling original_engine list helpful -diff --git a/test/test_helper.rb b/test/test_helper.rb -index 5119945..394e7eb 100644 ---- a/test/test_helper.rb -+++ b/test/test_helper.rb -@@ -41,14 +41,19 @@ require 'haml/template' - Haml::Template.options[:ugly] = false - Haml::Template.options[:format] = :xhtml - -+BASE_TEST_CLASS = if defined?(Minitest::Test) -+ Minitest::Test -+ else -+ MiniTest::Unit::TestCase -+ end -+ - module Declarative - def test(name, &block) - define_method("test #{name}", &block) - end - end - --class MiniTest::Unit::TestCase -- -+class Haml::TestCase < BASE_TEST_CLASS - extend Declarative - - def render(text, options = {}, base = nil, &block) -diff --git a/test/util_test.rb b/test/util_test.rb -index 5c9222a..481decf 100644 ---- a/test/util_test.rb -+++ b/test/util_test.rb -@@ -1,6 +1,6 @@ - require 'test_helper' - --class UtilTest < MiniTest::Unit::TestCase -+class UtilTest < Haml::TestCase - include Haml::Util - - def test_powerset diff --git a/rubygem-haml-4.11.x-Drop-support-for-Rails-3.patch b/rubygem-haml-4.11.x-Drop-support-for-Rails-3.patch new file mode 100644 index 0000000..b8b3c69 --- /dev/null +++ b/rubygem-haml-4.11.x-Drop-support-for-Rails-3.patch @@ -0,0 +1,130 @@ +From 1f8821ce8bea3d36b1b7fa01730dff5ec0c0377c Mon Sep 17 00:00:00 2001 +From: Norman Clarke +Date: Mon, 8 Jun 2015 14:55:59 -0300 +Subject: [PATCH] Drop support for Rails 3. + +--- + lib/haml/helpers/action_view_mods.rb | 8 ++--- + lib/haml/template/plugin.rb | 2 - + test/helper_test.rb | 52 ++++++++++++----------------------- + 3 files changed, 23 insertions(+), 39 deletions(-) + +diff --git a/lib/haml/helpers/action_view_mods.rb b/lib/haml/helpers/action_view_mods.rb +index b17429d..ad0c13c 100644 +--- a/lib/haml/helpers/action_view_mods.rb ++++ b/lib/haml/helpers/action_view_mods.rb +@@ -87,11 +87,9 @@ def is_haml? + end + end + +- if ActionPack::VERSION::MAJOR == 4 +- module Tags +- class TextArea +- include HamlSupport +- end ++ module Tags ++ class TextArea ++ include HamlSupport + end + end + +diff --git a/lib/haml/template/plugin.rb b/lib/haml/template/plugin.rb +index 322e445..6d96aae 100644 +--- a/lib/haml/template/plugin.rb ++++ b/lib/haml/template/plugin.rb +@@ -16,7 +16,7 @@ def handles_encoding?; true; end + + def compile(template) + options = Haml::Template.options.dup +- if (ActionPack::VERSION::MAJOR >= 4) && template.respond_to?(:type) ++ if template.respond_to?(:type) + options[:mime_type] = template.type + elsif template.respond_to? :mime_type + options[:mime_type] = template.mime_type +diff --git a/test/helper_test.rb b/test/helper_test.rb +index f6293a8..b1f9701 100644 +--- a/test/helper_test.rb ++++ b/test/helper_test.rb +@@ -27,6 +27,8 @@ + end + + class HelperTest < MiniTest::Unit::TestCase ++ TEXT_AREA_CONTENT_REGEX = /<(textarea)[^>]*>\n(.*?)<\/\1>/im ++ + Post = Struct.new('Post', :body, :error_field, :errors) + class PostErrors + def on(name) +@@ -157,29 +159,15 @@ def test_pre + render('= content_tag "pre", "Foo bar\n baz"', :action_view)) + end + +- # Rails >= 3.2.3 adds a newline after opening textarea tags. +- def self.rails_text_area_helpers_emit_a_newline? +- major, minor, tiny = ActionPack::VERSION::MAJOR, ActionPack::VERSION::MINOR, ActionPack::VERSION::TINY +- major == 4 || ((major == 3) && (minor >= 2) && (tiny >= 3)) +- end +- +- def text_area_content_regex +- @text_area_content_regex ||= if self.class.rails_text_area_helpers_emit_a_newline? +- /<(textarea)[^>]*>\n(.*?)<\/\1>/im +- else +- /<(textarea)[^>]*>(.*?)<\/\1>/im +- end +- end +- + def test_text_area_tag + output = render('= text_area_tag "body", "Foo\nBar\n Baz\n Boom"', :action_view) +- match_data = output.match(text_area_content_regex) ++ match_data = output.match(TEXT_AREA_CONTENT_REGEX) + assert_equal "Foo Bar Baz Boom", match_data[2] + end + + def test_text_area + output = render('= text_area :post, :body', :action_view) +- match_data = output.match(text_area_content_regex) ++ match_data = output.match(TEXT_AREA_CONTENT_REGEX) + assert_equal "Foo bar baz", match_data[2] + end + +@@ -187,26 +175,24 @@ def test_partials_should_not_cause_textareas_to_be_indented + # non-indentation of textareas rendered inside partials + @base.instance_variable_set('@post', Post.new("Foo", nil, PostErrors.new)) + output = render(".foo\n .bar\n = render '/text_area_helper'", :action_view) +- match_data = output.match(text_area_content_regex) ++ match_data = output.match(TEXT_AREA_CONTENT_REGEX) + assert_equal 'Foo', match_data[2] + end + +- if rails_text_area_helpers_emit_a_newline? +- def test_textareas_should_prerve_leading_whitespace +- # leading whitespace preservation +- @base.instance_variable_set('@post', Post.new(" Foo", nil, PostErrors.new)) +- output = render(".foo\n = text_area :post, :body", :action_view) +- match_data = output.match(text_area_content_regex) +- assert_equal ' Foo', match_data[2] +- end +- +- def test_textareas_should_prerve_leading_whitespace_in_partials +- # leading whitespace in textareas rendered inside partials +- @base.instance_variable_set('@post', Post.new(" Foo", nil, PostErrors.new)) +- output = render(".foo\n .bar\n = render '/text_area_helper'", :action_view) +- match_data = output.match(text_area_content_regex) +- assert_equal ' Foo', match_data[2] +- end ++ def test_textareas_should_prerve_leading_whitespace ++ # leading whitespace preservation ++ @base.instance_variable_set('@post', Post.new(" Foo", nil, PostErrors.new)) ++ output = render(".foo\n = text_area :post, :body", :action_view) ++ match_data = output.match(TEXT_AREA_CONTENT_REGEX) ++ assert_equal ' Foo', match_data[2] ++ end ++ ++ def test_textareas_should_prerve_leading_whitespace_in_partials ++ # leading whitespace in textareas rendered inside partials ++ @base.instance_variable_set('@post', Post.new(" Foo", nil, PostErrors.new)) ++ output = render(".foo\n .bar\n = render '/text_area_helper'", :action_view) ++ match_data = output.match(TEXT_AREA_CONTENT_REGEX) ++ assert_equal ' Foo', match_data[2] + end + + def test_capture_haml diff --git a/rubygem-haml.spec b/rubygem-haml.spec index fed6976..ecaeacf 100644 --- a/rubygem-haml.spec +++ b/rubygem-haml.spec @@ -1,39 +1,29 @@ # Generated from haml-2.2.14.gem by gem2rpm -*- rpm-spec -*- %global gem_name haml -Summary: An elegant, structured XHTML/XML templating engine Name: rubygem-%{gem_name} -Version: 4.0.5 -Release: 6%{?dist} +Version: 4.0.7 +Release: 1%{?dist} +Summary: An elegant, structured (X)HTML/XML templating engine Group: Development/Languages License: MIT and WTFPL -URL: http://haml-lang.com/ -Source0: http://rubygems.org/gems/%{gem_name}-%{version}.gem - -# from https://github.com/haml/haml/commit/5017d332604a9b77b19401f6d2bcbef6479c3210 -# slightly modified to apply against current release -Patch0: 5017d332-Add-Haml-TestCase.patch - -Requires: ruby(rubygems) -Requires: ruby(release) -Requires: rubygem(erubis) -Requires: rubygem(sass) -Requires: rubygem(tilt) - +URL: http://haml.info/ +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +# Fix compatibility with recent Ruby on Rails (but drop RoR 3 support). +# https://github.com/haml/haml/commit/1f8821ce8bea3d36b1b7fa01730dff5ec0c0377c.patch +Patch0: rubygem-haml-4.11.x-Drop-support-for-Rails-3.patch +BuildRequires: ruby(release) BuildRequires: rubygems-devel -BuildRequires: rubygem(erubis) +BuildRequires: ruby BuildRequires: rubygem(minitest) -BuildRequires: rubygem(rails) -BuildRequires: rubygem(sass) -BuildRequires: rubygem(nokogiri) - +BuildRequires: rubygem(tilt) +BuildRequires: rubygem(railties) BuildArch: noarch -Provides: rubygem(%{gem_name}) = %{version} %description -Haml (HTML Abstraction Markup Language) is a layer on top of XHTML or XML -that's designed to express the structure of XHTML or XML documents in a -non-repetitive, elegant, easy way, using indentation rather than closing +Haml (HTML Abstraction Markup Language) is a layer on top of HTML or XML +that's designed to express the structure documents in a non-repetitive, +elegant, easy way by using indentation rather than closing tags and allowing Ruby to be embedded with ease. It was originally envisioned as a plugin for Ruby on Rails, but it can function as a stand-alone templating engine. @@ -45,7 +35,7 @@ Requires: %{name} = %{version}-%{release} BuildArch: noarch %description doc -Documentation for %{name} +Documentation for %{name}. %prep gem unpack %{SOURCE0} @@ -54,6 +44,9 @@ gem unpack %{SOURCE0} gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec +# Bump the Rails dependency, just for sure. +sed -i '/rails/ s/3.2.0/4.0.0/' %{gem_name}.gemspec + %patch0 -p1 %build @@ -61,15 +54,9 @@ gem build %{gem_name}.gemspec %gem_install -%check -pushd %{buildroot}%{gem_instdir} -ruby -Ilib:test test/*_test.rb -popd - %install - mkdir -p %{buildroot}%{gem_dir} -cp -pa .%{gem_dir}/* \ +cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ @@ -79,26 +66,41 @@ cp -pa .%{_bindir}/* \ find %{buildroot}%{gem_instdir}/bin -type f | xargs chmod a+x +# Fix the permissions. +# https://github.com/haml/haml/commit/70978595f5534c6fa4bd407edb6c4248f5e50554 +chmod -x %{buildroot}%{gem_libdir}/haml/*.rb + +%check +pushd .%{gem_instdir} +# Get rid of Bundler. +sed -i '/bundler/ s/^/#/' test/test_helper.rb + +ruby -Ilib:test -e 'Dir.glob "./test/**/*_test.rb", &method(:require)' +popd + %files -%{_bindir}/haml %dir %{gem_instdir} -%{gem_libdir} -%{gem_instdir}/bin +%{_bindir}/haml %exclude %{gem_instdir}/.* -%doc %{gem_instdir}/MIT-LICENSE +%license %{gem_instdir}/MIT-LICENSE +%{gem_instdir}/bin +%{gem_libdir} %exclude %{gem_cache} %{gem_spec} -%doc %{gem_instdir}/CHANGELOG.md -%doc %{gem_instdir}/FAQ.md -%doc %{gem_instdir}/REFERENCE.md %files doc %doc %{gem_docdir} +%doc %{gem_instdir}/CHANGELOG.md +%doc %{gem_instdir}/FAQ.md %doc %{gem_instdir}/README.md +%doc %{gem_instdir}/REFERENCE.md %{gem_instdir}/Rakefile %{gem_instdir}/test %changelog +* Thu Oct 13 2016 Vít Ondruch - 4.0.7-1 +- Update to Haml 4.0.7. + * Thu Feb 04 2016 Fedora Release Engineering - 4.0.5-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild diff --git a/sources b/sources index da0a520..d35266d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -60c17bbec24a4c8e44568380c96f60ad haml-4.0.5.gem +54301683936cdf3678f5c513dab3871c haml-4.0.7.gem