module UniverseCompiler::Universe::Query
Public Instance Methods
basic_criteria()
click to toggle source
# File lib/universe_compiler/universe/query.rb, line 6 def basic_criteria self.private_methods.grep /^by_/ end
get_entities(criterion: nil, value: nil, &filter_block)
click to toggle source
# File lib/universe_compiler/universe/query.rb, line 15 def get_entities(criterion: nil, value: nil, &filter_block) res = if criterion.nil? then entities.clone else raise "Invalid criterion '#{criterion}' !" unless basic_criteria.include? criterion if value.nil? self.send(criterion).clone else self.send(criterion).clone[value] end end res = case res when NilClass [] when Array res else [res] end if block_given? res.select! do |entity| filter_block.call entity end end res end
get_entity(type, name)
click to toggle source
# File lib/universe_compiler/universe/query.rb, line 10 def get_entity(type, name) res = get_entities criterion: :by_uniq_key, value: [type, name] res.empty? ? nil : res.first end