little-elementor 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/little_elementor.rb +16 -11
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7486a92f8a93e8fc87b832ac8c364038fa4fa620229f4fd918c65d0d304913d6
4
- data.tar.gz: '01933795087ae73f9ca8fe251821f5e4655be58f828dcdc1d98d617196674fed'
3
+ metadata.gz: e67b44df07dbf79189a764df9d13efc50c909e822c39c04c6365c5e613a96125
4
+ data.tar.gz: e2b891190af78b43e35c6e300afee9d8833f4aac69044548d23cc473f65ded0b
5
5
  SHA512:
6
- metadata.gz: 7576de5511f42af147a620855d2ee9c09a9e3b0c5b0afb4daf52b3f16c72b247311e2f81587eceb8308e9a0cd9f722ec25083d9cc1c1194610d1b002547a110c
7
- data.tar.gz: b38ceb7cef3653431b92d42aa19563187ba78ed771e4b1e099d174e112621d2e0504c7f39b87aa9e47644d2e24b4c69dfd941b5b8630f5f9cdff1d299001783f
6
+ metadata.gz: a58cbb1a21fc05ff98c68c6a9d65813a78e6f74b25a3686caf15710e612db583a995b12eef70983590c511251131f85d0175b170877016c17f08d7846206fe12
7
+ data.tar.gz: 88d42f81665b455dbbe98a43a1927631f846332c9237ccca8dc6084ef63bac01b467b8bbe56d12b55034a153f3bb1f61a6dae5d8544a667a90092f24049396d6
@@ -5,18 +5,23 @@ module LittleElementor
5
5
  class Element
6
6
  include LittleElementor::Helpers
7
7
 
8
- attr_reader :period, :atomic_number, :group, :charge, :is_nobel_gas, :symbol, :name
9
- def initialize(atomic_number, charge = 0)
10
- @atomic_number = atomic_number + charge
11
- raise "atomic number is out of range" unless (1..118).include?(@atomic_number)
12
- raise "Lanthanides and actinides are not supported yet." if ((57..71).to_a+(89..103).to_a).include? @atomic_number
13
- raise "Transition metals are not supported yet." if ((39..48).to_a+(72..80).to_a+(104..112).to_a).include? @atomic_number
14
- @group = get_group()
8
+ attr_reader :period, :atomic_number, :group, :charge, :is_nobel_gas, :symbol, :name, :fake_atomic_number
9
+ def initialize(opts)
10
+ opts = opts.has_key?(:charge) ? opts : opts.merge({:charge => 0})
11
+ @charge = opts[:charge]
12
+ if opts.has_key?(:atomic_number)
13
+ @fake_atomic_number = opts[:atomic_number]
14
+ @atomic_number = @fake_atomic_number + @charge
15
+ @symbol = LittleElementor::Helpers::ELEMENTS[@atomic_number-1][:sym]
16
+ elsif opts.has_key?(:symbol)
17
+ @atomic_number = LittleElementor::Helpers::ELEMENTS.find_index{|i| i[:sym] == opts[:symbol]} + 1
18
+ @fake_atomic_number = @atomic_number + @charge
19
+ @symbol = opts[:symbol]
20
+ end
21
+ @group = @atomic_number == 2 ? 18 : get_group()
15
22
  @is_nobel_gas = @group == 18
16
23
  @name = LittleElementor::Helpers::ELEMENTS[@atomic_number-1][:name]
17
24
  @period = electron_configuration.map(&:n).max
18
- @charge = charge
19
- @symbol = LittleElementor::Helpers::ELEMENTS[@atomic_number-1][:sym]
20
25
  end
21
26
 
22
27
  def electron_configuration(sorted: true)
@@ -24,10 +29,10 @@ module LittleElementor
24
29
  end
25
30
 
26
31
  def to_s
27
- "Symbol: #{@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}"
32
+ "Symbol: #{@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}\nfake_atomic_number: #{@fake_atomic_number}"
28
33
  end
29
34
  end
30
35
  end
31
36
 
32
- e = LittleElementor::Element.new(29)
37
+ e = LittleElementor::Element.new(atomic_number: 30, charge: -1)
33
38
  puts e
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: little-elementor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kourosh Alinaghi