class Togls::RuleTypeRepository

Public Class Methods

new(drivers) click to toggle source
# File lib/togls/rule_type_repository.rb, line 3
def initialize(drivers)
  @drivers = drivers
end

Public Instance Methods

get_klass(type_id) click to toggle source
# File lib/togls/rule_type_repository.rb, line 24
def get_klass(type_id)
  klass_string = fetch_klass_string(type_id.to_s)
  return Object.const_get(klass_string) if klass_string
  klass_string
end
get_type_id(klass) click to toggle source
# File lib/togls/rule_type_repository.rb, line 30
def get_type_id(klass)
  fetch_type_id(klass.to_s)
end
include?(type_id) click to toggle source
# File lib/togls/rule_type_repository.rb, line 14
def include?(type_id)
  type = get_klass(type_id)
  type ? true : false
end
include_klass?(klass) click to toggle source
# File lib/togls/rule_type_repository.rb, line 19
def include_klass?(klass)
  type = get_type_id(klass)
  type ? true : false
end
store(type_id, klass) click to toggle source
# File lib/togls/rule_type_repository.rb, line 7
def store(type_id, klass)
  @drivers.each do |driver|
    driver.store(type_id.to_s, klass.to_s, klass.title, klass.description,
                 klass.target_type.to_s)
  end
end

Private Instance Methods

fetch_klass_string(type_id) click to toggle source
# File lib/togls/rule_type_repository.rb, line 45
def fetch_klass_string(type_id)
  reverse_drivers do |driver|
    driver.get_klass(type_id)
  end
end
fetch_type_id(klass_str) click to toggle source
# File lib/togls/rule_type_repository.rb, line 51
def fetch_type_id(klass_str)
  reverse_drivers do |driver|
    driver.get_type_id(klass_str)
  end
end
reverse_drivers(&block) click to toggle source
# File lib/togls/rule_type_repository.rb, line 36
def reverse_drivers(&block)
  val = nil
  @drivers.reverse.each do |driver|
    val = block.call(driver) if block_given?
    break if val
  end
  val
end