Sha256: 7f3959aa5283c9dc5d1ad9731379ac5d02a0b17fa4ee02ec97d401f4bc2abe39
Contents?: true
Size: 662 Bytes
Versions: 2
Compression:
Stored size: 662 Bytes
Contents
module Contextuality class Context def initialize @scopes = [] end def push variables @scopes.unshift Hash[variables.map { |(name, variable)| [name.to_s, variable] }] end def pop @scopes.shift end def [] name name = name.to_s scope = @scopes.detect { |scope| scope.key? name } scope ? scope[name] : Contextuality.defaults[name.to_sym] end def key? name name = name.to_s @scopes.any? { |scope| scope.key? name } end def empty? !@scopes.any? { |scope| !scope.empty? } end def method_missing method, *args, &block self[method] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
contextuality-1.0.2 | lib/contextuality/context.rb |
contextuality-1.0.1 | lib/contextuality/context.rb |