Sha256: f52028d0a753893c0108412aaa02994dc8984078da815f23891ff9363b926dfd

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

module Alias
  class ConstantCreator < Creator
    
    def delete_invalid_aliases(aliases_hash)
      delete_invalid_class_keys(aliases_hash)
    end
    
    def delete_existing_aliases(aliases_hash)
      aliases_hash.each do |k, v| 
        if (klass = Object.any_const_get(v)) && ! alias_map.values.include?(v)
          aliases_hash.delete(k)
          puts "Alias '#{v}' deleted since the constant already exists" if self.verbose
        end
      end
    end
    
    def create_aliases(aliases_hash)
      eval_string = ''
      aliases_hash.each {|k,v|
        eval_string += "#{v} = #{k}\n"
      }
      Object.class_eval eval_string
    end
    
    def generate_aliases(array_to_alias)
      make_shortest_aliases(array_to_alias)
    end
    
    def make_shortest_aliases(unaliased_strings)
      shortest_aliases = {}
      possible_alias = ''
      unaliased_strings.each {|s|
        possible_alias = ''
        s.split('').each { |e|
          possible_alias += e  
          if ! shortest_aliases.values.include?(possible_alias)
            shortest_aliases[s] = possible_alias
            break
          end
        }
      }

      shortest_aliases
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cldwalker-alias-0.1.1 lib/alias/constant_creator.rb