Sha256: 6768eeb15a8abda0ee4e74a034d90a93afc546d1f37d77f38b7049dfcb2cf4f3

Contents?: true

Size: 670 Bytes

Versions: 17

Compression:

Stored size: 670 Bytes

Contents

# Encoding: utf-8

require 'csv'

module ChemistryKit
  # Serves as a hash wrapper class for injecting data into formulas
  class Catalyst
    # this class serves as a standard container for data that can be injected into a formula

    def initialize(data_file)
      @data = {}
      CSV.foreach(data_file) do | row |
        @data[row[0].to_sym] = row[1]
      end
    end

    def method_missing(name)
      validate_key name
      @data[name]
    end

    def get_value_for(key)
      validate_key key
      @data[key.to_sym]
    end

    private

      def validate_key(key)
        raise "Unknown \"#{key}\"" unless @data.has_key?(key.to_sym)
      end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
chemistrykit-3.9.0.rc3 lib/chemistrykit/catalyst.rb
chemistrykit-3.9.0.rc2 lib/chemistrykit/catalyst.rb
chemistrykit-3.9.0.rc1 lib/chemistrykit/catalyst.rb
chemistrykit-3.8.1 lib/chemistrykit/catalyst.rb
chemistrykit-3.8.0 lib/chemistrykit/catalyst.rb
chemistrykit-3.7.0 lib/chemistrykit/catalyst.rb
chemistrykit-3.6.0 lib/chemistrykit/catalyst.rb
chemistrykit-3.5.0 lib/chemistrykit/catalyst.rb
chemistrykit-3.4.2 lib/chemistrykit/catalyst.rb
chemistrykit-3.4.1 lib/chemistrykit/catalyst.rb
chemistrykit-3.4.0 lib/chemistrykit/catalyst.rb
chemistrykit-3.3.1 lib/chemistrykit/catalyst.rb
chemistrykit-3.3.0 lib/chemistrykit/catalyst.rb
chemistrykit-3.2.0 lib/chemistrykit/catalyst.rb
chemistrykit-3.1.0 lib/chemistrykit/catalyst.rb
chemistrykit-3.0.1 lib/chemistrykit/catalyst.rb
chemistrykit-3.0.0 lib/chemistrykit/catalyst.rb