Sha256: d1b0ecf3dbf626514041d13e039b7785013551e4112fc9c5074e000469debc30

Contents?: true

Size: 1.77 KB

Versions: 17

Compression:

Stored size: 1.77 KB

Contents

require 'rails/engine'
require 'versioncake'

module Spree
  module Api
    class Engine < Rails::Engine
      isolate_namespace Spree
      engine_name 'spree_api'

      Rabl.configure do |config|
        config.include_json_root = false
        config.include_child_root = false

        # Motivation here it make it call as_json when rendering timestamps
        # and therefore display miliseconds. Otherwise it would fall to
        # JSON.dump which doesn't display the miliseconds
        config.json_engine = ActiveSupport::JSON
      end

      initializer 'spree.api.versioncake' do |_app|
        VersionCake.setup do |config|
          config.resources do |r|
            r.resource %r{.*}, [], [], [1, 2]
          end

          config.missing_version = 1
          config.extraction_strategy = :http_header
        end
      end

      # sets the manifests / assets to be precompiled, even when initialize_on_precompile is false
      initializer 'spree.assets.precompile', group: :all do |app|
        app.config.assets.precompile += %w[
          spree/api/all*
        ]
      end

      initializer 'spree.api.environment', before: :load_config_initializers do |_app|
        Spree::Api::Config = Spree::ApiConfiguration.new
        Spree::Api::Dependencies = Spree::ApiDependencies.new
      end

      initializer 'spree.api.checking_migrations' do
        Migrations.new(config, engine_name).check
      end

      def self.activate
        Dir.glob(File.join(File.dirname(__FILE__), '../../../app/**/*_decorator*.rb')) do |c|
          Rails.configuration.cache_classes ? require(c) : load(c)
        end
      end
      config.to_prepare &method(:activate).to_proc

      def self.root
        @root ||= Pathname.new(File.expand_path('../../..', __dir__))
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
spree_api-3.7.14.1 lib/spree/api/engine.rb
spree_api-3.7.14 lib/spree/api/engine.rb
spree_api-3.7.13 lib/spree/api/engine.rb
spree_api-3.7.12 lib/spree/api/engine.rb
spree_api-3.7.11 lib/spree/api/engine.rb
spree_api-3.7.10 lib/spree/api/engine.rb
spree_api-3.7.9 lib/spree/api/engine.rb
spree_api-3.7.8 lib/spree/api/engine.rb
spree_api-3.7.7 lib/spree/api/engine.rb
spree_api-3.7.6 lib/spree/api/engine.rb
spree_api-3.7.5 lib/spree/api/engine.rb
spree_api-3.7.4 lib/spree/api/engine.rb
spree_api-3.7.3 lib/spree/api/engine.rb
spree_api-3.7.2 lib/spree/api/engine.rb
spree_api-3.7.1 lib/spree/api/engine.rb
spree_api-3.7.0 lib/spree/api/engine.rb
spree_api-3.7.0.rc3 lib/spree/api/engine.rb