Sha256: d2ae5eac2a62f5ce84e0716e6ac5169c381f5dd71e825813494d6986aed3a6d6
Contents?: true
Size: 709 Bytes
Versions: 7
Compression:
Stored size: 709 Bytes
Contents
module Railjet class Context def initialize(**kwargs) define_accessors(kwargs) end # New values can be assigned to context on-the-fly, # but it's not possible to change anything. def method_missing(name, *args, &block) getter_name = name[0..-2] if name =~ /^[a-z]+=$/ && !respond_to?(getter_name) define_accessor(getter_name, args.first) else super end end private def define_accessors(kwargs) kwargs.each do |name, val| define_accessor(name, val) end end def define_accessor(name, value) instance_variable_set("@#{name}", value) self.class.send(:attr_reader, name) end end end
Version data entries
7 entries across 7 versions & 1 rubygems