Module: Olfactory

Defined in:
lib/olfactory.rb,
lib/olfactory/version.rb,
lib/olfactory/sequence.rb,
lib/olfactory/template.rb,
lib/olfactory/dictionary.rb,
lib/olfactory/template_definition.rb

Defined Under Namespace

Classes: Dictionary, Sequence, Template, TemplateDefinition

Constant Summary collapse

VERSION =
'0.2.0'
@@templates =
{}
@@sequences =
{}
@@dictionaries =
{}

Class Method Summary collapse

Class Method Details

.build(name, options = {}, &block) ⇒ Object

Invocations



37
38
39
# File 'lib/olfactory.rb', line 37

def self.build(name, options = {}, &block)
  self.templates[name].build(block, options)
end

.clearObject



53
54
55
56
57
# File 'lib/olfactory.rb', line 53

def self.clear
  @@templates = {}
  @@sequences = {}
  @@dictionaries = {}
end

.create(name, options = {}, &block) ⇒ Object



40
41
42
43
44
# File 'lib/olfactory.rb', line 40

def self.create(name, options = {}, &block)
  template = self.templates[name].build(block, options)
  template.save!
  template
end

.dictionariesObject



19
20
21
# File 'lib/olfactory.rb', line 19

def self.dictionaries
  @@dictionaries
end

.dictionary(name) ⇒ Object



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

def self.dictionary(name)
  dictionaries[name] = Olfactory::Dictionary.new(name)
end

.generate(name, options = {}, &block) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/olfactory.rb', line 45

def self.generate(name, options = {}, &block)
  if sequence = self.sequences[name]
    sequence.generate(name, options, block)
  else
    raise "Unknown sequence '#{name}'!"
  end
end

.resetObject



58
59
60
61
62
63
# File 'lib/olfactory.rb', line 58

def self.reset
  self.reset_sequences
  self.reset_dictionaries
  self.reset_template_sequences
  self.reset_template_dictionaries
end

.reset_dictionaries(*names) ⇒ Object



75
76
77
78
79
80
# File 'lib/olfactory.rb', line 75

def self.reset_dictionaries(*names)
  names = self.dictionaries.keys if names.empty?
  names.each do |name|
    self.dictionaries[name].reset
  end
end

.reset_sequences(*names) ⇒ Object



64
65
66
67
68
69
# File 'lib/olfactory.rb', line 64

def self.reset_sequences(*names)
  names = self.sequences.keys if names.empty?
  names.each do |name|
    self.sequences[name].reset
  end
end

.reset_template_dictionaries(template, *names) ⇒ Object



81
82
83
84
85
# File 'lib/olfactory.rb', line 81

def self.reset_template_dictionaries(template, *names)
  if template = self.templates[template]
    template.reset_dictionaries(*names)
  end
end

.reset_template_sequences(template, *names) ⇒ Object



70
71
72
73
74
# File 'lib/olfactory.rb', line 70

def self.reset_template_sequences(template, *names)
  if template = self.templates[template]
    template.reset_sequences(*names)
  end
end

.sequence(name, options = {}, &block) ⇒ Object



29
30
31
# File 'lib/olfactory.rb', line 29

def self.sequence(name, options = {}, &block)
  sequences[name] = Olfactory::Sequence.new(name, options, block)
end

.sequencesObject



16
17
18
# File 'lib/olfactory.rb', line 16

def self.sequences
  @@sequences
end

.template(name, &block) ⇒ Object

Definitions



24
25
26
27
28
# File 'lib/olfactory.rb', line 24

def self.template(name, &block)
  new_template_definition = Olfactory::TemplateDefinition.new
  block.call(new_template_definition)
  self.templates[name] = new_template_definition
end

.templatesObject

Getters



13
14
15
# File 'lib/olfactory.rb', line 13

def self.templates
  @@templates
end