Module: Alumina

Defined in:
lib/alumina.rb,
lib/alumina/hin.rb,
lib/alumina/atom.rb,
lib/alumina/errors.rb,
lib/alumina/element.rb,
lib/alumina/molecule.rb,
lib/alumina/hin/parser.rb,
lib/alumina/hin/writer.rb

Overview

Container module for classes of the Alumina gem.

Defined Under Namespace

Modules: HIN Classes: Atom, Element, Molecule, ParseError

Constant Summary collapse

ELEMENTS_PATH =
File.expand_path("#{File.dirname(__FILE__)}/../data/elements.yml")
ELEMENTS =

An array of all Elements, loaded from a YAML data file.

YAML.load(File.read(ELEMENTS_PATH)).map { |atomic_number, data| Element.new(atomic_number, data[:name], data[:symbol]) }
ELEMENTS_BY_SYMBOL =

All elements hashed by their symbol (e.g., “Ag” for silver).

ELEMENTS.inject({}) { |hsh, cur| hsh[cur.symbol] = cur ; hsh }
ELEMENTS_BY_NUMBER =

All elements hashed by their atomic number.

ELEMENTS.inject({}) { |hsh, cur| hsh[cur.atomic_number] = cur ; hsh }

Class Method Summary collapse

Class Method Details

.HIN(input) ⇒ Array<Alumina::Molecule>

Parameters:

  • input (IO, String)

    The HIN data to parse.

Returns:

Raises:

  • (ParseError)

    If the HIN data is improperly formatted.



29
30
31
# File 'lib/alumina.rb', line 29

def self.HIN(input)
  Alumina::HIN::Parser.new.parse(input)
end