Sha256: 600c43134fb88da41e1ee9a53f86367ac552c484f151a5e71deda47593842bde

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

# Needed for `thread_mattr_accessor`
require 'active_support/core_ext/module/attribute_accessors_per_thread'
require 'inertia_rails/lazy'

module InertiaRails
  def self.configure
    yield(Configuration)
  end

  def self.version
    Configuration.evaluated_version
  end

  def self.layout
    Configuration.layout
  end

  def self.ssr_enabled?
    Configuration.ssr_enabled
  end

  def self.ssr_url
    Configuration.ssr_url
  end

  def self.default_render?
    Configuration.default_render
  end

  def self.deep_merge_shared_data?
    Configuration.deep_merge_shared_data
  end

  def self.lazy(value = nil, &block)
    InertiaRails::Lazy.new(value, &block)
  end

  private

  module Configuration
    mattr_accessor(:layout) { nil }
    mattr_accessor(:version) { nil }
    mattr_accessor(:ssr_enabled) { false }
    mattr_accessor(:ssr_url) { 'http://localhost:13714' }
    mattr_accessor(:default_render) { false }
    mattr_accessor(:deep_merge_shared_data) { false }

    def self.evaluated_version
      self.version.respond_to?(:call) ? self.version.call : self.version
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
inertiax_rails-2.0.0 lib/inertia_rails/inertia_rails.rb
inertia_rails-3.2.0 lib/inertia_rails/inertia_rails.rb