class Orbacle::Builder::Context
Constants
- AnalyzedKlass
Attributes
analyzed_klass[R]
analyzed_method[R]
filepath[R]
lenv[R]
nesting[R]
selfie[R]
Public Class Methods
new(filepath, selfie, nesting, analyzed_klass, analyzed_method, lenv)
click to toggle source
# File lib/orbacle/builder/context.rb, line 8 def initialize(filepath, selfie, nesting, analyzed_klass, analyzed_method, lenv) @filepath = filepath.freeze @selfie = selfie.freeze @nesting = nesting.freeze @analyzed_klass = analyzed_klass.freeze @analyzed_method = analyzed_method.freeze @lenv = lenv.freeze end
Public Instance Methods
analyzed_klass_id()
click to toggle source
# File lib/orbacle/builder/context.rb, line 55 def analyzed_klass_id analyzed_klass.klass_id end
lenv_fetch(key)
click to toggle source
# File lib/orbacle/builder/context.rb, line 47 def lenv_fetch(key) lenv.fetch(key, []) end
merge_lenv(new_lenv)
click to toggle source
# File lib/orbacle/builder/context.rb, line 43 def merge_lenv(new_lenv) self.class.new(filepath, selfie, nesting, analyzed_klass, analyzed_method, lenv.merge(new_lenv)) end
scope()
click to toggle source
# File lib/orbacle/builder/context.rb, line 27 def scope nesting.to_scope end
with_analyzed_klass(new_klass_id)
click to toggle source
# File lib/orbacle/builder/context.rb, line 31 def with_analyzed_klass(new_klass_id) self.class.new(filepath, selfie, nesting, AnalyzedKlass.new(new_klass_id, :public), analyzed_method, lenv) end
with_analyzed_method(new_analyzed_method_id)
click to toggle source
# File lib/orbacle/builder/context.rb, line 39 def with_analyzed_method(new_analyzed_method_id) self.class.new(filepath, selfie, nesting, analyzed_klass, new_analyzed_method_id, lenv) end
with_lenv(new_lenv)
click to toggle source
# File lib/orbacle/builder/context.rb, line 51 def with_lenv(new_lenv) self.class.new(filepath, selfie, nesting, analyzed_klass, analyzed_method, new_lenv) end
with_merged_lenvs(lenv1, lenv2)
click to toggle source
# File lib/orbacle/builder/context.rb, line 59 def with_merged_lenvs(lenv1, lenv2) final_lenv = {} var_names = (lenv1.keys + lenv2.keys).uniq var_names.each do |var_name| final_lenv[var_name] = (lenv1.fetch(var_name, []) + lenv2.fetch(var_name, [])).uniq end with_lenv(final_lenv) end
with_nesting(new_nesting)
click to toggle source
# File lib/orbacle/builder/context.rb, line 23 def with_nesting(new_nesting) self.class.new(filepath, selfie, new_nesting, analyzed_klass, analyzed_method, lenv) end
with_selfie(new_selfie)
click to toggle source
# File lib/orbacle/builder/context.rb, line 19 def with_selfie(new_selfie) self.class.new(filepath, new_selfie, nesting, analyzed_klass, analyzed_method, lenv) end
with_visibility(new_visibility)
click to toggle source
# File lib/orbacle/builder/context.rb, line 35 def with_visibility(new_visibility) self.class.new(filepath, selfie, nesting, AnalyzedKlass.new(analyzed_klass.klass_id, new_visibility), analyzed_method, lenv) end