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