Sha256: d085d4606fd065b5c99d7f750690004594a9d67f3ea307b03dbc8c2f222c0b4a

Contents?: true

Size: 847 Bytes

Versions: 7

Compression:

Stored size: 847 Bytes

Contents

module MetaTagsHelper
  DEFAULT_FIELDS = %w(author geourl copyright keywords description)

  def meta_tags(resource=nil)
    current_resource = controller.try(:current_resource)
    resources = [resource, current_resource, @site].compact

    # TODO: check if we actually need this fallback
    # fields = resource.class.try(:meta_fields) || DEFAULT_FIELDS

    DEFAULT_FIELDS.map do |name|
      resource = resources.find do |r|
        r.respond_to?(:"meta_#{name}")
      end

      if resource
        content = meta_value_from(resource.send(:"meta_#{name}"), resource.try(:"default_meta_#{name}"))
        meta_tag(name, content)
      end
    end.join("\n").html_safe
  end

  def meta_tag(name, content)
    tag 'meta', :name => name, :content => content
  end

  def meta_value_from(*args)
    args.detect { |arg| arg.present? }
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
adva-0.1.4 app/helpers/meta_tags_helper.rb
adva-0.1.3 app/helpers/meta_tags_helper.rb
adva-0.1.2 app/helpers/meta_tags_helper.rb
adva-0.1.1 app/helpers/meta_tags_helper.rb
adva-0.1.0 app/helpers/meta_tags_helper.rb
adva_meta_tags-0.0.1 app/helpers/meta_tags_helper.rb
adva-0.0.1 adva_meta_tags/app/helpers/meta_tags_helper.rb