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.
- checksums.yaml +4 -4
- data/lib/little_elementor.rb +16 -11
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e67b44df07dbf79189a764df9d13efc50c909e822c39c04c6365c5e613a96125
|
4
|
+
data.tar.gz: e2b891190af78b43e35c6e300afee9d8833f4aac69044548d23cc473f65ded0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a58cbb1a21fc05ff98c68c6a9d65813a78e6f74b25a3686caf15710e612db583a995b12eef70983590c511251131f85d0175b170877016c17f08d7846206fe12
|
7
|
+
data.tar.gz: 88d42f81665b455dbbe98a43a1927631f846332c9237ccca8dc6084ef63bac01b467b8bbe56d12b55034a153f3bb1f61a6dae5d8544a667a90092f24049396d6
|
data/lib/little_elementor.rb
CHANGED
@@ -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(
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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(
|
37
|
+
e = LittleElementor::Element.new(atomic_number: 30, charge: -1)
|
33
38
|
puts e
|