Sha256: 6230372d3e0a10fa03f44bd09b2d95809a827031c52d7a862588ef96dae461e3

Contents?: true

Size: 934 Bytes

Versions: 37

Compression:

Stored size: 934 Bytes

Contents

module Scrivito

  class CmsEnv

    OBJ_ENV_KEY = "SCRIVITO_OBJ"

    def initialize(env)
      @env = env
    end

    def load
      return if env[OBJ_ENV_KEY]
      load_object
    end

    protected

    attr_reader :env

    def load_object
      env[OBJ_ENV_KEY] =
        begin
          find_obj
        rescue StandardError => e
          e
        end
    end

    def find_obj
      found_obj =
        if id = params[:id]
          if EditingContextMiddleware.from_env(env).include_deleted_objs?
            Obj.find_including_deleted(id)
          else
            Obj.find(id)
          end
        elsif params[:permalink].present?
          permalink =  Array(params[:permalink]).join("/")
          Obj.find_by_permalink!(permalink)
        else
          Scrivito::RequestHomepage.call(env)
        end

      found_obj
    end

    def params
      env["action_dispatch.request.path_parameters"]
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
scrivito_sdk-1.19.0.rc2 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.19.0.rc1 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.18.0 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.18.0.rc1 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.17.0 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.17.0.rc3 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.17.0.rc2 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.17.0.rc1 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.16.0 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.16.0.rc2 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.16.0.rc1 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.15.0 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.15.0.rc2 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.15.0.rc1 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.14.0 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.14.0.rc3 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.14.0.rc2 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.14.0.rc1 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.13.0 app/cms/scrivito/cms_env.rb
scrivito_sdk-1.13.0.rc2 app/cms/scrivito/cms_env.rb