Sha256: 75f3c37664e07575fb5d5a648d30ca6e9b15496cabb7ffdc14e7dff17373e844

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

module Locomotive
  module Concerns
    module Site
      module Routes

        extend ActiveSupport::Concern
        include Concerns::Shared::JsonAttribute

        included do

          ## fields ##
          field :routes, type: Array, default: []

          ## behaviours ##
          json_attribute :routes
        end

        private

        # Example:
        #
        # [
        #   {
        #     "route": "/blog/:year/:month",
        #     "page_handle": "posts"
        #   },
        #   {
        #     "route": "/archived-projects/:category",
        #     "page_handle": "projects"
        #   }
        # ]
        #
        def _routes_schema
          {
            id: 'http://www.locomotive.cms/schemas/page/routes.json',
            definitions: {
              route: {
                type: 'object',
                properties: {
                  route:        { type: 'string' },
                  page_handle:  { type: 'string' }
                },
                required: [:route, :page_handle]
              }
            },
            type: 'array',
            items: { '$ref': '#/definitions/route' }
          }
        end

      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
locomotivecms-4.2.0.alpha2 app/models/locomotive/concerns/site/routes.rb
locomotivecms-4.2.0.alpha1 app/models/locomotive/concerns/site/routes.rb