Module: InertiaRails

Defined in:
lib/inertia_rails/extensions/better_errors.rb,
lib/inertia_rails.rb,
lib/inertia_rails/ssr.rb,
lib/inertia_rails/rspec.rb,
lib/inertia_rails/engine.rb,
lib/inertia_rails/errors.rb,
lib/inertia_rails/helper.rb,
lib/inertia_rails/current.rb,
lib/inertia_rails/testing.rb,
lib/inertia_rails/version.rb,
lib/inertia_rails/meta_tag.rb,
lib/inertia_rails/minitest.rb,
lib/inertia_rails/raw_json.rb,
lib/inertia_rails/renderer.rb,
lib/inertia_rails/base_prop.rb,
lib/inertia_rails/lazy_prop.rb,
lib/inertia_rails/once_prop.rb,
lib/inertia_rails/controller.rb,
lib/inertia_rails/defer_prop.rb,
lib/inertia_rails/merge_prop.rb,
lib/inertia_rails/middleware.rb,
lib/inertia_rails/always_prop.rb,
lib/inertia_rails/cached_prop.rb,
lib/inertia_rails/scroll_prop.rb,
lib/inertia_rails/precognition.rb,
lib/inertia_rails/ssr_renderer.rb,
lib/inertia_rails/configuration.rb,
lib/inertia_rails/optional_prop.rb,
lib/inertia_rails/prop_onceable.rb,
lib/inertia_rails/prop_cacheable.rb,
lib/inertia_rails/prop_evaluator.rb,
lib/inertia_rails/prop_mergeable.rb,
lib/inertia_rails/props_resolver.rb,
lib/inertia_rails/flash_extension.rb,
lib/inertia_rails/scroll_metadata.rb,
lib/inertia_rails/meta_tag_builder.rb,
lib/inertia_rails/rspec/deprecated.rb,
lib/inertia_rails/extensions/mapper.rb,
lib/inertia_rails/generators/helper.rb,
lib/inertia_rails/extensions/request.rb,
lib/inertia_rails/ignore_on_first_load_prop.rb,
lib/inertia_rails/extensions/debug_exceptions.rb,
app/controllers/inertia_rails/static_controller.rb,
lib/inertia_rails/generators/scaffold_template_base.rb,
lib/inertia_rails/generators/controller_template_base.rb

Overview

Patch ActionDispatch::DebugExceptions to render HTML for Inertia requests

The original source needs to be patched, so that Inertia requests are NOT responded with plain text, but with HTML.

Original source: github.com/rails/rails/blob/8-0-stable/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb github.com/rails/rails/blob/main/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb

Defined Under Namespace

Modules: Controller, FlashExtension, Generators, Helper, InertiaBetterErrors, InertiaDebugExceptions, InertiaMapper, InertiaRequest, Minitest, Precognition, PropCacheable, PropMergeable, PropOnceable, RSpec, SSR, ScrollMetadata, Testing Classes: AlwaysProp, BaseProp, CachedProp, Configuration, Current, DeferProp, DoublePrecognitionError, Engine, Error, IgnoreOnFirstLoadProp, LazyProp, MergeProp, MetaTag, MetaTagBuilder, Middleware, OnceProp, OptionalProp, PrecognitionResponse, PropEvaluator, PropsResolver, RawJson, Renderer, SSRError, SSRRenderer, ScrollProp, StaticController

Constant Summary collapse

VERSION =
'3.21.0'

Class Method Summary collapse

Class Method Details

.always(&block) ⇒ Object



76
77
78
# File 'lib/inertia_rails.rb', line 76

def always(&block)
  AlwaysProp.new(&block)
end

.cacheObject



92
93
94
# File 'lib/inertia_rails.rb', line 92

def cache(...)
  CachedProp.new(...)
end

.cache_storeObject



60
61
62
# File 'lib/inertia_rails.rb', line 60

def cache_store
  configuration.cache_store
end

.configurationObject



56
57
58
# File 'lib/inertia_rails.rb', line 56

def configuration
  @configuration ||= Configuration.default
end

.configure {|configuration| ... } ⇒ Object

Yields:



52
53
54
# File 'lib/inertia_rails.rb', line 52

def configure
  yield(configuration)
end

.deep_merge(match_on: nil, &block) ⇒ Object



88
89
90
# File 'lib/inertia_rails.rb', line 88

def deep_merge(match_on: nil, &block)
  MergeProp.new(deep_merge: true, match_on: match_on, &block)
end

.deferObject



96
97
98
# File 'lib/inertia_rails.rb', line 96

def defer(...)
  DeferProp.new(...)
end

.deprecatorObject

:nodoc:



64
65
66
# File 'lib/inertia_rails.rb', line 64

def deprecator # :nodoc:
  @deprecator ||= ActiveSupport::Deprecation.new
end

.lazy(value = nil, &block) ⇒ Object



68
69
70
# File 'lib/inertia_rails.rb', line 68

def lazy(value = nil, &block)
  LazyProp.new(value, &block)
end

.mergeObject



84
85
86
# File 'lib/inertia_rails.rb', line 84

def merge(...)
  MergeProp.new(...)
end

.onceObject



80
81
82
# File 'lib/inertia_rails.rb', line 80

def once(...)
  OnceProp.new(...)
end

.optionalObject



72
73
74
# File 'lib/inertia_rails.rb', line 72

def optional(...)
  OptionalProp.new(...)
end

.precognition!(model_or_errors) ⇒ Object



59
60
61
62
63
64
# File 'lib/inertia_rails/precognition.rb', line 59

def self.precognition!(model_or_errors)
  errors = Precognition.validate(model_or_errors)
  return false if errors.nil?

  raise PrecognitionResponse, errors, []
end

.scroll(metadata = nil, **options, &block) ⇒ Object



100
101
102
# File 'lib/inertia_rails.rb', line 100

def scroll( = nil, **options, &block)
  ScrollProp.new(metadata: , **options, &block)
end