Sha256: 0ac80eb6954448511b38efc6ac6a463c703452994c139b369387e3ac777d9bed

Contents?: true

Size: 1011 Bytes

Versions: 54

Compression:

Stored size: 1011 Bytes

Contents

module DataMiner
  class Dictionary
    attr_accessor :key_name, :value_name, :sprintf, :table

    def initialize(options = {})
      @key_name = options[:input]
      @value_name = options[:output]
      @sprintf = options[:sprintf] || '%s'
      @table = RemoteTable.new(:url => options[:url])
    end

    def lookup(key)
      find(self.key_name, key, self.value_name, :sprintf => self.sprintf)
    end
    
    def find(key_name, key, value_name, options = {})
      if match = table.rows.detect { |row| normalize_for_comparison(key, options) == normalize_for_comparison(row[key_name], options) }
        match[value_name].to_s
      end
    end

    private

    def normalize_for_comparison(string, options = {})
      if options[:sprintf]
        if /\%[0-9\.]*f/.match(options[:sprintf])
          string = string.to_f
        elsif /\%[0-9\.]*d/.match(options[:sprintf])
          string = string.to_i
        end
        string = sprintf % string
      end
      string.to_s.strip
    end
  end
end

Version data entries

54 entries across 54 versions & 2 rubygems

Version Path
data_miner-0.5.7 lib/data_miner/dictionary.rb
data_miner-0.5.6 lib/data_miner/dictionary.rb
data_miner-0.5.5 lib/data_miner/dictionary.rb
data_miner-ruby19-0.5.4 lib/data_miner/dictionary.rb
data_miner-0.5.4 lib/data_miner/dictionary.rb
data_miner-0.5.3 lib/data_miner/dictionary.rb
data_miner-0.5.2 lib/data_miner/dictionary.rb
data_miner-0.5.1 lib/data_miner/dictionary.rb
data_miner-0.5.0 lib/data_miner/dictionary.rb
data_miner-0.4.45 lib/data_miner/dictionary.rb
data_miner-0.4.44 lib/data_miner/dictionary.rb
data_miner-0.4.43 lib/data_miner/dictionary.rb
data_miner-0.4.42 lib/data_miner/dictionary.rb
data_miner-0.4.41 lib/data_miner/dictionary.rb
data_miner-0.4.40 lib/data_miner/dictionary.rb
data_miner-0.4.38 lib/data_miner/dictionary.rb
data_miner-0.4.37 lib/data_miner/dictionary.rb
data_miner-0.4.36 lib/data_miner/dictionary.rb
data_miner-0.4.35 lib/data_miner/dictionary.rb
data_miner-0.4.34 lib/data_miner/dictionary.rb