Method: Togls::ToggleRepository#reconstitute_toggle

Defined in:
lib/togls/toggle_repository.rb

#reconstitute_toggle(toggle_data) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/togls/toggle_repository.rb', line 42

def reconstitute_toggle(toggle_data)
  begin
    feature = @feature_repository.get(toggle_data['feature_id'])
  rescue Togls::RepositoryFeatureDataInvalid => e
    return Togls::NullToggle.new
  end

  begin
    rule = ::Togls.send(:rule_repository).get(toggle_data['rule_id'])
  rescue Togls::RepositoryRuleDataInvalid => e
    return Togls::NullToggle.new
  end

  toggle = Togls::Toggle.new(feature)
  begin
    toggle.rule = rule
    toggle
  rescue Togls::RuleFeatureTargetTypeMismatch
    Togls.logger.warn("Feature (#{feature.key}) with target type '#{feature.target_type}' has a rule (#{rule.id}) mismatch with target type '#{rule.target_type}'")
    return Togls::RuleFeatureMismatchToggle.new
  end
end