guerrilla_patch 2.7.0 → 2.7.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -29,14 +29,18 @@ I belive allocate is missing from standard library. (At least I am unable to fin
29
29
  100.allocate([30, 30, 30]) #=> [33.33, 33.33, 33.34]
30
30
  ```
31
31
 
32
- Divide Amount By Type
32
+ Divide Number By Type
33
33
  ---------------
34
- You can divide an amount by types. It uses allocate to prevent ±0.01 off errors.
34
+ You can divide a number by types. It uses allocate to prevent ±0.01 off errors.
35
35
 
36
36
  ```
37
- ratios = { '1A' => 50, '1B' => 30, '1C' => 20 }
38
- DivideByType.divide(ratios, 50)
39
- ==> {'1A' => 25, '1B' => 15, '1C' => 10}
37
+ 50.divide({ '1A' => 50, '1B' => 30, '1C' => 20 }) #=> { '1A' => 25, '1B' => 15, '1C' => 10 }
38
+ ```
39
+
40
+ This might look trivial but it gets messy soon enough because number are not, well even.
41
+
42
+ ```
43
+ 33.11.divide({ '1A' => 50, '1B' => 50}) #=> {"1A"=> 16.56, "1B"=> 16.55 }
40
44
  ```
41
45
 
42
46
  Aggregation
@@ -44,13 +48,11 @@ Aggregation
44
48
  Support for aggregating hash values by type. You can add values and more interestingly subtract them.
45
49
 
46
50
  ```
47
- amount = Aggregator.aggregate do |result|
51
+ amount = Aggregator.aggregate do |result|
48
52
  result.add({ '1A' => 75 })
49
53
  result.subtract({ '1A' => 25 })
50
- end
51
- ==> 50, '1A' => 50
52
- ==
53
-
54
+ end #=> 50, '1A' => 50
55
+ ```
54
56
 
55
57
  Short oneliners method definition
56
58
  --------------------------------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.7.0
1
+ 2.7.1
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{guerrilla_patch}
8
- s.version = "2.7.0"
8
+ s.version = "2.7.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["drKreso"]
@@ -58,10 +58,27 @@ class Hash
58
58
  end
59
59
  end
60
60
 
61
+ class Float
62
+ def divide(ratios)
63
+ DivideByType.divide(ratios, self)
64
+ end
65
+ end
66
+
67
+ class BigDecimal
68
+ def divide(ratios)
69
+ DivideByType.divide(ratios, self)
70
+ end
71
+ end
72
+
61
73
  class Fixnum
62
74
  def negative
63
75
  -self
64
76
  end
77
+
78
+ def divide(ratios)
79
+ DivideByType.divide(ratios, self)
80
+ end
81
+
65
82
  end
66
83
 
67
84
  class Hash
@@ -1,7 +1,7 @@
1
1
  require 'guerrilla_patch/kernel.rb'
2
2
 
3
3
  describe Kernel do
4
-
4
+
5
5
  it 'wraps commnon nil object idiom' do
6
6
  test_object = nil
7
7
  when_present(test_object) { |t| t }.should == ''
@@ -73,6 +73,13 @@ describe Kernel do
73
73
  100.allocate([30,30,30]).should == [33.33, 33.33, 33.34]
74
74
  end
75
75
 
76
+ it 'can divide number' do
77
+ 50.divide({ '1A' => 50, '1B' => 30, '1C' => 20 }).should == { '1A' => 25, '1B' => 15, '1C' => 10 }
78
+ 50.to_d.divide({ '1A' => 50, '1B' => 30, '1C' => 20 }).should == { '1A' => 25, '1B' => 15, '1C' => 10 }
79
+ 50.to_f.divide({ '1A' => 50, '1B' => 30, '1C' => 20 }).should == { '1A' => 25, '1B' => 15, '1C' => 10 }
80
+ 33.11.divide({ '1A' => 50, '1B' => 50}).should == {"1A"=> 16.56, "1B"=> 16.55 }
81
+ end
82
+
76
83
  end
77
84
 
78
85
  describe Array do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guerrilla_patch
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.7.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &70268029827760 !ruby/object:Gem::Requirement
17
+ requirement: &70204218933660 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 2.8.0
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70268029827760
25
+ version_requirements: *70204218933660
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &70268029826660 !ruby/object:Gem::Requirement
28
+ requirement: &70204218932620 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70268029826660
36
+ version_requirements: *70204218932620
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &70268029824840 !ruby/object:Gem::Requirement
39
+ requirement: &70204218931760 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.6.4
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70268029824840
47
+ version_requirements: *70204218931760
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rcov
50
- requirement: &70268029823840 !ruby/object:Gem::Requirement
50
+ requirement: &70204218930380 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,7 +55,7 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *70268029823840
58
+ version_requirements: *70204218930380
59
59
  description: I am tierd of hunting down monkey patches at large. Caging them inside
60
60
  this gem
61
61
  email: kresimir.bojcic@gmail.com
@@ -102,7 +102,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
102
102
  version: '0'
103
103
  segments:
104
104
  - 0
105
- hash: -1148938200376643015
105
+ hash: -4381212977232316052
106
106
  required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements: