class LittleElementor::Element
Attributes
atomic_number[R]
charge[R]
group[R]
is_nobel_gas[R]
name[R]
period[R]
symbol[R]
Public Class Methods
new(opts)
click to toggle source
# File lib/little_elementor.rb, line 9 def initialize(opts) opts = opts.has_key?(:charge) ? opts : opts.merge({:charge => 0}) @charge = opts[:charge] if opts.has_key?(:atomic_number) @atomic_number = opts[:atomic_number] + @charge @symbol = LittleElementor::Helpers::ELEMENTS[@atomic_number-1][:sym] elsif opts.has_key?(:symbol) @atomic_number = LittleElementor::Helpers::ELEMENTS.find_index{|i| i[:sym] == opts[:symbol]} + 1 @symbol = opts[:symbol] end @group = @atomic_number == 2 ? 18 : get_group() @is_nobel_gas = @group == 18 @name = get_name() @period = electron_configuration.map(&:n).max end
Public Instance Methods
compressed_electron_configuration()
click to toggle source
# File lib/little_elementor.rb, line 33 def compressed_electron_configuration if @compressed_electron_configuration @compressed_electron_configuration else @compressed_electron_configuration = get_c_e_c() end end
electron_configuration(sorted: true)
click to toggle source
# File lib/little_elementor.rb, line 25 def electron_configuration(sorted: true) get_e_c(sorted) end
human_friendly_c_e_c()
click to toggle source
# File lib/little_elementor.rb, line 41 def human_friendly_c_e_c sym = @period == 1 ? "" : "[#{compressed_electron_configuration[0].symbol}] " "#{sym}#{compressed_electron_configuration[1].map(&:to_s).join ", "}" end
to_s()
click to toggle source
# File lib/little_elementor.rb, line 29 def to_s "Compressed Electron Configuration: #{human_friendly_c_e_c}\nSymbol: #{@symbol}\nis a noble gas?: #{@is_nobel_gas}\ncharge: #{@charge}\nname: #{@name}\natomic_number #{@atomic_number}\nsorted electron configuration: #{electron_configuration.map(&:to_s)}\nelectron configuration: #{electron_configuration(sorted: false).map(&:to_s)}\nperiod: #{@period}\ngroup: #{@group}" end