little_math_pet 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.4.0
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  class LittleMathPet
2
3
  # This is used to match numbers in regular expressions
3
4
  NUMBER_RX = '[\+\-]?\d+(?:\.\d+)?'
@@ -23,12 +24,18 @@ class LittleMathPet
23
24
  @math = math_expression
24
25
  @math = @math.gsub(/\s/, '') # no spaces allowed
25
26
 
27
+ @math = @math.gsub(/\÷/, '/') # 4÷2 -> 4/2
26
28
  @math = @math.gsub(/\:/, '/') # 4:2 -> 4/2
27
29
  @math = @math.gsub(/\*\*/, '^') # 4**2 -> 4^2 to make it easier to differantiate from 4*2
28
30
 
31
+ @math = @math.gsub(/\×/, '*') # 4×2 -> 4*2
32
+
29
33
  @math = @math.gsub(/\[/, '(')
30
34
  @math = @math.gsub(/\]/, ')')
31
35
 
36
+ @math = @math.gsub(/\{/, '(')
37
+ @math = @math.gsub(/\}/, ')')
38
+
32
39
  # If we add/subtract a percent, we multiply/divide by `1 + (percent / 100)`
33
40
  @math.gsub!(/(\+|\-)(#{NUMBER_RX})%/) do |match|
34
41
  case $1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "little_math_pet"
8
- s.version = "0.3.0"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kostas Karachalios"]
12
- s.date = "2014-10-22"
12
+ s.date = "2015-01-08"
13
13
  s.description = "LittleMathPet understands simple math expressions in string format with mutliple variables and returns the result of the expression"
14
14
  s.email = "kostas.karachalios@me.com"
15
15
  s.extra_rdoc_files = [
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
3
 
3
4
  describe LittleMathPet do
@@ -94,6 +95,22 @@ describe LittleMathPet do
94
95
  "5 + 7" => 12.0,
95
96
  "[5+2] : 2" => 3.5,
96
97
  "100 + 40 %" => 140,
98
+ "12 ÷ 4 + 5" => 8,
99
+ "2 × 8 - 7" => 9,
100
+ "2 × [8 - 7]" => 2,
101
+ }
102
+
103
+ equations.each do |equation, result|
104
+ it "solves the equation (#{equation} = #{result})" do
105
+ LittleMathPet.new(equation).calc.should == result
106
+ end
107
+ end
108
+ end
109
+
110
+ context "when using curly brackets" do
111
+ equations = {
112
+ "{5*3}:10" => 1.5,
113
+ "-8/{2**2}" => -2.0,
97
114
  }
98
115
 
99
116
  equations.each do |equation, result|
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: little_math_pet
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.0
5
+ version: 0.4.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kostas Karachalios
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-22 00:00:00.000000000 Z
12
+ date: 2015-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -95,7 +95,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
95
95
  - !ruby/object:Gem::Version
96
96
  segments:
97
97
  - 0
98
- hash: 557396944221374897
98
+ hash: -4137418140742752699
99
99
  version: '0'
100
100
  required_rubygems_version: !ruby/object:Gem::Requirement
101
101
  none: false