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
-
.build(name, options = {}, &block) ⇒ Object
-
.clear ⇒ Object
-
.create(name, options = {}, &block) ⇒ Object
-
.dictionaries ⇒ Object
-
.dictionary(name) ⇒ Object
-
.generate(name, options = {}, &block) ⇒ Object
-
.reset ⇒ Object
-
.reset_dictionaries(*names) ⇒ Object
-
.reset_sequences(*names) ⇒ Object
-
.reset_template_dictionaries(template, *names) ⇒ Object
-
.reset_template_sequences(template, *names) ⇒ Object
-
.sequence(name, options = {}, &block) ⇒ Object
-
.sequences ⇒ Object
-
.template(name, &block) ⇒ Object
-
.templates ⇒ Object
Class Method Details
.build(name, options = {}, &block) ⇒ Object
37
38
39
|
# File 'lib/olfactory.rb', line 37
def self.build(name, options = {}, &block)
self.templates[name].build(block, options)
end
|
.clear ⇒ Object
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
|
.dictionaries ⇒ Object
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
|
.reset ⇒ Object
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
|
.sequences ⇒ Object
16
17
18
|
# File 'lib/olfactory.rb', line 16
def self.sequences
@@sequences
end
|
.template(name, &block) ⇒ Object
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
|
.templates ⇒ Object
13
14
15
|
# File 'lib/olfactory.rb', line 13
def self.templates
@@templates
end
|