module SeoMeta::InstanceMethods

Public Class Methods

attributes() click to toggle source

Allow attributes supplied to override the current seo_meta_attributes.

Calls superclass method
# File lib/seo_meta/instance_methods.rb, line 13
def attributes
  seo_meta_attributes.merge(super)
end
attributes_equals(attributes, *args) click to toggle source
Calls superclass method
# File lib/seo_meta/instance_methods.rb, line 17
def attributes_equals(attributes, *args)
  seo_meta_attributes.merge(attributes)
  super
end
included(base) click to toggle source
# File lib/seo_meta/instance_methods.rb, line 5
def included(base)
  # This has to be introduced using module_eval because it overrides something.
  base.module_eval do
    def seo_meta
      find_seo_meta_tags || build_seo_meta_tags
    end

    # Allow attributes supplied to override the current seo_meta_attributes.
    def attributes
      seo_meta_attributes.merge(super)
    end

    def attributes_equals(attributes, *args)
      seo_meta_attributes.merge(attributes)
      super
    end

    alias_method :attributes_equals, :attributes=
  end
end
seo_meta() click to toggle source
# File lib/seo_meta/instance_methods.rb, line 8
def seo_meta
  find_seo_meta_tags || build_seo_meta_tags
end

Public Instance Methods

seo_meta_attributes() click to toggle source
# File lib/seo_meta/instance_methods.rb, line 27
def seo_meta_attributes
  ::SeoMeta.attributes.keys.inject({}) { |attrs, name|
    attrs.merge(name.to_s => send(name))
  }
end

Protected Instance Methods

build_seo_meta_tags() click to toggle source
# File lib/seo_meta/instance_methods.rb, line 39
def build_seo_meta_tags
  @seo_meta ||= ::SeoMetum.new :seo_meta_type => self.class.name
end
find_seo_meta_tags() click to toggle source
# File lib/seo_meta/instance_methods.rb, line 34
def find_seo_meta_tags
  @seo_meta ||= ::SeoMetum.where(:seo_meta_type => self.class.name,
                                 :seo_meta_id => self.id).first
end
save_meta_tags!() click to toggle source
# File lib/seo_meta/instance_methods.rb, line 43
def save_meta_tags!
  seo_meta.seo_meta_id ||= self.id unless seo_meta.persisted?
  seo_meta.save
end