class Bricolage::ResolvedVariables
Public Class Methods
define() { |vars| ... }
click to toggle source
# File lib/bricolage/variables.rb, line 114 def ResolvedVariables.define new.tap {|vars| yield vars vars.freeze } end
new()
click to toggle source
# File lib/bricolage/variables.rb, line 121 def initialize @vars = {} end
Public Instance Methods
[](name)
click to toggle source
# File lib/bricolage/variables.rb, line 154 def [](name) var = @vars[name.to_s] or raise ParameterError, "undefined parameter: #{name}" var.value end
add(var)
click to toggle source
# File lib/bricolage/variables.rb, line 138 def add(var) raise "[BUG] unresolved variable: #{var.name}" unless var.resolved? @vars[var.name] = var end
bind_declarations(decls)
click to toggle source
# File lib/bricolage/variables.rb, line 171 def bind_declarations(decls) decls.each do |decl| unless bound?(decl.name) raise ParameterError, "script parameter not given: #{decl.name}" end end end
bound?(name)
click to toggle source
# File lib/bricolage/variables.rb, line 150 def bound?(name) @vars.key?(name.to_s) end
each_variable(&block)
click to toggle source
# File lib/bricolage/variables.rb, line 163 def each_variable(&block) @vars.each_value(&block) end
expand(str)
click to toggle source
# File lib/bricolage/variables.rb, line 167 def expand(str) Variable.expand_string(str) {|name| self[name] } end
freeze()
click to toggle source
Calls superclass method
# File lib/bricolage/variables.rb, line 133 def freeze @vars.freeze super end
inspect()
click to toggle source
# File lib/bricolage/variables.rb, line 125 def inspect "\#<#{self.class} #{@vars.inspect}>" end
keys()
click to toggle source
# File lib/bricolage/variables.rb, line 159 def keys @vars.keys end
resolve_update(unresolved)
click to toggle source
# File lib/bricolage/variables.rb, line 143 def resolve_update(unresolved) raise "[BUG] already resolved variables given" if unresolved.resolved? unresolved.resolve_with(self).each_variable do |var| add var end end
resolved?()
click to toggle source
# File lib/bricolage/variables.rb, line 129 def resolved? true end