Module: Bali::Integrators::Rule

Extended by:
Rule
Included in:
Rule
Defined in:
lib/bali/integrators/rules_integrator.rb

Instance Method Summary collapse

Instance Method Details

#add_rule_class(rule_class) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/bali/integrators/rules_integrator.rb', line 25

def add_rule_class(rule_class)
  if rule_class.is_a?(Bali::RuleClass)
    target = rule_class.target_class

    raise Bali::DslError, "Target must be a class" unless target.is_a?(Class)

    Bali::RULE_CLASS_MAP[target.to_s] = rule_class
    rule_class
  else
    raise Bali::DslError, "Only allow instance of Bali::RuleClass"
  end
end

#rule_class_for(target) ⇒ Object

Raises:



8
9
10
11
12
# File 'lib/bali/integrators/rules_integrator.rb', line 8

def rule_class_for(target)
  raise Bali::DslError, "Target must be a class" unless target.is_a?(Class)
  rule_class = Bali::RULE_CLASS_MAP[target.to_s]
  return rule_class.nil? ? nil : rule_class
end

#rule_classesObject



4
5
6
# File 'lib/bali/integrators/rules_integrator.rb', line 4

def rule_classes
  Bali::RULE_CLASS_MAP
end

#rule_group_for(target_class, subtarget) ⇒ Object

attempt to search the rule group, but if not exist, will return nil



15
16
17
18
19
20
21
22
23
# File 'lib/bali/integrators/rules_integrator.rb', line 15

def rule_group_for(target_class, subtarget)
  rule_class = rule_class_for(target_class)
  if rule_class
    rule_group = rule_class.rules_for(subtarget)
    return rule_group
  else
    return nil
  end
end