Sha256: 5d5cefa6281212d4ddac309e5a3c2708b94b444cfb7ac9ba0f0dcb68b639d0af
Contents?: true
Size: 803 Bytes
Versions: 17
Compression:
Stored size: 803 Bytes
Contents
module ROM # ROM's open structs are used for relations with empty schemas. # Such relations may exist in cases like using raw SQL strings # where schema was not explicitly defined using `view` DSL. # # @api public class OpenStruct IVAR = -> v { :"@#{v}" } # @api private def initialize(attributes) attributes.each do |key, value| instance_variable_set(IVAR[key], value) end end # @api private def respond_to_missing?(meth, include_private = false) super || instance_variables.include?(IVAR[meth]) end private # @api private def method_missing(meth, *args, &block) ivar = IVAR[meth] if instance_variables.include?(ivar) instance_variable_get(ivar) else super end end end end
Version data entries
17 entries across 17 versions & 2 rubygems