Sha256: 8283dce1796742e9305f1d285e09625032d7351e434af9e32cfac7f8a8a9cd7f
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 KB
Contents
module InertiaRails thread_mattr_accessor :threadsafe_shared_plain_data thread_mattr_accessor :threadsafe_shared_blocks def self.configure yield(Configuration) end # "Getters" def self.shared_data(controller) shared_plain_data.merge!(evaluated_blocks(controller, shared_blocks)) end def self.version Configuration.evaluated_version end def self.layout Configuration.layout end # "Setters" def self.share(**args) self.shared_plain_data = self.shared_plain_data.merge(args) end def self.share_block(block) self.shared_blocks = self.shared_blocks + [block] end def self.reset! self.shared_plain_data = {} self.shared_blocks = [] end private module Configuration thread_mattr_accessor :threadsafe_layout thread_mattr_accessor :threadsafe_version def self.evaluated_version self.version.respond_to?(:call) ? self.version.call : self.version end def self.layout self.threadsafe_layout || 'application' end def self.layout=(val) self.threadsafe_layout = val end def self.version self.threadsafe_version end def self.version=(val) self.threadsafe_version = val end end # Getters and setters to provide default values for the threadsafe attributes def self.shared_plain_data self.threadsafe_shared_plain_data || {} end def self.shared_plain_data=(val) self.threadsafe_shared_plain_data = val end def self.shared_blocks self.threadsafe_shared_blocks || [] end def self.shared_blocks=(val) self.threadsafe_shared_blocks = val end def self.evaluated_blocks(controller, blocks) blocks.flat_map { |block| controller.instance_exec(&block) }.reduce(&:merge) || {} end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
inertia_rails-1.4.0 | lib/inertia_rails/inertia_rails.rb |