module ChupaText::Decomposers

Public Class Methods

create(registry, configuration) click to toggle source
# File lib/chupa-text/decomposers.rb, line 49
def create(registry, configuration)
  enabled_names = resolve_names(registry, configuration.names)
  enabled_names.collect do |enabled_name|
    decomposer_class = registry.find(enabled_name)
    options = configuration.options[name] || {}
    decomposer_class.new(options)
  end
end
enable_all_gems() click to toggle source
# File lib/chupa-text/decomposers.rb, line 20
def enable_all_gems
  decomposer_specs = Gem::Specification.find_all do |spec|
    spec.name.start_with?("chupa-text-decomposer-")
  end
  grouped_decomposer_specs = decomposer_specs.group_by(&:name)
  latest_decomposer_specs = []
  grouped_decomposer_specs.each do |name, specs|
    latest_decomposer_specs << specs.sort_by(&:version).last
  end
  latest_decomposer_specs.each do |spec|
    gem(spec.name, spec.version)
  end
end
load() click to toggle source
# File lib/chupa-text/decomposers.rb, line 34
def load
  paths = []
  $LOAD_PATH.each do |load_path|
    next unless File.directory?(load_path)
    Dir.chdir(load_path) do
      Dir.glob("chupa-text/decomposers/*.rb") do |decomposer_path|
        paths << decomposer_path.gsub(/\.rb\z/, "")
      end
    end
  end
  paths.each do |path|
    require path
  end
end

Private Class Methods

resolve_names(registry, enabled_names) click to toggle source
# File lib/chupa-text/decomposers.rb, line 59
def resolve_names(registry, enabled_names)
  resolved_names = []
  flag = 0
  flag |= File::FNM_EXTGLOB if File.const_defined?(:FNM_EXTGLOB)
  enabled_names.each do |enabled_name|
    registry.each do |name,|
      next unless File.fnmatch(enabled_name, name, flag)
      resolved_names << name
    end
  end
  resolved_names
end