summarily 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 37e801b452a2d2952786393339d8cfc35fe68f5e
4
- data.tar.gz: 2ad0f1e848c57396d4b64ff8c11f35088096bb7a
3
+ metadata.gz: c0aa188dcb5de88cfce998b016a61c2b52953d77
4
+ data.tar.gz: d58a97a134d2303e745c24912b4438ddf47b36f5
5
5
  SHA512:
6
- metadata.gz: 85a61641ab26a7c6d8a0aa6e0d8374fafd74478fa192882ce15d20dbe3c85c318414348faf5d104c5481042f68101c5bdc81108d5a4581fcf4172064da8fa845
7
- data.tar.gz: dba53b9c9dc9e7d85e6fb0769a15bf5c7839d987749699610eb00661e83a9b62c51690ffaabf82e71e7fc650dbebc6a1a02b27e754e35e6ea2a734d94b802af3
6
+ metadata.gz: cd0e85fb3afcccf53d84b17f3fea8bca066878d3ab45cdc37a818b602cabc6d4f7fb8fab6d5d670be6ecf0d77ee12249fa690390b0a097f36d6e38d3921fdaa7
7
+ data.tar.gz: 81ed0f9718c1e8cce5adb99880e6838a5e2abb7464449d1686624201955d61d65479dd375bd2dfff8529d9365212690c0f172faa11021dfb643c00aad3414662
@@ -5,6 +5,12 @@ module Summarily
5
5
  strategy = MergeStrategy.new
6
6
  yield strategy
7
7
 
8
+ attr_writer :num_samples
9
+
10
+ define_method :num_samples do
11
+ @num_samples ||= 1
12
+ end
13
+
8
14
  define_method :merge do |other|
9
15
  merged = {}
10
16
 
@@ -14,8 +20,10 @@ module Summarily
14
20
  other.send(attr)
15
21
  )
16
22
  end
23
+ merged_instance = self.class.new(merged)
24
+ merged_instance.num_samples = self.num_samples + other.num_samples
17
25
 
18
- self.class.new(merged)
26
+ merged_instance
19
27
  end
20
28
  end
21
29
  end
@@ -1,3 +1,3 @@
1
1
  module Summarily
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -24,8 +24,16 @@ describe Summarily::ClassMethods do
24
24
  let(:a) { Summable.new(total: 1) }
25
25
  let(:b) { Summable.new(total: 2) }
26
26
 
27
+ let(:merged) { a.merge(b) }
28
+
27
29
  it 'defines a merge strategy for an object with attributes' do
28
- expect(a.merge(b)).to eq(Summable.new(total: 3))
30
+ expect(merged).to eq(Summable.new(total: 3))
31
+ end
32
+
33
+ it 'defines a num_samples for an object' do
34
+ expect(a.num_samples).to eq 1
35
+ expect(b.num_samples).to eq 1
36
+ expect(merged.num_samples).to eq 2
29
37
  end
30
38
  end
31
39
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: summarily
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Gillooly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-07 00:00:00.000000000 Z
11
+ date: 2015-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  version: '0'
106
106
  requirements: []
107
107
  rubyforge_project:
108
- rubygems_version: 2.2.0
108
+ rubygems_version: 2.2.2
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: DSL for merging stats objects