class Railjet::Context
Public Class Methods
new(**kwargs)
click to toggle source
# File lib/railjet/context.rb, line 3 def initialize(**kwargs) define_accessors(kwargs) end
Public Instance Methods
method_missing(name, *args, &block)
click to toggle source
New values can be assigned to context on-the-fly, but it's not possible to change anything.
Calls superclass method
# File lib/railjet/context.rb, line 9 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 Instance Methods
define_accessor(name, value)
click to toggle source
# File lib/railjet/context.rb, line 27 def define_accessor(name, value) instance_variable_set("@#{name}", value) define_singleton_method(name) { instance_variable_get(:"@#{name}") } end
define_accessors(kwargs)
click to toggle source
# File lib/railjet/context.rb, line 21 def define_accessors(kwargs) kwargs.each do |name, val| define_accessor(name, val) end end