Class: CLabs::CaseGen::Sets

Inherits:
Agent show all
Defined in:
lib/agents/sets.rb

Instance Attribute Summary collapse

Attributes inherited from Agent

#data, #reference_agents

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, reference_agents = nil) ⇒ Sets

Returns a new instance of Sets.



38
39
40
41
42
# File 'lib/agents/sets.rb', line 38

def initialize(data, reference_agents=nil)
  @data = data
  @sets = []
  parse_sets
end

Instance Attribute Details

#combinationsObject

Returns the value of attribute combinations.



32
33
34
# File 'lib/agents/sets.rb', line 32

def combinations
  @combinations
end

#set_titlesObject

Returns the value of attribute set_titles.



32
33
34
# File 'lib/agents/sets.rb', line 32

def set_titles
  @set_titles
end

#setsObject

Returns the value of attribute sets.



32
33
34
# File 'lib/agents/sets.rb', line 32

def sets
  @sets
end

Class Method Details

.agent_idObject



34
35
36
# File 'lib/agents/sets.rb', line 34

def Sets.agent_id
  "casegen:sets"
end

Instance Method Details

#all(*args) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/agents/sets.rb', line 65

def all(*args)
  result = []
  EnumerableOperator::Product.new(*args).each { |tuple|
    result << tuple
  }
  result
end

#generate_combinationsObject



54
55
56
57
58
59
# File 'lib/agents/sets.rb', line 54

def generate_combinations
  arrays = []
  @set_titles = []
  @sets.each do |set| arrays << set.data; @set_titles << set.name end
  @combinations = all(*arrays)
end

#parse_setsObject



44
45
46
47
48
49
50
51
52
# File 'lib/agents/sets.rb', line 44

def parse_sets
  set_names = @data.scan(/^\s*(\w.*):/)
  set_data = @data.scan(/:(.*)/)
  sets = set_names.flatten.zip(set_data.flatten)
  sets.each do |set_array|
    @sets << Set.new(set_array[0], set_array[1].split(/, /))
  end
  generate_combinations
end

#set_by_name(setname) ⇒ Object



79
80
81
# File 'lib/agents/sets.rb', line 79

def set_by_name(setname)
  @sets.detect do |set| set.name =~ /#{Regexp.escape(setname)}/ end
end

#set_namesObject



73
74
75
76
77
# File 'lib/agents/sets.rb', line 73

def set_names
  names = []
  @sets.each do |set| names << set.name end
  names
end

#titlesObject



61
62
63
# File 'lib/agents/sets.rb', line 61

def titles
  @set_titles
end