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