diff --git a/lib/locomotive/liquid/tags/seo_metadata.rb b/lib/locomotive/liquid/tags/seo_metadata.rb new file mode 100644 index 00000000..eb776117 --- /dev/null +++ b/lib/locomotive/liquid/tags/seo_metadata.rb @@ -0,0 +1,23 @@ +module Locomotive + module Liquid + module Tags + class SEOMetadata < ::Liquid::Tag + + def render(context) + %{ + + + } + end + + # Removees whitespace and quote charactets from the input + def sanitized_string(string) + string.strip.gsub(/"/, '') + end + + end + + ::Liquid::Template.register_tag('seo_metadata', SEOMetadata) + end + end +end \ No newline at end of file diff --git a/spec/lib/locomotive/liquid/tags/seo_metadata_spec.rb b/spec/lib/locomotive/liquid/tags/seo_metadata_spec.rb new file mode 100644 index 00000000..fe7200c5 --- /dev/null +++ b/spec/lib/locomotive/liquid/tags/seo_metadata_spec.rb @@ -0,0 +1,37 @@ +require 'spec_helper' + +describe Locomotive::Liquid::Tags::SEOMetadata do + + before :each do + @site = Factory.build(:site, :meta_description => 'A short site description', :meta_keywords => 'test only cat dog') + end + + context '#rendering' do + + it 'renders a a meta description tag' do + render_seo_metadata.should include '' + end + + it 'strips and removes quote characters from the description' do + @site.meta_description = ' String with " " quotes ' + render_seo_metadata.should include '' + end + + it 'renders a meta keywords tag' do + render_seo_metadata.should include '' + end + + it 'strips and removes quote characters from the keywords' do + @site.meta_keywords = ' one " two " three ' + render_seo_metadata.should include '' + end + + end + + def render_seo_metadata + registers = { :site => @site } + liquid_context = ::Liquid::Context.new({}, {}, registers) + output = Liquid::Template.parse("{% seo_metadata %}").render(liquid_context) + end + +end \ No newline at end of file