basic_math 0.0.0 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/basic_math.rb +16 -0
- data/lib/basic_math/basic.rb +45 -0
- data/lib/basic_math.rb +15 -2
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd85b84ef95a622278f6d4877460e2737b3e635770db08a9f6d6ea7a408c139f
|
4
|
+
data.tar.gz: fdd3fe7a9facc6fae201c9f959a53da71c09ff4ae4df629d47daef09a0b0d9fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41e923924b7a0b4932d8ce3c9cabe8ed0ea15a086f17a1be2adab9c8d4c32f1c6e2d254632fe5ae48cbbeaf2c5bc2f39106b514d03baff6b0be708a7aebdd305
|
7
|
+
data.tar.gz: 6401e6f90b743cc84737479174eec4e095e5bd57db82434048f938bc6270059a0c8549dbbfbbad3ea9542461b103368a9bfed66bbe73bd5203e146372eb5836e
|
data/bin/basic_math.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'basic_math'
|
4
|
+
|
5
|
+
@parameter1 = Integer(ARGV[0]) rescue nil
|
6
|
+
@parameter2 = Integer(ARGV[2]) rescue nil
|
7
|
+
|
8
|
+
begin
|
9
|
+
if (@parameter1.is_a? Numeric) && (@parameter2.is_a? Numeric)
|
10
|
+
puts BasicMath.cal @parameter1, ARGV[1], @parameter2
|
11
|
+
else
|
12
|
+
raise
|
13
|
+
end
|
14
|
+
rescue
|
15
|
+
puts "The first and last parameter must be a number"
|
16
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
class Basic
|
2
|
+
# Arguments:
|
3
|
+
# parameter1: (Integer)
|
4
|
+
# parameter2: (Integer)
|
5
|
+
# mark: (String)
|
6
|
+
def initialize(parameter1, mark, parameter2)
|
7
|
+
@parameter1 = parameter1
|
8
|
+
@parameter2 = parameter2
|
9
|
+
@mark = mark
|
10
|
+
end
|
11
|
+
|
12
|
+
# Arguments:
|
13
|
+
# parameter1: (Integer)
|
14
|
+
# parameter2: (Integer)
|
15
|
+
def is_number(parameter1, parameter2)
|
16
|
+
return (parameter1.is_a? Numeric) && (parameter2.is_a? Numeric)
|
17
|
+
end
|
18
|
+
|
19
|
+
def calculate
|
20
|
+
if is_number @parameter1, @parameter2
|
21
|
+
case @mark
|
22
|
+
when "+"
|
23
|
+
@parameter1 + @parameter2
|
24
|
+
when "-"
|
25
|
+
@parameter1 - @parameter2
|
26
|
+
when "*"
|
27
|
+
@parameter1 * @parameter2
|
28
|
+
when "/"
|
29
|
+
begin
|
30
|
+
if @parameter2 != 0
|
31
|
+
@parameter1/@parameter2.to_f
|
32
|
+
else
|
33
|
+
raise
|
34
|
+
end
|
35
|
+
rescue
|
36
|
+
"Error divide by 0"
|
37
|
+
end
|
38
|
+
else
|
39
|
+
"This mark is not supported yet"
|
40
|
+
end
|
41
|
+
else
|
42
|
+
"The first and last parameter must be a number"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/basic_math.rb
CHANGED
@@ -1,5 +1,18 @@
|
|
1
|
+
require 'basic_math/basic'
|
2
|
+
|
3
|
+
# The main BasicMath driver
|
1
4
|
class BasicMath
|
2
|
-
|
3
|
-
|
5
|
+
|
6
|
+
# Example:
|
7
|
+
# >> BasicMath.cal(3, '+', 5)
|
8
|
+
# >> 8
|
9
|
+
#
|
10
|
+
# Arguments:
|
11
|
+
# parameter1: (Integer)
|
12
|
+
# parameter2: (Integer)
|
13
|
+
# mark: (String)
|
14
|
+
def self.cal(parameter1, mark, parameter2)
|
15
|
+
total = Basic.new parameter1, mark, parameter2
|
16
|
+
total.calculate
|
4
17
|
end
|
5
18
|
end
|
metadata
CHANGED
@@ -1,23 +1,26 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: basic_math
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tran Nguyen Kha
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-12-
|
11
|
+
date: 2021-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 'Basic Math: Plus, Subtract, multiplication, Divide'
|
14
14
|
email: khatn@neo-lab.vn
|
15
|
-
executables:
|
15
|
+
executables:
|
16
|
+
- basic_math.rb
|
16
17
|
extensions: []
|
17
18
|
extra_rdoc_files: []
|
18
19
|
files:
|
20
|
+
- bin/basic_math.rb
|
19
21
|
- lib/basic_math.rb
|
20
|
-
|
22
|
+
- lib/basic_math/basic.rb
|
23
|
+
homepage: https://rubygems.org/gems/basic_math
|
21
24
|
licenses:
|
22
25
|
- MIT
|
23
26
|
metadata: {}
|