class BaseChip::Block
Public Instance Methods
configuration_dereference(name,names,passive)
click to toggle source
# File lib/base_chip/block.rb, line 26 def configuration_dereference(name,names,passive) if configuration = @configurations[name] configuration.configure configuration.dereference_workload(names,passive) elsif configuration = @configurations[:default] configuration.configure configuration.dereference_workload(names.map{|n|"#{name}:#{n}"},passive) elsif passive [] else fault "Could not find configuration #{name} in block #{@name}" # FIXME say who wanted it, and if shortcut occurred end end
dereference_workload(names = nil,passive=false)
click to toggle source
# File lib/base_chip/block.rb, line 39 def dereference_workload(names = nil,passive=false) configure fault "No configurations specified for block #{@name}" unless @configurations # || passive || names.nil? names ||= ['all'] out = Array.new names.each do |n| n = n.to_s case n when 'all', 'gate', 'upgate', 'downgate', 'diffgate' # FIXME , 'alltests', 'allactions' next unless @configurations @configurations.keys.each { |k| out += configuration_dereference(k,[n],true) } when /^all:(.*)$/ next unless @configurations tmp = $1 @configurations.keys.each { |k| out += configuration_dereference(k,[tmp],true) } when /^([^:]*?):(.*)$/ out += configuration_dereference($1.to_sym,[$2],passive) else fault "No configurations specified for block #{@name}" unless @configurations || passive if @configurations[:default] out += configuration_dereference(:default,[n],passive) elsif @configurations.size == 1 out += configuration_dereference(@configurations.keys[0],[n],passive) end end end out.uniq! out end
discover_configurations()
click to toggle source
# File lib/base_chip/block.rb, line 74 def discover_configurations ; file_glob("#{@directory}/*/base_chip/configuration.rb" , /(\w+)\/base_chip\/configuration\.rb$/ , :configuration) file_glob("#{@directory}/base_chip/configurations/*.rb", /base_chip\/configurations\/(\w+)\.rb$/, :configuration) end
shortcut(name, array)
click to toggle source
# File lib/base_chip/block.rb, line 69 def shortcut(name, array) @shortcuts ||= {} @shortcuts[name] = array end