Sha256: 22f81b91cf960c352ba40acb8349bfa0891c6b54128984f2a0f2a7d6cc41b837

Contents?: true

Size: 1.21 KB

Versions: 13

Compression:

Stored size: 1.21 KB

Contents

require 'rails/engine'

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. Otherwise it
        # would fall to JSON and get errors like the one described here https://github.com/spree/spree/issues/4589
        # where Float::INFINITY would resolve to Infinite (invalid json) istead of null
        config.json_engine = ActiveSupport::JSON
      end

      config.view_versions = [1]
      config.view_version_extraction_strategy = :http_header

      initializer "spree.api.environment", :before => :load_config_initializers do |app|
        Spree::Api::Config = Spree::ApiConfiguration.new
      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('../../../../', __FILE__))
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
spree_api-2.2.14 lib/spree/api/engine.rb
spree_api-2.2.13 lib/spree/api/engine.rb
spree_api-2.2.12 lib/spree/api/engine.rb
spree_api-2.2.11 lib/spree/api/engine.rb
spree_api-2.2.10 lib/spree/api/engine.rb
spree_api-2.2.9 lib/spree/api/engine.rb
spree_api-2.2.8 lib/spree/api/engine.rb
spree_api-2.2.7 lib/spree/api/engine.rb
spree_api-2.2.6 lib/spree/api/engine.rb
spree_api-2.2.5 lib/spree/api/engine.rb
spree_api-2.2.4 lib/spree/api/engine.rb
spree_api-2.2.3 lib/spree/api/engine.rb
spree_api-2.2.2 lib/spree/api/engine.rb