Sha256: be5a283a2708244efc62bf1a44d3f521b3d64642caa50737453e8b8c510cfa31
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
class DataMiner class Dictionary attr_reader :options def initialize(options = {}) @options = options.dup @options.stringify_keys! end def key_name options['input'] end def value_name options['output'] end def sprintf options['sprintf'] || '%s' end def table @table ||= ::RemoteTable.new options['url'] end def lookup(key) find key_name, key, value_name, 'sprintf' => sprintf end def find(key_name, key, value_name, options = {}) if match = table.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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
data_miner-1.0.0 | lib/data_miner/dictionary.rb |