Sha256: 46a73c1659bba5da366bcf869f6aaafcce5c6f9e27a5bd1015ca6ad2c828cfd2

Contents?: true

Size: 688 Bytes

Versions: 19

Compression:

Stored size: 688 Bytes

Contents

module Spina::Api
  class PageSerializer < BaseSerializer    
    set_type :page
    
    attributes :title, :seo_title, :menu_title, :materialized_path, :name, :description, :view_template
    
    attribute(:content) { |page| page_content(page) }
    
    belongs_to :resource

    class << self
      
      def page_content(page)
        return [] unless view_template(page)
        
        view_template(page)[:parts].map do |part| 
          { part => page.content(part) }
        end
      end
      
      def view_template(page)
        Spina::Current.theme.view_templates.find{|view_template| view_template[:name] == page.view_template}
      end
      
    end
    
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
spina-2.12.0 app/serializers/spina/api/page_serializer.rb
spina-2.11.0 app/serializers/spina/api/page_serializer.rb
spina-2.10.0 app/serializers/spina/api/page_serializer.rb
spina-2.9.1 app/serializers/spina/api/page_serializer.rb
spina-2.9.0 app/serializers/spina/api/page_serializer.rb
spina-2.8.1 app/serializers/spina/api/page_serializer.rb
spina-2.8.0 app/serializers/spina/api/page_serializer.rb
spina-2.7.0 app/serializers/spina/api/page_serializer.rb
spina-2.6.2 app/serializers/spina/api/page_serializer.rb
spina-2.6.1 app/serializers/spina/api/page_serializer.rb
spina-2.6.0 app/serializers/spina/api/page_serializer.rb
spina-2.5.0 app/serializers/spina/api/page_serializer.rb
spina-2.4.0 app/serializers/spina/api/page_serializer.rb
spina-2.3.5 app/serializers/spina/api/page_serializer.rb
spina-2.3.4 app/serializers/spina/api/page_serializer.rb
spina-2.3.3 app/serializers/spina/api/page_serializer.rb
spina-2.3.2 app/serializers/spina/api/page_serializer.rb
spina-2.3.1 app/serializers/spina/api/page_serializer.rb
spina-2.3.0 app/serializers/spina/api/page_serializer.rb